Evan broke it in r54523 by adding a parameter in the implementation without
updating the header correspondingly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54555
91177308-0d34-0410-b5e6-
96231b3b80d8
llvm_ee_create_jit(LLVMModuleProviderRef MP) {
LLVMExecutionEngineRef JIT;
char *Error;
- if (LLVMCreateJITCompiler(&JIT, MP, &Error))
+ if (LLVMCreateJITCompiler(&JIT, MP, 0, &Error))
+ llvm_raise(llvm_ee_error_exn, Error);
+ return JIT;
+}
+
+/* llmoduleprovider -> ExecutionEngine.t */
+CAMLprim LLVMExecutionEngineRef
+llvm_ee_create_fast_jit(LLVMModuleProviderRef MP) {
+ LLVMExecutionEngineRef JIT;
+ char *Error;
+ if (LLVMCreateJITCompiler(&JIT, MP, 1, &Error))
llvm_raise(llvm_ee_error_exn, Error);
return JIT;
}
= "llvm_ee_create_interpreter"
external create_jit: Llvm.llmoduleprovider -> t
= "llvm_ee_create_jit"
+ external create_fast_jit: Llvm.llmoduleprovider -> t
+ = "llvm_ee_create_fast_jit"
external dispose: t -> unit
= "llvm_ee_dispose"
external add_module_provider: Llvm.llmoduleprovider -> t -> unit
val create_interpreter: Llvm.llmoduleprovider -> t
(** [create_jit mp] creates a new JIT (just-in-time compiler), taking
- ownership of the module provider [mp] if successful. Raises [Error msg] if
- an error occurrs. The execution engine is not garbage collected and must
- be destroyed with [dispose ee].
+ ownership of the module provider [mp] if successful. This function creates
+ a JIT which favors code quality over compilation speed. Raises [Error msg]
+ if an error occurrs. The execution engine is not garbage collected and
+ must be destroyed with [dispose ee].
See the function [llvm::ExecutionEngine::create]. *)
val create_jit: Llvm.llmoduleprovider -> t
+ (** [create_fast_jit mp] creates a new JIT (just-in-time compiler) which
+ favors compilation speed over code quality. It takes ownership of the
+ module provider [mp] if successful. Raises [Error msg] if an error
+ occurrs. The execution engine is not garbage collected and must be
+ destroyed with [dispose ee].
+ See the function [llvm::ExecutionEngine::create]. *)
+ val create_fast_jit: Llvm.llmoduleprovider -> t
+
(** [dispose ee] releases the memory used by the execution engine and must be
invoked to avoid memory leaks. *)
val dispose: t -> unit
int LLVMCreateJITCompiler(LLVMExecutionEngineRef *OutJIT,
LLVMModuleProviderRef MP,
+ int Fast,
char **OutError);
void LLVMDisposeExecutionEngine(LLVMExecutionEngineRef EE);
int LLVMCreateJITCompiler(LLVMExecutionEngineRef *OutJIT,
LLVMModuleProviderRef MP,
- char **OutError,
- bool Fast = false) {
+ int Fast,
+ char **OutError) {
std::string Error;
if (ExecutionEngine *JIT = ExecutionEngine::createJIT(unwrap(MP), &Error, 0,
- Fast)) {
+ Fast != 0)) {
*OutJIT = wrap(JIT);
return 0;
}