Refactor Orc JIT to enable lazy compilation (#974)
Refactor LLVM Orc JIT to actually enable the lazy compilation and speedup the launching process: https://llvm.org/docs/ORCv2.html#laziness Main modifications: - Create LLVM module for each wasm function, wrap it with thread safe module so that the modules can be compiled parallelly - Lookup function from aot module instance's func_ptrs but not directly call the function to decouple the module relationship - Compile the function when it is first called and hasn't been compiled - Create threads to pre-compile the WASM functions parallelly when loading - Set Lazy JIT as default, update document and build/test scripts
This commit is contained in:
@ -83,9 +83,9 @@ aot_emit_exception(AOTCompContext *comp_ctx, AOTFuncContext *func_ctx,
|
||||
}
|
||||
else {
|
||||
/* Create LLVM function with external function pointer */
|
||||
if (!(func = LLVMGetNamedFunction(comp_ctx->module,
|
||||
if (!(func = LLVMGetNamedFunction(func_ctx->module,
|
||||
"aot_set_exception_with_id"))
|
||||
&& !(func = LLVMAddFunction(comp_ctx->module,
|
||||
&& !(func = LLVMAddFunction(func_ctx->module,
|
||||
"aot_set_exception_with_id",
|
||||
func_type))) {
|
||||
aot_set_last_error("add LLVM function failed.");
|
||||
|
||||
Reference in New Issue
Block a user