LLVM  mainline
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 LLVMOpaqueBuilder * LLVMBuilderRef
 Represents an LLVM basic block builder.
typedef struct
LLVMOpaqueModuleProvider * 
LLVMModuleProviderRef
 Interface used to provide a module to JIT or interpreter.
typedef struct
LLVMOpaquePassManager * 
LLVMPassManagerRef
typedef struct
LLVMOpaquePassRegistry * 
LLVMPassRegistryRef
typedef struct LLVMOpaqueUse * LLVMUseRef
 Used to get the users and usees of a Value.
typedef struct
LLVMOpaqueDiagnosticInfo * 
LLVMDiagnosticInfoRef

Typedef Documentation

typedef struct LLVMOpaqueBasicBlock* LLVMBasicBlockRef

Represents a basic block of instructions in LLVM IR.

This models llvm::BasicBlock.

Definition at line 83 of file c/Types.h.

typedef int LLVMBool

Definition at line 29 of file c/Types.h.

typedef struct LLVMOpaqueBuilder* LLVMBuilderRef

Represents an LLVM basic block builder.

This models llvm::IRBuilder.

Definition at line 90 of file c/Types.h.

typedef struct LLVMOpaqueContext* LLVMContextRef

The top-level container for all LLVM global data.

See the LLVMContext class.

Definition at line 54 of file c/Types.h.

typedef struct LLVMOpaqueDiagnosticInfo* LLVMDiagnosticInfoRef
See also:
llvm::DiagnosticInfo

Definition at line 114 of file c/Types.h.

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 49 of file c/Types.h.

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 97 of file c/Types.h.

typedef struct LLVMOpaqueModule* LLVMModuleRef

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

See also:
llvm::Module

Definition at line 62 of file c/Types.h.

typedef struct LLVMOpaquePassManager* LLVMPassManagerRef
See also:
llvm::PassManagerBase

Definition at line 100 of file c/Types.h.

typedef struct LLVMOpaquePassRegistry* LLVMPassRegistryRef
See also:
llvm::PassRegistry

Definition at line 103 of file c/Types.h.

typedef struct LLVMOpaqueType* LLVMTypeRef

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

See also:
llvm::Type

Definition at line 69 of file c/Types.h.

typedef struct LLVMOpaqueUse* LLVMUseRef

Used to get the users and usees of a Value.

See also:
llvm::Use

Definition at line 109 of file c/Types.h.

typedef struct LLVMOpaqueValue* LLVMValueRef

Represents an individual value in LLVM IR.

This models llvm::Value.

Definition at line 76 of file c/Types.h.