Fix the LLVMCreateJITCompiler C binding.
authorGordon Henriksen <gordonhenriksen@mac.com>
Fri, 8 Aug 2008 20:49:28 +0000 (20:49 +0000)
committerGordon 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
bindings/ocaml/executionengine/llvm_executionengine.ml
bindings/ocaml/executionengine/llvm_executionengine.mli
include/llvm-c/ExecutionEngine.h
lib/ExecutionEngine/ExecutionEngineBindings.cpp

index 4af771123c0c096229f7045bd3441928c421871e..fc3848a1eb1428dc2bbe70483fcc1be78d74a81e 100644 (file)
@@ -181,7 +181,17 @@ CAMLprim LLVMExecutionEngineRef
 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;
 }
index 4b9132df052e9c90b38d9164c8f13e98c08e89b5..cf9acc7cb6b8297b4a0ea32d00f90290ea711337 100644 (file)
@@ -62,6 +62,8 @@ module ExecutionEngine = struct
     = "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
index 9794f358fff14161419e61e31fdcaf98fa9d4742..17da1dffe556b2f91a5feb6967319871869681e7 100644 (file)
@@ -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
-      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
index 8664f1fe9a8245b72ae643ed33a14baf21b0847e..d138d072c632c9da4fb108960e399acc8809684f 100644 (file)
@@ -62,6 +62,7 @@ int LLVMCreateInterpreter(LLVMExecutionEngineRef *OutInterp,
 
 int LLVMCreateJITCompiler(LLVMExecutionEngineRef *OutJIT,
                           LLVMModuleProviderRef MP,
+                          int Fast,
                           char **OutError);
 
 void LLVMDisposeExecutionEngine(LLVMExecutionEngineRef EE);
index 5ceeb9097d002086c97a4d9ed04ff3119a8f12c6..7c55db0af2583f5efbf066b24540b8b7fa6801eb 100644 (file)
@@ -114,11 +114,11 @@ int LLVMCreateInterpreter(LLVMExecutionEngineRef *OutInterp,
 
 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;
   }