LLVM  6.0.0svn
Classes | Typedefs | Functions
Collaboration diagram for Execution Engine:

Classes

struct  LLVMMCJITCompilerOptions
 

Typedefs

typedef struct LLVMOpaqueGenericValue * LLVMGenericValueRef
 
typedef struct LLVMOpaqueExecutionEngine * LLVMExecutionEngineRef
 
typedef struct LLVMOpaqueMCJITMemoryManager * LLVMMCJITMemoryManagerRef
 
typedef uint8_t *(* LLVMMemoryManagerAllocateCodeSectionCallback) (void *Opaque, uintptr_t Size, unsigned Alignment, unsigned SectionID, const char *SectionName)
 
typedef uint8_t *(* LLVMMemoryManagerAllocateDataSectionCallback) (void *Opaque, uintptr_t Size, unsigned Alignment, unsigned SectionID, const char *SectionName, LLVMBool IsReadOnly)
 
typedef LLVMBool(* LLVMMemoryManagerFinalizeMemoryCallback) (void *Opaque, char **ErrMsg)
 
typedef void(* LLVMMemoryManagerDestroyCallback) (void *Opaque)
 

Functions

void LLVMLinkInMCJIT (void)
 
void LLVMLinkInInterpreter (void)
 
LLVMGenericValueRef LLVMCreateGenericValueOfInt (LLVMTypeRef Ty, unsigned long long N, LLVMBool IsSigned)
 
LLVMGenericValueRef LLVMCreateGenericValueOfPointer (void *P)
 
LLVMGenericValueRef LLVMCreateGenericValueOfFloat (LLVMTypeRef Ty, double N)
 
unsigned LLVMGenericValueIntWidth (LLVMGenericValueRef GenValRef)
 
unsigned long long LLVMGenericValueToInt (LLVMGenericValueRef GenVal, LLVMBool IsSigned)
 
void * LLVMGenericValueToPointer (LLVMGenericValueRef GenVal)
 
double LLVMGenericValueToFloat (LLVMTypeRef TyRef, LLVMGenericValueRef GenVal)
 
void LLVMDisposeGenericValue (LLVMGenericValueRef GenVal)
 
LLVMBool LLVMCreateExecutionEngineForModule (LLVMExecutionEngineRef *OutEE, LLVMModuleRef M, char **OutError)
 
LLVMBool LLVMCreateInterpreterForModule (LLVMExecutionEngineRef *OutInterp, LLVMModuleRef M, char **OutError)
 
LLVMBool LLVMCreateJITCompilerForModule (LLVMExecutionEngineRef *OutJIT, LLVMModuleRef M, unsigned OptLevel, char **OutError)
 
void LLVMInitializeMCJITCompilerOptions (struct LLVMMCJITCompilerOptions *Options, size_t SizeOfOptions)
 
LLVMBool LLVMCreateMCJITCompilerForModule (LLVMExecutionEngineRef *OutJIT, LLVMModuleRef M, struct LLVMMCJITCompilerOptions *Options, size_t SizeOfOptions, char **OutError)
 Create an MCJIT execution engine for a module, with the given options. More...
 
void LLVMDisposeExecutionEngine (LLVMExecutionEngineRef EE)
 
void LLVMRunStaticConstructors (LLVMExecutionEngineRef EE)
 
void LLVMRunStaticDestructors (LLVMExecutionEngineRef EE)
 
int LLVMRunFunctionAsMain (LLVMExecutionEngineRef EE, LLVMValueRef F, unsigned ArgC, const char *const *ArgV, const char *const *EnvP)
 
LLVMGenericValueRef LLVMRunFunction (LLVMExecutionEngineRef EE, LLVMValueRef F, unsigned NumArgs, LLVMGenericValueRef *Args)
 
void LLVMFreeMachineCodeForFunction (LLVMExecutionEngineRef EE, LLVMValueRef F)
 
void LLVMAddModule (LLVMExecutionEngineRef EE, LLVMModuleRef M)
 
LLVMBool LLVMRemoveModule (LLVMExecutionEngineRef EE, LLVMModuleRef M, LLVMModuleRef *OutMod, char **OutError)
 
LLVMBool LLVMFindFunction (LLVMExecutionEngineRef EE, const char *Name, LLVMValueRef *OutFn)
 
void * LLVMRecompileAndRelinkFunction (LLVMExecutionEngineRef EE, LLVMValueRef Fn)
 
LLVMTargetDataRef LLVMGetExecutionEngineTargetData (LLVMExecutionEngineRef EE)
 
