mirror of
https://github.com/RPCS3/llvm.git
synced 2024-11-24 12:20:00 +00:00
Fix the LLVMCreateJITCompiler C binding.
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
This commit is contained in:
parent
7a61d701c0
commit
c13c4d6a1b
@ -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;
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -62,6 +62,7 @@ int LLVMCreateInterpreter(LLVMExecutionEngineRef *OutInterp,
|
||||
|
||||
int LLVMCreateJITCompiler(LLVMExecutionEngineRef *OutJIT,
|
||||
LLVMModuleProviderRef MP,
|
||||
int Fast,
|
||||
char **OutError);
|
||||
|
||||
void LLVMDisposeExecutionEngine(LLVMExecutionEngineRef EE);
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user