LLVM: Execution Engine (original) (raw)
| 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) |
◆ LLVMExecutionEngineRef
typedef struct LLVMOpaqueExecutionEngine* LLVMExecutionEngineRef
◆ LLVMGenericValueRef
typedef struct LLVMOpaqueGenericValue* LLVMGenericValueRef
◆ LLVMMCJITMemoryManagerRef
typedef struct LLVMOpaqueMCJITMemoryManager* LLVMMCJITMemoryManagerRef
◆ LLVMMemoryManagerAllocateCodeSectionCallback
◆ LLVMMemoryManagerAllocateDataSectionCallback
◆ LLVMMemoryManagerDestroyCallback
typedef void(* LLVMMemoryManagerDestroyCallback) (void *Opaque)
◆ LLVMMemoryManagerFinalizeMemoryCallback
typedef LLVMBool(* LLVMMemoryManagerFinalizeMemoryCallback) (void *Opaque, char **ErrMsg)
◆ LLVMAddGlobalMapping()
◆ LLVMAddModule()
◆ LLVMCreateExecutionEngineForModule()
◆ LLVMCreateGDBRegistrationListener()
◆ LLVMCreateGenericValueOfFloat()
◆ LLVMCreateGenericValueOfInt()
◆ LLVMCreateGenericValueOfPointer()
◆ LLVMCreateIntelJITEventListener()
◆ LLVMCreateInterpreterForModule()
◆ LLVMCreateJITCompilerForModule()
◆ LLVMCreateMCJITCompilerForModule()
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::EngineBuilder::create(), llvm::TargetOptions::EnableFastISel, F, llvm::EngineKind::JIT, LLVMInitializeMCJITCompilerOptions(), llvm::Mod, Mod, llvm::EngineBuilder::setCodeModel(), llvm::EngineBuilder::setEngineKind(), llvm::EngineBuilder::setErrorStr(), llvm::EngineBuilder::setMCJITMemoryManager(), llvm::EngineBuilder::setOptLevel(), llvm::EngineBuilder::setTargetOptions(), llvm::unwrap(), and llvm::wrap().
◆ LLVMCreateOProfileJITEventListener()
◆ LLVMCreatePerfJITEventListener()
◆ LLVMCreateSimpleMCJITMemoryManager()
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
| Opaque | An opaque client object to pass back to the callbacks. |
|---|---|
| AllocateCodeSection | Allocate a block of memory for executable code. |
| AllocateDataSection | Allocate a block of memory for data. |
| FinalizeMemory | Set page permissions and flush cache. Return 0 on success, 1 on error. |
Definition at line 402 of file ExecutionEngineBindings.cpp.
References functions, and llvm::wrap().
◆ LLVMDisposeExecutionEngine()
◆ LLVMDisposeGenericValue()
◆ LLVMDisposeMCJITMemoryManager()
◆ LLVMExecutionEngineGetErrMsg()
◆ LLVMFindFunction()
◆ LLVMFreeMachineCodeForFunction()
◆ LLVMGenericValueIntWidth()
◆ LLVMGenericValueToFloat()
◆ LLVMGenericValueToInt()
◆ LLVMGenericValueToPointer()
◆ LLVMGetExecutionEngineTargetData()
◆ LLVMGetExecutionEngineTargetMachine()
◆ LLVMGetFunctionAddress()
◆ LLVMGetGlobalValueAddress()
◆ LLVMGetPointerToGlobal()
◆ LLVMInitializeMCJITCompilerOptions()
◆ LLVMLinkInInterpreter()
Empty function used to force the linker to link the LLVM interpreter.
Has no effect when called on a pre-built library (dylib interface).
Definition at line 30 of file Interpreter.cpp.
◆ LLVMLinkInMCJIT()
Empty function used to force the linker to link MCJIT.
Has no effect when called on a pre-built library (dylib interface).
Definition at line 40 of file MCJIT.cpp.