Enable lazy Orc JIT feature (#732)
The feature is disabled by default, to enable it, please use `cmake -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=1` to build iwasm.
This commit is contained in:
128
core/iwasm/compilation/aot_llvm_lazyjit.cpp
Normal file
128
core/iwasm/compilation/aot_llvm_lazyjit.cpp
Normal file
@ -0,0 +1,128 @@
|
||||
/*
|
||||
* Copyright (C) 2019 Intel Corporation. All rights reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
*/
|
||||
|
||||
#include "aot_llvm_lazyjit.h"
|
||||
|
||||
LLVMOrcJITTargetMachineBuilderRef
|
||||
LLVMOrcJITTargetMachineBuilderFromTargetMachine(LLVMTargetMachineRef TM);
|
||||
|
||||
LLVMOrcLLJITBuilderRef
|
||||
LLVMOrcCreateLLJITBuilder(void);
|
||||
|
||||
void
|
||||
LLVMOrcDisposeLLJITBuilder(LLVMOrcLLJITBuilderRef Builder);
|
||||
|
||||
LLVMErrorRef
|
||||
LLVMOrcCreateLLJIT(LLVMOrcLLJITRef *Result,
|
||||
LLVMOrcLLJITBuilderRef Builder);
|
||||
|
||||
LLVMErrorRef
|
||||
LLVMOrcDisposeLLJIT(LLVMOrcLLJITRef J);
|
||||
|
||||
LLVMOrcJITDylibRef
|
||||
LLVMOrcLLJITGetMainJITDylib(LLVMOrcLLJITRef J);
|
||||
|
||||
const char *
|
||||
LLVMOrcLLJITGetTripleString(LLVMOrcLLJITRef J);
|
||||
|
||||
char
|
||||
LLVMOrcLLJITGetGlobalPrefix(LLVMOrcLLJITRef J);
|
||||
|
||||
LLVMErrorRef
|
||||
LLVMOrcLLJITAddLLVMIRModule(LLVMOrcLLJITRef J,
|
||||
LLVMOrcJITDylibRef JD,
|
||||
LLVMOrcThreadSafeModuleRef TSM);
|
||||
|
||||
LLVMErrorRef
|
||||
LLVMOrcLLJITLookup(LLVMOrcLLJITRef J,
|
||||
LLVMOrcJITTargetAddress *Result,
|
||||
const char *Name);
|
||||
|
||||
const char *
|
||||
LLVMOrcLLJITGetTripleString(LLVMOrcLLJITRef J);
|
||||
|
||||
void
|
||||
LLVMOrcLLJITBuilderSetJITTargetMachineBuilder(
|
||||
LLVMOrcLLJITBuilderRef Builder,
|
||||
LLVMOrcJITTargetMachineBuilderRef JTMB);
|
||||
|
||||
char
|
||||
LLVMOrcLLJITGetGlobalPrefix(LLVMOrcLLJITRef J);
|
||||
|
||||
#if LLVM_VERSION_MAJOR < 12
|
||||
LLVMOrcJITTargetMachineBuilderRef
|
||||
LLVMOrcJITTargetMachineBuilderCreateFromTargetMachine(LLVMTargetMachineRef TM)
|
||||
{
|
||||
return LLVMOrcJITTargetMachineBuilderFromTargetMachine(TM);
|
||||
}
|
||||
#endif
|
||||
|
||||
LLVMOrcJITDylibRef
|
||||
LLVMOrcLLLazyJITGetMainJITDylib(LLVMOrcLLLazyJITRef J)
|
||||
{
|
||||
return LLVMOrcLLJITGetMainJITDylib(J);
|
||||
}
|
||||
|
||||
LLVMOrcLLLazyJITBuilderRef
|
||||
LLVMOrcCreateLLLazyJITBuilder(void)
|
||||
{
|
||||
return LLVMOrcCreateLLJITBuilder();
|
||||
}
|
||||
|
||||
void
|
||||
LLVMOrcDisposeLLLazyJITBuilder(LLVMOrcLLLazyJITBuilderRef Builder)
|
||||
{
|
||||
return LLVMOrcDisposeLLJITBuilder(Builder);
|
||||
}
|
||||
|
||||
LLVMErrorRef
|
||||
LLVMOrcCreateLLLazyJIT(LLVMOrcLLLazyJITRef *Result,
|
||||
LLVMOrcLLLazyJITBuilderRef Builder)
|
||||
{
|
||||
return LLVMOrcCreateLLJIT(Result, Builder);
|
||||
}
|
||||
|
||||
LLVMErrorRef
|
||||
LLVMOrcDisposeLLLazyJIT(LLVMOrcLLLazyJITRef J)
|
||||
{
|
||||
return LLVMOrcDisposeLLJIT(J);
|
||||
}
|
||||
|
||||
LLVMErrorRef
|
||||
LLVMOrcLLLazyJITAddLLVMIRModule(LLVMOrcLLLazyJITRef J,
|
||||
LLVMOrcJITDylibRef JD,
|
||||
LLVMOrcThreadSafeModuleRef TSM)
|
||||
{
|
||||
return LLVMOrcLLJITAddLLVMIRModule(J, JD, TSM);
|
||||
}
|
||||
|
||||
LLVMErrorRef
|
||||
LLVMOrcLLLazyJITLookup(LLVMOrcLLLazyJITRef J,
|
||||
LLVMOrcJITTargetAddress *Result,
|
||||
const char *Name)
|
||||
{
|
||||
return LLVMOrcLLJITLookup(J, Result, Name);
|
||||
}
|
||||
|
||||
const char *
|
||||
LLVMOrcLLLazyJITGetTripleString(LLVMOrcLLLazyJITRef J)
|
||||
{
|
||||
return LLVMOrcLLJITGetTripleString(J);
|
||||
}
|
||||
|
||||
void
|
||||
LLVMOrcLLLazyJITBuilderSetJITTargetMachineBuilder(
|
||||
LLVMOrcLLLazyJITBuilderRef Builder,
|
||||
LLVMOrcJITTargetMachineBuilderRef JTMB)
|
||||
{
|
||||
return LLVMOrcLLJITBuilderSetJITTargetMachineBuilder(Builder, JTMB);
|
||||
}
|
||||
|
||||
char
|
||||
LLVMOrcLLLazyJITGetGlobalPrefix(LLVMOrcLLLazyJITRef J)
|
||||
{
|
||||
return LLVMOrcLLJITGetGlobalPrefix(J);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user