LLVMTargetMachineRef LLVMGetExecutionEngineTargetMachine (LLVMExecutionEngineRef EE)
 
void LLVMAddGlobalMapping (LLVMExecutionEngineRef EE, LLVMValueRef Global, void *Addr)
 
void * LLVMGetPointerToGlobal (LLVMExecutionEngineRef EE, LLVMValueRef Global)
 
uint64_t LLVMGetGlobalValueAddress (LLVMExecutionEngineRef EE, const char *Name)
 
uint64_t LLVMGetFunctionAddress (LLVMExecutionEngineRef EE, const char *Name)
 
LLVMMCJITMemoryManagerRef LLVMCreateSimpleMCJITMemoryManager (void *Opaque, LLVMMemoryManagerAllocateCodeSectionCallback AllocateCodeSection, LLVMMemoryManagerAllocateDataSectionCallback AllocateDataSection, LLVMMemoryManagerFinalizeMemoryCallback FinalizeMemory, LLVMMemoryManagerDestroyCallback Destroy)
 Create a simple custom MCJIT memory manager. More...
 
void LLVMDisposeMCJITMemoryManager (LLVMMCJITMemoryManagerRef MM)
 

Detailed Description

Typedef Documentation

◆ LLVMExecutionEngineRef

typedef struct LLVMOpaqueExecutionEngine* LLVMExecutionEngineRef

Definition at line 41 of file ExecutionEngine.h.

◆ LLVMGenericValueRef

typedef struct LLVMOpaqueGenericValue* LLVMGenericValueRef

Definition at line 40 of file ExecutionEngine.h.

◆ LLVMMCJITMemoryManagerRef

typedef struct LLVMOpaqueMCJITMemoryManager* LLVMMCJITMemoryManagerRef

Definition at line 42 of file ExecutionEngine.h.

◆ LLVMMemoryManagerAllocateCodeSectionCallback

typedef uint8_t*(* LLVMMemoryManagerAllocateCodeSectionCallback) (void *Opaque, uintptr_t Size, unsigned Alignment, unsigned SectionID, const char *SectionName)

Definition at line 155 of file ExecutionEngine.h.

◆ LLVMMemoryManagerAllocateDataSectionCallback

typedef uint8_t*(* LLVMMemoryManagerAllocateDataSectionCallback) (void *Opaque, uintptr_t Size, unsigned Alignment, unsigned SectionID, const char *SectionName, LLVMBool IsReadOnly)

Definition at line 158 of file ExecutionEngine.h.

◆ LLVMMemoryManagerDestroyCallback

typedef void(* LLVMMemoryManagerDestroyCallback) (void *Opaque)

Definition at line 163 of file ExecutionEngine.h.

◆ LLVMMemoryManagerFinalizeMemoryCallback

typedef LLVMBool(* LLVMMemoryManagerFinalizeMemoryCallback) (void *Opaque, char **ErrMsg)

Definition at line 161 of file ExecutionEngine.h.

Function Documentation

◆ LLVMAddGlobalMapping()

void LLVMAddGlobalMapping ( LLVMExecutionEngineRef  EE,
LLVMValueRef  Global,
void *  Addr 
)

Definition at line 290 of file ExecutionEngineBindings.cpp.

References llvm::unwrap().

◆ LLVMAddModule()

void LLVMAddModule ( LLVMExecutionEngineRef  EE,
LLVMModuleRef  M 
)

Definition at line 255 of file ExecutionEngineBindings.cpp.

References llvm::unwrap().

◆ LLVMCreateExecutionEngineForModule()

LLVMBool LLVMCreateExecutionEngineForModule ( LLVMExecutionEngineRef OutEE,
LLVMModuleRef  M,
char **  OutError 
)

◆ LLVMCreateGenericValueOfFloat()

LLVMGenericValueRef LLVMCreateGenericValueOfFloat ( LLVMTypeRef  Ty,
double  N 
)

◆ LLVMCreateGenericValueOfInt()

LLVMGenericValueRef LLVMCreateGenericValueOfInt ( LLVMTypeRef  Ty,
unsigned long long  N,
LLVMBool  IsSigned 
)

◆ LLVMCreateGenericValueOfPointer()

LLVMGenericValueRef LLVMCreateGenericValueOfPointer ( void *  P)

Definition at line 48 of file ExecutionEngineBindings.cpp.

References P, llvm::GenericValue::PointerVal, and llvm::wrap().

