aboutsummaryrefslogtreecommitdiffstats
path: root/bindings/ocaml/executionengine
diff options
context:
space:
mode:
authorErick Tryzelaar <idadesub@users.sourceforge.net>2010-03-02 23:59:03 +0000
committerErick Tryzelaar <idadesub@users.sourceforge.net>2010-03-02 23:59:03 +0000
commit0dd27da1841ca50d00aad3465f4f9b6a646fd64e (patch)
tree7536a32951dd2a23641f5893efaff58db82b5cda /bindings/ocaml/executionengine
parent16609f3c5c26ba34603ae0d7ebab86fb11a72722 (diff)
downloadexternal_llvm-0dd27da1841ca50d00aad3465f4f9b6a646fd64e.zip
external_llvm-0dd27da1841ca50d00aad3465f4f9b6a646fd64e.tar.gz
external_llvm-0dd27da1841ca50d00aad3465f4f9b6a646fd64e.tar.bz2
Expose the optimization level for the jit in ocaml.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97610 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'bindings/ocaml/executionengine')
-rw-r--r--bindings/ocaml/executionengine/executionengine_ocaml.c16
-rw-r--r--bindings/ocaml/executionengine/llvm_executionengine.ml4
-rw-r--r--bindings/ocaml/executionengine/llvm_executionengine.mli21
3 files changed, 10 insertions, 31 deletions
diff --git a/bindings/ocaml/executionengine/executionengine_ocaml.c b/bindings/ocaml/executionengine/executionengine_ocaml.c
index bc2b081..d12a9f7 100644
--- a/bindings/ocaml/executionengine/executionengine_ocaml.c
+++ b/bindings/ocaml/executionengine/executionengine_ocaml.c
@@ -187,22 +187,12 @@ llvm_ee_create_interpreter(LLVMModuleRef M) {
return Interp;
}
-/* llmodule -> ExecutionEngine.t */
-CAMLprim LLVMExecutionEngineRef
-llvm_ee_create_jit(LLVMModuleRef M) {
- LLVMExecutionEngineRef JIT;
- char *Error;
- if (LLVMCreateJITCompilerForModule(&JIT, M, 3, &Error))
- llvm_raise(llvm_ee_error_exn, Error);
- return JIT;
-}
-
-/* llmodule -> ExecutionEngine.t */
+/* llmodule -> int -> ExecutionEngine.t */
CAMLprim LLVMExecutionEngineRef
-llvm_ee_create_fast_jit(LLVMModuleRef M) {
+llvm_ee_create_jit(LLVMModuleRef M, value OptLevel) {
LLVMExecutionEngineRef JIT;
char *Error;
- if (LLVMCreateJITCompiler(&JIT, M, 0, &Error))
+ if (LLVMCreateJITCompilerForModule(&JIT, M, Int_val(OptLevel), &Error))
llvm_raise(llvm_ee_error_exn, Error);
return JIT;
}
diff --git a/bindings/ocaml/executionengine/llvm_executionengine.ml b/bindings/ocaml/executionengine/llvm_executionengine.ml
index 921d424..95faa58 100644
--- a/bindings/ocaml/executionengine/llvm_executionengine.ml
+++ b/bindings/ocaml/executionengine/llvm_executionengine.ml
@@ -60,10 +60,8 @@ module ExecutionEngine = struct
= "llvm_ee_create"
external create_interpreter: Llvm.llmodule -> t
= "llvm_ee_create_interpreter"
- external create_jit: Llvm.llmodule -> t
+ external create_jit: Llvm.llmodule -> int -> t
= "llvm_ee_create_jit"
- external create_fast_jit: Llvm.llmodule -> t
- = "llvm_ee_create_fast_jit"
external dispose: t -> unit
= "llvm_ee_dispose"
external add_module: Llvm.llmodule -> t -> unit
diff --git a/bindings/ocaml/executionengine/llvm_executionengine.mli b/bindings/ocaml/executionengine/llvm_executionengine.mli
index ec469fc..ac6665b 100644
--- a/bindings/ocaml/executionengine/llvm_executionengine.mli
+++ b/bindings/ocaml/executionengine/llvm_executionengine.mli
@@ -99,22 +99,13 @@ module ExecutionEngine: sig
See the function [llvm::EngineBuilder::create]. *)
val create_interpreter: Llvm.llmodule -> t
- (** [create_jit m] creates a new JIT (just-in-time compiler), taking
- ownership of the module [m] 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].
+ (** [create_jit m optlevel] creates a new JIT (just-in-time compiler), taking
+ ownership of the module [m] if successful with the desired optimization
+ level [optlevel]. 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_jit: Llvm.llmodule -> 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
-
+ val create_jit : Llvm.llmodule -> int -> t
+
(** [dispose ee] releases the memory used by the execution engine and must be
invoked to avoid memory leaks. *)
val dispose: t -> unit