Refactor LLVM JIT (#1613)
Refactor LLVM JIT for some purposes: - To simplify the source code of JIT compilation - To simplify the JIT modes - To align with LLVM latest changes - To prepare for the Multi-tier JIT compilation, refer to #1302 The changes mainly include: - Remove the MCJIT mode, replace it with ORC JIT eager mode - Remove the LLVM legacy pass manager (only keep the LLVM new pass manager) - Change the lazy mode's LLVM module/function binding: change each function in an individual LLVM module into all functions in a single LLVM module - Upgraded ORC JIT to ORCv2 JIT to enable lazy compilation Refer to #1468
This commit is contained in:
@ -81,12 +81,26 @@
|
||||
#define WASM_ENABLE_LAZY_JIT 0
|
||||
#endif
|
||||
|
||||
#ifndef WASM_LAZY_JIT_COMPILE_THREAD_NUM
|
||||
#define WASM_LAZY_JIT_COMPILE_THREAD_NUM 4
|
||||
#ifndef WASM_ORC_JIT_BACKEND_THREAD_NUM
|
||||
/* The number of backend threads created by runtime */
|
||||
#define WASM_ORC_JIT_BACKEND_THREAD_NUM 4
|
||||
#endif
|
||||
|
||||
#if WASM_ORC_JIT_BACKEND_THREAD_NUM < 1
|
||||
#error "WASM_ORC_JIT_BACKEND_THREAD_NUM must be greater than 0"
|
||||
#endif
|
||||
|
||||
#ifndef WASM_ORC_JIT_COMPILE_THREAD_NUM
|
||||
/* The number of compilation threads created by LLVM JIT */
|
||||
#define WASM_ORC_JIT_COMPILE_THREAD_NUM 4
|
||||
#endif
|
||||
|
||||
#if WASM_ORC_JIT_COMPILE_THREAD_NUM < 1
|
||||
#error "WASM_ORC_JIT_COMPILE_THREAD_NUM must be greater than 0"
|
||||
#endif
|
||||
|
||||
#if (WASM_ENABLE_AOT == 0) && (WASM_ENABLE_JIT != 0)
|
||||
/* LazyJIT or MCJIT can only be enabled when AOT is enabled */
|
||||
/* LLVM JIT can only be enabled when AOT is enabled */
|
||||
#undef WASM_ENABLE_JIT
|
||||
#define WASM_ENABLE_JIT 0
|
||||
|
||||
@ -110,14 +124,6 @@
|
||||
#define WASM_ENABLE_WAMR_COMPILER 0
|
||||
#endif
|
||||
|
||||
#if WASM_ENABLE_WAMR_COMPILER != 0
|
||||
#ifndef WASM_ENABLE_LLVM_LEGACY_PM
|
||||
/* Whether to use LLVM legacy pass manager when building wamrc,
|
||||
by default it is disabled and LLVM new pass manager is used */
|
||||
#define WASM_ENABLE_LLVM_LEGACY_PM 0
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef WASM_ENABLE_LIBC_BUILTIN
|
||||
#define WASM_ENABLE_LIBC_BUILTIN 0
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user