mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-11-28 18:41:06 +00:00
Update LLVM to 21.1.2.
Wraps the LLVMContext construction in LLVM 21 version check; LLVM 21 makes a breaking change in LLVMContext construction, but WAMR still needs to support older LLVM versions, e.g. for xtensa/esp32 support which is only available in at most LLVM 19.
This commit is contained in:
parent
3f4145e691
commit
f4dc4e1be3
|
|
@ -294,7 +294,7 @@ def main():
|
||||||
"arc": {
|
"arc": {
|
||||||
"repo": "https://github.com/llvm/llvm-project.git",
|
"repo": "https://github.com/llvm/llvm-project.git",
|
||||||
"repo_ssh": "git@github.com:llvm/llvm-project.git",
|
"repo_ssh": "git@github.com:llvm/llvm-project.git",
|
||||||
"branch": "release/18.x",
|
"branch": "release/21.x",
|
||||||
},
|
},
|
||||||
"xtensa": {
|
"xtensa": {
|
||||||
"repo": "https://github.com/espressif/llvm-project.git",
|
"repo": "https://github.com/espressif/llvm-project.git",
|
||||||
|
|
@ -304,7 +304,7 @@ def main():
|
||||||
"default": {
|
"default": {
|
||||||
"repo": "https://github.com/llvm/llvm-project.git",
|
"repo": "https://github.com/llvm/llvm-project.git",
|
||||||
"repo_ssh": "git@github.com:llvm/llvm-project.git",
|
"repo_ssh": "git@github.com:llvm/llvm-project.git",
|
||||||
"branch": "release/18.x",
|
"branch": "release/21.x",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2656,6 +2656,25 @@ aot_create_comp_context(const AOTCompData *comp_data, aot_comp_option_t option)
|
||||||
comp_ctx->comp_data = comp_data;
|
comp_ctx->comp_data = comp_data;
|
||||||
|
|
||||||
/* Create LLVM context, module and builder */
|
/* Create LLVM context, module and builder */
|
||||||
|
#if LLVM_VERSION_MAJOR >= 21
|
||||||
|
/* Construct an LLVMContext directly, note:
|
||||||
|
different from non LAZY JIT mode, no need to dispose this context, if
|
||||||
|
will be disposed when the thread safe context is disposed */
|
||||||
|
comp_ctx->context = LLVMContextCreate();
|
||||||
|
if (!comp_ctx->context) {
|
||||||
|
aot_set_last_error("create LLVM Context failed.");
|
||||||
|
goto fail;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Wrap the LLVM context in a thread safe context. */
|
||||||
|
comp_ctx->orc_thread_safe_context =
|
||||||
|
LLVMOrcCreateNewThreadSafeContextFromLLVMContext(comp_ctx->context);
|
||||||
|
if (!comp_ctx->orc_thread_safe_context) {
|
||||||
|
aot_set_last_error(
|
||||||
|
"Create LLVM ThreadSafeContext from LLVMContext failed.");
|
||||||
|
goto fail;
|
||||||
|
}
|
||||||
|
#else // LLVM_VERSION_MAJOR < 21
|
||||||
comp_ctx->orc_thread_safe_context = LLVMOrcCreateNewThreadSafeContext();
|
comp_ctx->orc_thread_safe_context = LLVMOrcCreateNewThreadSafeContext();
|
||||||
if (!comp_ctx->orc_thread_safe_context) {
|
if (!comp_ctx->orc_thread_safe_context) {
|
||||||
aot_set_last_error("create LLVM ThreadSafeContext failed.");
|
aot_set_last_error("create LLVM ThreadSafeContext failed.");
|
||||||
|
|
@ -2670,6 +2689,7 @@ aot_create_comp_context(const AOTCompData *comp_data, aot_comp_option_t option)
|
||||||
aot_set_last_error("get context from LLVM ThreadSafeContext failed.");
|
aot_set_last_error("get context from LLVM ThreadSafeContext failed.");
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!(comp_ctx->builder = LLVMCreateBuilderInContext(comp_ctx->context))) {
|
if (!(comp_ctx->builder = LLVMCreateBuilderInContext(comp_ctx->context))) {
|
||||||
aot_set_last_error("create LLVM builder failed.");
|
aot_set_last_error("create LLVM builder failed.");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user