diff options
Diffstat (limited to 'include/llvm-c/ExecutionEngine.h')
-rw-r--r-- | include/llvm-c/ExecutionEngine.h | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/include/llvm-c/ExecutionEngine.h b/include/llvm-c/ExecutionEngine.h index 8b654d5a5c..8fae77def4 100644 --- a/include/llvm-c/ExecutionEngine.h +++ b/include/llvm-c/ExecutionEngine.h @@ -21,6 +21,7 @@ #include "llvm-c/Core.h" #include "llvm-c/Target.h" +#include "llvm-c/TargetMachine.h" #ifdef __cplusplus extern "C" { @@ -42,7 +43,9 @@ typedef struct LLVMOpaqueExecutionEngine *LLVMExecutionEngineRef; struct LLVMMCJITCompilerOptions { unsigned OptLevel; + LLVMCodeModel CodeModel; LLVMBool NoFramePointerElim; + LLVMBool EnableFastISel; }; /*===-- Operations on generic values --------------------------------------===*/ @@ -81,27 +84,30 @@ LLVMBool LLVMCreateJITCompilerForModule(LLVMExecutionEngineRef *OutJIT, unsigned OptLevel, char **OutError); +void LLVMInitializeMCJITCompilerOptions( + struct LLVMMCJITCompilerOptions *Options, size_t SizeOfOptions); + /** * 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, and it is also correct to set any - * field to zero. The canonical way of using this is: + * 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; - * memset(&options, 0, sizeof(options)); + * LLVMInitializeMCJITCompilerOptions(&options, sizeof(options)); * ... fill in those options you care about - * LLVMCreateMCJITCompilerForModule(&jit, mod, &options, sizeof(options), &error); + * LLVMCreateMCJITCompilerForModule(&jit, mod, &options, sizeof(options), + * &error); * * Note that this is also correct, though possibly suboptimal: * * LLVMCreateMCJITCompilerForModule(&jit, mod, 0, 0, &error); */ -LLVMBool LLVMCreateMCJITCompilerForModule(LLVMExecutionEngineRef *OutJIT, - LLVMModuleRef M, - struct LLVMMCJITCompilerOptions *Options, - size_t SizeOfOptions, - char **OutError); +LLVMBool LLVMCreateMCJITCompilerForModule( + LLVMExecutionEngineRef *OutJIT, LLVMModuleRef M, + struct LLVMMCJITCompilerOptions *Options, size_t SizeOfOptions, + char **OutError); /** Deprecated: Use LLVMCreateExecutionEngineForModule instead. */ LLVMBool LLVMCreateExecutionEngine(LLVMExecutionEngineRef *OutEE, @@ -151,7 +157,8 @@ LLVMBool LLVMRemoveModuleProvider(LLVMExecutionEngineRef EE, LLVMBool LLVMFindFunction(LLVMExecutionEngineRef EE, const char *Name, LLVMValueRef *OutFn); -void *LLVMRecompileAndRelinkFunction(LLVMExecutionEngineRef EE, LLVMValueRef Fn); +void *LLVMRecompileAndRelinkFunction(LLVMExecutionEngineRef EE, + LLVMValueRef Fn); LLVMTargetDataRef LLVMGetExecutionEngineTargetData(LLVMExecutionEngineRef EE); |