◆ LLVMCreateInterpreterForModule()

LLVMBool LLVMCreateInterpreterForModule ( LLVMExecutionEngineRef OutInterp,
LLVMModuleRef  M,
char **  OutError 
)

◆ LLVMCreateJITCompilerForModule()

LLVMBool LLVMCreateJITCompilerForModule ( LLVMExecutionEngineRef OutJIT,
LLVMModuleRef  M,
unsigned  OptLevel,
char **  OutError 
)

◆ LLVMCreateMCJITCompilerForModule()

LLVMBool LLVMCreateMCJITCompilerForModule ( LLVMExecutionEngineRef OutJIT,
LLVMModuleRef  M,
struct LLVMMCJITCompilerOptions Options,
size_t  SizeOfOptions,
char **  OutError 
)

Create an MCJIT execution engine for a module, with the given options.

It is the responsibility of the caller to ensure that all fields in Options up to the given SizeOfOptions are initialized. It is correct to pass a smaller value of SizeOfOptions that omits some fields. The canonical way of using this is:

LLVMMCJITCompilerOptions options; LLVMInitializeMCJITCompilerOptions(&options, sizeof(options)); ... fill in those options you care about LLVMCreateMCJITCompilerForModule(&jit, mod, &options, sizeof(options), &error);

Note that this is also correct, though possibly suboptimal:

LLVMCreateMCJITCompilerForModule(&jit, mod, 0, 0, &error);

Definition at line 160 of file ExecutionEngineBindings.cpp.

References llvm::AMDGPU::CodeObject::Kernel::Key::Attrs, LLVMMCJITCompilerOptions::CodeModel, llvm::EngineBuilder::create(), LLVMMCJITCompilerOptions::EnableFastISel, llvm::TargetOptions::EnableFastISel, llvm::lltok::Error, F, llvm::AttributeList::FunctionIndex, llvm::EngineKind::JIT, LLVMInitializeMCJITCompilerOptions(), LLVMMCJITCompilerOptions::MCJMM, LLVMMCJITCompilerOptions::NoFramePointerElim, LLVMMCJITCompilerOptions::OptLevel, llvm::EngineBuilder::setCodeModel(), llvm::EngineBuilder::setEngineKind(), llvm::EngineBuilder::setErrorStr(), llvm::EngineBuilder::setMCJITMemoryManager(), llvm::EngineBuilder::setOptLevel(), llvm::EngineBuilder::setTargetOptions(), llvm::unwrap(), and llvm::wrap().

◆ LLVMCreateSimpleMCJITMemoryManager()

LLVMMCJITMemoryManagerRef LLVMCreateSimpleMCJITMemoryManager ( void *  Opaque,
LLVMMemoryManagerAllocateCodeSectionCallback  AllocateCodeSection,
LLVMMemoryManagerAllocateDataSectionCallback  AllocateDataSection,
LLVMMemoryManagerFinalizeMemoryCallback  FinalizeMemory,
LLVMMemoryManagerDestroyCallback  Destroy 
)

Create a simple custom MCJIT memory manager.

This memory manager can intercept allocations in a module-oblivious way. This will return NULL if any of the passed functions are NULL.

Parameters
OpaqueAn opaque client object to pass back to the callbacks.
AllocateCodeSectionAllocate a block of memory for executable code.
AllocateDataSectionAllocate a block of memory for data.
FinalizeMemorySet page permissions and flush cache. Return 0 on success, 1 on error.

Definition at line 389 of file ExecutionEngineBindings.cpp.

References functions, and llvm::wrap().

◆ LLVMDisposeExecutionEngine()

void LLVMDisposeExecutionEngine ( LLVMExecutionEngineRef  EE)

Definition at line 214 of file ExecutionEngineBindings.cpp.

References llvm::unwrap().

◆ LLVMDisposeGenericValue()

void LLVMDisposeGenericValue ( LLVMGenericValueRef  GenVal)

Definition at line 97 of file ExecutionEngineBindings.cpp.

References llvm::unwrap().

◆ LLVMDisposeMCJITMemoryManager()

void LLVMDisposeMCJITMemoryManager ( LLVMMCJITMemoryManagerRef  MM)

Definition at line 408 of file ExecutionEngineBindings.cpp.

References llvm::unwrap().

◆ LLVMFindFunction()

LLVMBool LLVMFindFunction ( LLVMExecutionEngineRef  EE,
const char Name,
LLVMValueRef OutFn 
)

Definition at line 267 of file ExecutionEngineBindings.cpp.

