LLVM 20.0.0git
Typedefs
Types and Enumerations

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
 

Detailed Description

Typedef Documentation

◆ LLVMAttributeRef

typedef struct LLVMOpaqueAttributeRef* LLVMAttributeRef

Used to represent an attributes.

See also
llvm::Attribute

Definition at line 145 of file Types.h.

◆ LLVMBasicBlockRef

typedef struct LLVMOpaqueBasicBlock* LLVMBasicBlockRef

Represents a basic block of instructions in LLVM IR.

This models llvm::BasicBlock.

Definition at line 82 of file Types.h.

◆ LLVMBinaryRef

typedef struct LLVMOpaqueBinary* LLVMBinaryRef
See also
llvm::object::Binary

Definition at line 170 of file Types.h.

◆ LLVMBool

typedef int LLVMBool

Definition at line 28 of file Types.h.

◆ LLVMBuilderRef

typedef struct LLVMOpaqueBuilder* LLVMBuilderRef

Represents an LLVM basic block builder.

This models llvm::IRBuilder.

Definition at line 110 of file Types.h.

◆ LLVMComdatRef

typedef struct LLVMComdat* LLVMComdatRef
See also
llvm::Comdat

Definition at line 155 of file Types.h.

◆ 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
See also
llvm::DbgRecord

Definition at line 175 of file Types.h.

◆ LLVMDiagnosticInfoRef

typedef struct LLVMOpaqueDiagnosticInfo* LLVMDiagnosticInfoRef
See also
llvm::DiagnosticInfo

Definition at line 150 of file Types.h.

◆ LLVMDIBuilderRef

typedef struct LLVMOpaqueDIBuilder* LLVMDIBuilderRef

Represents an LLVM debug info builder.

This models llvm::DIBuilder.

Definition at line 117 of file Types.h.

◆ LLVMJITEventListenerRef

typedef struct LLVMOpaqueJITEventListener* LLVMJITEventListenerRef
See also
llvm::JITEventListener

Definition at line 165 of file Types.h.

◆ 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<RequiredType>(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

Represents an LLVM Metadata.

This models llvm::Metadata.

Definition at line 89 of file Types.h.

◆ LLVMModuleFlagEntry

See also
llvm::Module::ModuleFlagEntry

Definition at line 160 of file Types.h.

◆ 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

Represents an LLVM Named Metadata Node.

This models llvm::NamedMDNode.

Definition at line 96 of file Types.h.

◆ LLVMOperandBundleRef

typedef struct LLVMOpaqueOperandBundle* LLVMOperandBundleRef
See also
llvm::OperandBundleDef

Definition at line 138 of file Types.h.

◆ LLVMPassManagerRef

typedef struct LLVMOpaquePassManager* LLVMPassManagerRef
See also
llvm::PassManagerBase

Definition at line 127 of file Types.h.

◆ LLVMTypeRef

typedef struct LLVMOpaqueType* LLVMTypeRef

Each value in the LLVM IR has a type, an LLVMTypeRef.

See also
llvm::Type

Definition at line 68 of file Types.h.

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