projects
/
oota-llvm.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
7a61d70
)
Fix the LLVMCreateJITCompiler C binding.
author
Gordon Henriksen
<gordonhenriksen@mac.com>
Fri, 8 Aug 2008 20:49:28 +0000
(20:49 +0000)
committer
Gordon Henriksen
<gordonhenriksen@mac.com>
Fri, 8 Aug 2008 20:49:28 +0000
(20:49 +0000)
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
bindings/ocaml/executionengine/executionengine_ocaml.c
patch
|
blob
|
history
bindings/ocaml/executionengine/llvm_executionengine.ml
patch
|
blob
|
history
bindings/ocaml/executionengine/llvm_executionengine.mli
patch
|
blob
|
history
include/llvm-c/ExecutionEngine.h
patch
|
blob
|
history
lib/ExecutionEngine/ExecutionEngineBindings.cpp
patch
|
blob
|
history
diff --git
a/bindings/ocaml/executionengine/executionengine_ocaml.c
b/bindings/ocaml/executionengine/executionengine_ocaml.c
index 4af771123c0c096229f7045bd3441928c421871e..fc3848a1eb1428dc2bbe70483fcc1be78d74a81e 100644
(file)
--- a/
bindings/ocaml/executionengine/executionengine_ocaml.c
+++ b/
bindings/ocaml/executionengine/executionengine_ocaml.c
@@
-181,7
+181,17
@@
CAMLprim LLVMExecutionEngineRef
llvm_ee_create_jit(LLVMModuleProviderRef MP) {
LLVMExecutionEngineRef JIT;
char *Error;
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_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 4b9132df052e9c90b38d9164c8f13e98c08e89b5..cf9acc7cb6b8297b4a0ea32d00f90290ea711337 100644
(file)
--- a/
bindings/ocaml/executionengine/llvm_executionengine.ml
+++ b/
bindings/ocaml/executionengine/llvm_executionengine.ml
@@
-62,6
+62,8
@@
module ExecutionEngine = struct
= "llvm_ee_create_interpreter"
external create_jit: Llvm.llmoduleprovider -> t
= "llvm_ee_create_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
external dispose: t -> unit
= "llvm_ee_dispose"
external add_module_provider: Llvm.llmoduleprovider -> t -> unit
diff --git
a/bindings/ocaml/executionengine/llvm_executionengine.mli
b/bindings/ocaml/executionengine/llvm_executionengine.mli
index 9794f358fff14161419e61e31fdcaf98fa9d4742..17da1dffe556b2f91a5feb6967319871869681e7 100644
(file)
--- a/
bindings/ocaml/executionengine/llvm_executionengine.mli
+++ b/
bindings/ocaml/executionengine/llvm_executionengine.mli
@@
-100,12
+100,21
@@
module ExecutionEngine: sig
val create_interpreter: Llvm.llmoduleprovider -> t
(** [create_jit mp] creates a new JIT (just-in-time compiler), taking
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
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
(** [dispose ee] releases the memory used by the execution engine and must be
invoked to avoid memory leaks. *)
val dispose: t -> unit
diff --git
a/include/llvm-c/ExecutionEngine.h
b/include/llvm-c/ExecutionEngine.h
index 8664f1fe9a8245b72ae643ed33a14baf21b0847e..d138d072c632c9da4fb108960e399acc8809684f 100644
(file)
--- a/
include/llvm-c/ExecutionEngine.h
+++ b/
include/llvm-c/ExecutionEngine.h
@@
-62,6
+62,7
@@
int LLVMCreateInterpreter(LLVMExecutionEngineRef *OutInterp,
int LLVMCreateJITCompiler(LLVMExecutionEngineRef *OutJIT,
LLVMModuleProviderRef MP,
int LLVMCreateJITCompiler(LLVMExecutionEngineRef *OutJIT,
LLVMModuleProviderRef MP,
+ int Fast,
char **OutError);
void LLVMDisposeExecutionEngine(LLVMExecutionEngineRef EE);
char **OutError);
void LLVMDisposeExecutionEngine(LLVMExecutionEngineRef EE);
diff --git
a/lib/ExecutionEngine/ExecutionEngineBindings.cpp
b/lib/ExecutionEngine/ExecutionEngineBindings.cpp
index 5ceeb9097d002086c97a4d9ed04ff3119a8f12c6..7c55db0af2583f5efbf066b24540b8b7fa6801eb 100644
(file)
--- a/
lib/ExecutionEngine/ExecutionEngineBindings.cpp
+++ b/
lib/ExecutionEngine/ExecutionEngineBindings.cpp
@@
-114,11
+114,11
@@
int LLVMCreateInterpreter(LLVMExecutionEngineRef *OutInterp,
int LLVMCreateJITCompiler(LLVMExecutionEngineRef *OutJIT,
LLVMModuleProviderRef MP,
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,
std::string Error;
if (ExecutionEngine *JIT = ExecutionEngine::createJIT(unwrap(MP), &Error, 0,
- Fast)) {
+ Fast
!= 0
)) {
*OutJIT = wrap(JIT);
return 0;
}
*OutJIT = wrap(JIT);
return 0;
}