References F, llvm::unwrap(), and llvm::wrap().

◆ LLVMFreeMachineCodeForFunction()

void LLVMFreeMachineCodeForFunction ( LLVMExecutionEngineRef  EE,
LLVMValueRef  F 
)

Definition at line 252 of file ExecutionEngineBindings.cpp.

◆ LLVMGenericValueIntWidth()

unsigned LLVMGenericValueIntWidth ( LLVMGenericValueRef  GenValRef)

Definition at line 69 of file ExecutionEngineBindings.cpp.

References llvm::unwrap().

◆ LLVMGenericValueToFloat()

double LLVMGenericValueToFloat ( LLVMTypeRef  TyRef,
LLVMGenericValueRef  GenVal 
)

◆ LLVMGenericValueToInt()

unsigned long long LLVMGenericValueToInt ( LLVMGenericValueRef  GenVal,
LLVMBool  IsSigned 
)

◆ LLVMGenericValueToPointer()

void* LLVMGenericValueToPointer ( LLVMGenericValueRef  GenVal)

Definition at line 82 of file ExecutionEngineBindings.cpp.

References llvm::unwrap().

◆ LLVMGetExecutionEngineTargetData()

LLVMTargetDataRef LLVMGetExecutionEngineTargetData ( LLVMExecutionEngineRef  EE)

Definition at line 281 of file ExecutionEngineBindings.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMGetExecutionEngineTargetMachine()

LLVMTargetMachineRef LLVMGetExecutionEngineTargetMachine ( LLVMExecutionEngineRef  EE)

Definition at line 286 of file ExecutionEngineBindings.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMGetFunctionAddress()

uint64_t LLVMGetFunctionAddress ( LLVMExecutionEngineRef  EE,
const char Name 
)

◆ LLVMGetGlobalValueAddress()

uint64_t LLVMGetGlobalValueAddress ( LLVMExecutionEngineRef  EE,
const char Name 
)

Definition at line 301 of file ExecutionEngineBindings.cpp.

References llvm::unwrap().

◆ LLVMGetPointerToGlobal()

void* LLVMGetPointerToGlobal ( LLVMExecutionEngineRef  EE,
LLVMValueRef  Global 
)

Definition at line 295 of file ExecutionEngineBindings.cpp.

References llvm::unwrap().

◆ LLVMInitializeMCJITCompilerOptions()

void LLVMInitializeMCJITCompilerOptions ( struct LLVMMCJITCompilerOptions Options,
size_t  SizeOfOptions 
)

◆ LLVMLinkInInterpreter()

void LLVMLinkInInterpreter ( void  )

Definition at line 31 of file Interpreter.cpp.

◆ LLVMLinkInMCJIT()

void LLVMLinkInMCJIT ( void  )

Definition at line 40 of file MCJIT.cpp.

◆ LLVMRecompileAndRelinkFunction()

void* LLVMRecompileAndRelinkFunction ( LLVMExecutionEngineRef  EE,
LLVMValueRef  Fn 
)

Definition at line 276 of file ExecutionEngineBindings.cpp.

◆ LLVMRemoveModule()

LLVMBool LLVMRemoveModule ( LLVMExecutionEngineRef  EE,
LLVMModuleRef  M,
LLVMModuleRef OutMod,
char **  OutError 
)

Definition at line 259 of file ExecutionEngineBindings.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMRunFunction()

LLVMGenericValueRef LLVMRunFunction ( LLVMExecutionEngineRef  EE,
LLVMValueRef  F,
unsigned  NumArgs,
LLVMGenericValueRef Args 
)

Definition at line 237 of file ExecutionEngineBindings.cpp.

References I, llvm::unwrap(), and llvm::wrap().

◆ LLVMRunFunctionAsMain()

int LLVMRunFunctionAsMain ( LLVMExecutionEngineRef  EE,
LLVMValueRef  F,
unsigned  ArgC,
const char *const ArgV,
const char *const EnvP 
)

Definition at line 228 of file ExecutionEngineBindings.cpp.

References llvm::unwrap().

◆ LLVMRunStaticConstructors()

void LLVMRunStaticConstructors ( LLVMExecutionEngineRef  EE)

Definition at line 218 of file ExecutionEngineBindings.cpp.

References llvm::unwrap().

◆ LLVMRunStaticDestructors()

void LLVMRunStaticDestructors ( LLVMExecutionEngineRef  EE)

Definition at line 223 of file ExecutionEngineBindings.cpp.

References llvm::unwrap().