mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
Expose the optimization level for the jit in ocaml.
llvm-svn: 97610
This commit is contained in:
parent
f04f234444
commit
99a0f1ebff
@ -187,22 +187,12 @@ llvm_ee_create_interpreter(LLVMModuleRef M) {
|
|||||||
return Interp;
|
return Interp;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* llmodule -> ExecutionEngine.t */
|
/* llmodule -> int -> ExecutionEngine.t */
|
||||||
CAMLprim LLVMExecutionEngineRef
|
CAMLprim LLVMExecutionEngineRef
|
||||||
llvm_ee_create_jit(LLVMModuleRef M) {
|
llvm_ee_create_jit(LLVMModuleRef M, value OptLevel) {
|
||||||
LLVMExecutionEngineRef JIT;
|
LLVMExecutionEngineRef JIT;
|
||||||
char *Error;
|
char *Error;
|
||||||
if (LLVMCreateJITCompilerForModule(&JIT, M, 3, &Error))
|
if (LLVMCreateJITCompilerForModule(&JIT, M, Int_val(OptLevel), &Error))
|
||||||
llvm_raise(llvm_ee_error_exn, Error);
|
|
||||||
return JIT;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* llmodule -> ExecutionEngine.t */
|
|
||||||
CAMLprim LLVMExecutionEngineRef
|
|
||||||
llvm_ee_create_fast_jit(LLVMModuleRef M) {
|
|
||||||
LLVMExecutionEngineRef JIT;
|
|
||||||
char *Error;
|
|
||||||
if (LLVMCreateJITCompiler(&JIT, M, 0, &Error))
|
|
||||||
llvm_raise(llvm_ee_error_exn, Error);
|
llvm_raise(llvm_ee_error_exn, Error);
|
||||||
return JIT;
|
return JIT;
|
||||||
}
|
}
|
||||||
|
@ -60,10 +60,8 @@ module ExecutionEngine = struct
|
|||||||
= "llvm_ee_create"
|
= "llvm_ee_create"
|
||||||
external create_interpreter: Llvm.llmodule -> t
|
external create_interpreter: Llvm.llmodule -> t
|
||||||
= "llvm_ee_create_interpreter"
|
= "llvm_ee_create_interpreter"
|
||||||
external create_jit: Llvm.llmodule -> t
|
external create_jit: Llvm.llmodule -> int -> t
|
||||||
= "llvm_ee_create_jit"
|
= "llvm_ee_create_jit"
|
||||||
external create_fast_jit: Llvm.llmodule -> t
|
|
||||||
= "llvm_ee_create_fast_jit"
|
|
||||||
external dispose: t -> unit
|
external dispose: t -> unit
|
||||||
= "llvm_ee_dispose"
|
= "llvm_ee_dispose"
|
||||||
external add_module: Llvm.llmodule -> t -> unit
|
external add_module: Llvm.llmodule -> t -> unit
|
||||||
|
@ -99,22 +99,13 @@ module ExecutionEngine: sig
|
|||||||
See the function [llvm::EngineBuilder::create]. *)
|
See the function [llvm::EngineBuilder::create]. *)
|
||||||
val create_interpreter: Llvm.llmodule -> t
|
val create_interpreter: Llvm.llmodule -> t
|
||||||
|
|
||||||
(** [create_jit m] creates a new JIT (just-in-time compiler), taking
|
(** [create_jit m optlevel] creates a new JIT (just-in-time compiler), taking
|
||||||
ownership of the module [m] if successful. This function creates a JIT
|
ownership of the module [m] if successful with the desired optimization
|
||||||
which favors code quality over compilation speed. Raises [Error msg] if an
|
level [optlevel]. Raises [Error msg] if an error occurrs. The execution
|
||||||
error occurrs. The execution engine is not garbage collected and must be
|
engine is not garbage collected and must be destroyed with [dispose ee].
|
||||||
destroyed with [dispose ee].
|
|
||||||
See the function [llvm::EngineBuilder::create]. *)
|
See the function [llvm::EngineBuilder::create]. *)
|
||||||
val create_jit: Llvm.llmodule -> t
|
val create_jit : Llvm.llmodule -> int -> t
|
||||||
|
|
||||||
(** [create_fast_jit m] creates a new JIT (just-in-time compiler) which
|
|
||||||
favors compilation speed over code quality. It takes ownership of the
|
|
||||||
module [m] 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::EngineBuilder::create]. *)
|
|
||||||
val create_fast_jit: Llvm.llmodule -> t
|
|
||||||
|
|
||||||
(** [dispose ee] releases the memory used by the execution engine and must be
|
(** [dispose ee] releases the memory used by the execution engine and must be
|
||||||
invoked to avoid memory leaks. *)
|
invoked to avoid memory leaks. *)
|
||||||
val dispose: t -> unit
|
val dispose: t -> unit
|
||||||
|
Loading…
x
Reference in New Issue
Block a user