LLVM: Types and Enumerations (original) (raw)

Typedefs
typedef int LLVMBool
typedef struct LLVMOpaqueMemoryBuffer * LLVMMemoryBufferRef
LLVM uses a polymorphic type hierarchy which C cannot represent, therefore parameters must be passed as base types.
typedef struct LLVMOpaqueContext * LLVMContextRef
The top-level container for all LLVM global data.
typedef struct LLVMOpaqueModule * LLVMModuleRef
The top-level container for all other LLVM Intermediate Representation (IR) objects.
typedef struct LLVMOpaqueType * LLVMTypeRef
Each value in the LLVM IR has a type, an LLVMTypeRef.
typedef struct LLVMOpaqueValue * LLVMValueRef
Represents an individual value in LLVM IR.
typedef struct LLVMOpaqueBasicBlock * LLVMBasicBlockRef
Represents a basic block of instructions in LLVM IR.
typedef struct LLVMOpaqueMetadata * LLVMMetadataRef
Represents an LLVM Metadata.
typedef struct LLVMOpaqueNamedMDNode * LLVMNamedMDNodeRef
Represents an LLVM Named Metadata Node.
typedef struct LLVMOpaqueValueMetadataEntry LLVMValueMetadataEntry
Represents an entry in a Global Object's metadata attachments.
typedef struct LLVMOpaqueBuilder * LLVMBuilderRef
Represents an LLVM basic block builder.
typedef struct LLVMOpaqueDIBuilder * LLVMDIBuilderRef
Represents an LLVM debug info builder.
typedef struct LLVMOpaqueModuleProvider * LLVMModuleProviderRef
Interface used to provide a module to JIT or interpreter.
typedef struct LLVMOpaquePassManager * LLVMPassManagerRef
typedef struct LLVMOpaqueUse * LLVMUseRef
Used to get the users and usees of a Value.
typedef struct LLVMOpaqueOperandBundle * LLVMOperandBundleRef
typedef struct LLVMOpaqueAttributeRef * LLVMAttributeRef
Used to represent an attributes.
typedef struct LLVMOpaqueDiagnosticInfo * LLVMDiagnosticInfoRef
typedef struct LLVMComdat * LLVMComdatRef
typedef struct LLVMOpaqueModuleFlagEntry LLVMModuleFlagEntry
typedef struct LLVMOpaqueJITEventListener * LLVMJITEventListenerRef
typedef struct LLVMOpaqueBinary * LLVMBinaryRef
typedef struct LLVMOpaqueDbgRecord * LLVMDbgRecordRef

LLVMAttributeRef

typedef struct LLVMOpaqueAttributeRef* LLVMAttributeRef

LLVMBasicBlockRef

typedef struct LLVMOpaqueBasicBlock* LLVMBasicBlockRef

LLVMBinaryRef

typedef struct LLVMOpaqueBinary* LLVMBinaryRef

LLVMBool

LLVMBuilderRef

typedef struct LLVMOpaqueBuilder* LLVMBuilderRef

LLVMComdatRef

typedef struct LLVMComdat* LLVMComdatRef

LLVMContextRef

typedef struct LLVMOpaqueContext* LLVMContextRef

The top-level container for all LLVM global data.

See the LLVMContext class.

Definition at line 53 of file Types.h.

LLVMDbgRecordRef

typedef struct LLVMOpaqueDbgRecord* LLVMDbgRecordRef

LLVMDiagnosticInfoRef

typedef struct LLVMOpaqueDiagnosticInfo* LLVMDiagnosticInfoRef

LLVMDIBuilderRef

typedef struct LLVMOpaqueDIBuilder* LLVMDIBuilderRef

LLVMJITEventListenerRef

typedef struct LLVMOpaqueJITEventListener* LLVMJITEventListenerRef

LLVMMemoryBufferRef

typedef struct LLVMOpaqueMemoryBuffer* LLVMMemoryBufferRef

LLVM uses a polymorphic type hierarchy which C cannot represent, therefore parameters must be passed as base types.

Despite the declared types, most of the functions provided operate only on branches of the type hierarchy. The declared parameter names are descriptive and specify which type is required. Additionally, each type hierarchy is documented along with the functions that operate upon it. For more detail, refer to LLVM's C++ code. If in doubt, refer to Core.cpp, which performs parameter downcasts in the form unwrap(Param). Used to pass regions of memory through LLVM interfaces.

See also

llvm::MemoryBuffer

Definition at line 48 of file Types.h.

LLVMMetadataRef

typedef struct LLVMOpaqueMetadata* LLVMMetadataRef

LLVMModuleFlagEntry

LLVMModuleProviderRef

typedef struct LLVMOpaqueModuleProvider* LLVMModuleProviderRef

Interface used to provide a module to JIT or interpreter.

This is now just a synonym for llvm::Module, but we have to keep using the different type to keep binary compatibility.

Definition at line 124 of file Types.h.

LLVMModuleRef

typedef struct LLVMOpaqueModule* LLVMModuleRef

The top-level container for all other LLVM Intermediate Representation (IR) objects.

See also

llvm::Module

Definition at line 61 of file Types.h.

LLVMNamedMDNodeRef

typedef struct LLVMOpaqueNamedMDNode* LLVMNamedMDNodeRef

LLVMOperandBundleRef

typedef struct LLVMOpaqueOperandBundle* LLVMOperandBundleRef

LLVMPassManagerRef

typedef struct LLVMOpaquePassManager* LLVMPassManagerRef

LLVMTypeRef

typedef struct LLVMOpaqueType* LLVMTypeRef

LLVMUseRef

typedef struct LLVMOpaqueUse* LLVMUseRef

Used to get the users and usees of a Value.

See also

llvm::Use

Definition at line 133 of file Types.h.

LLVMValueMetadataEntry

Represents an entry in a Global Object's metadata attachments.

This models std::pair<unsigned, MDNode *>

Definition at line 103 of file Types.h.

LLVMValueRef

typedef struct LLVMOpaqueValue* LLVMValueRef

Represents an individual value in LLVM IR.

This models llvm::Value.

Definition at line 75 of file Types.h.