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
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
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
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.