mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-05-14 13:41:31 +00:00
aot compiler: Some updates for LLVM 18 (#2981)
Note: This commit includes copy-and-paste from LLVM and thus adds the LLVM copyright notice. cf.0a1aa6cda2
cf.a1e9777b76
cf.56c72c7f33
This commit is contained in:
parent
c39214e8a5
commit
722381fcf2
|
@ -409,7 +409,10 @@ aot_compress_aot_func_names(AOTCompContext *comp_ctx, uint32 *p_size)
|
||||||
NameStrs.push_back(str);
|
NameStrs.push_back(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (collectPGOFuncNameStrings(NameStrs, true, Result)) {
|
#if LLVM_VERSION_MAJOR < 18
|
||||||
|
#define collectGlobalObjectNameStrings collectPGOFuncNameStrings
|
||||||
|
#endif
|
||||||
|
if (collectGlobalObjectNameStrings(NameStrs, true, Result)) {
|
||||||
aot_set_last_error("collect pgo func name strings failed");
|
aot_set_last_error("collect pgo func name strings failed");
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,6 +58,7 @@ convert(LLVMRelocMode reloc_mode)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if LLVM_VERSION_MAJOR < 18
|
||||||
static llvm::CodeGenOpt::Level
|
static llvm::CodeGenOpt::Level
|
||||||
convert(LLVMCodeGenOptLevel opt_level)
|
convert(LLVMCodeGenOptLevel opt_level)
|
||||||
{
|
{
|
||||||
|
@ -74,6 +75,24 @@ convert(LLVMCodeGenOptLevel opt_level)
|
||||||
bh_assert(0);
|
bh_assert(0);
|
||||||
return llvm::CodeGenOpt::None;
|
return llvm::CodeGenOpt::None;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
static llvm::CodeGenOptLevel
|
||||||
|
convert(LLVMCodeGenOptLevel opt_level)
|
||||||
|
{
|
||||||
|
switch (opt_level) {
|
||||||
|
case LLVMCodeGenLevelNone:
|
||||||
|
return llvm::CodeGenOptLevel::None;
|
||||||
|
case LLVMCodeGenLevelLess:
|
||||||
|
return llvm::CodeGenOptLevel::Less;
|
||||||
|
case LLVMCodeGenLevelDefault:
|
||||||
|
return llvm::CodeGenOptLevel::Default;
|
||||||
|
case LLVMCodeGenLevelAggressive:
|
||||||
|
return llvm::CodeGenOptLevel::Aggressive;
|
||||||
|
}
|
||||||
|
bh_assert(0);
|
||||||
|
return llvm::CodeGenOptLevel::None;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static llvm::Optional<llvm::CodeModel::Model>
|
static llvm::Optional<llvm::CodeModel::Model>
|
||||||
convert(LLVMCodeModel code_model, bool *jit)
|
convert(LLVMCodeModel code_model, bool *jit)
|
||||||
|
|
|
@ -3,6 +3,10 @@
|
||||||
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||||
|
// See https://llvm.org/LICENSE.txt for license information.
|
||||||
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
|
||||||
#include "llvm-c/LLJIT.h"
|
#include "llvm-c/LLJIT.h"
|
||||||
#include "llvm-c/Orc.h"
|
#include "llvm-c/Orc.h"
|
||||||
#include "llvm-c/OrcEE.h"
|
#include "llvm-c/OrcEE.h"
|
||||||
|
@ -44,6 +48,7 @@ class InProgressLookupState;
|
||||||
class OrcV2CAPIHelper
|
class OrcV2CAPIHelper
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
#if LLVM_VERSION_MAJOR < 18
|
||||||
using PoolEntry = SymbolStringPtr::PoolEntry;
|
using PoolEntry = SymbolStringPtr::PoolEntry;
|
||||||
using PoolEntryPtr = SymbolStringPtr::PoolEntryPtr;
|
using PoolEntryPtr = SymbolStringPtr::PoolEntryPtr;
|
||||||
|
|
||||||
|
@ -86,6 +91,7 @@ class OrcV2CAPIHelper
|
||||||
S.S = P;
|
S.S = P;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
static InProgressLookupState *extractLookupState(LookupState &LS)
|
static InProgressLookupState *extractLookupState(LookupState &LS)
|
||||||
{
|
{
|
||||||
return LS.IPLS.release();
|
return LS.IPLS.release();
|
||||||
|
@ -101,6 +107,20 @@ class OrcV2CAPIHelper
|
||||||
} // namespace llvm
|
} // namespace llvm
|
||||||
|
|
||||||
// ORC.h
|
// ORC.h
|
||||||
|
#if LLVM_VERSION_MAJOR >= 18
|
||||||
|
inline LLVMOrcSymbolStringPoolEntryRef
|
||||||
|
wrap(SymbolStringPoolEntryUnsafe E)
|
||||||
|
{
|
||||||
|
return reinterpret_cast<LLVMOrcSymbolStringPoolEntryRef>(E.rawPtr());
|
||||||
|
}
|
||||||
|
|
||||||
|
inline SymbolStringPoolEntryUnsafe
|
||||||
|
unwrap(LLVMOrcSymbolStringPoolEntryRef E)
|
||||||
|
{
|
||||||
|
return reinterpret_cast<SymbolStringPoolEntryUnsafe::PoolEntry *>(E);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(ExecutionSession, LLVMOrcExecutionSessionRef)
|
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(ExecutionSession, LLVMOrcExecutionSessionRef)
|
||||||
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(IRTransformLayer, LLVMOrcIRTransformLayerRef)
|
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(IRTransformLayer, LLVMOrcIRTransformLayerRef)
|
||||||
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(JITDylib, LLVMOrcJITDylibRef)
|
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(JITDylib, LLVMOrcJITDylibRef)
|
||||||
|
@ -108,8 +128,10 @@ DEFINE_SIMPLE_CONVERSION_FUNCTIONS(JITTargetMachineBuilder,
|
||||||
LLVMOrcJITTargetMachineBuilderRef)
|
LLVMOrcJITTargetMachineBuilderRef)
|
||||||
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(ObjectTransformLayer,
|
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(ObjectTransformLayer,
|
||||||
LLVMOrcObjectTransformLayerRef)
|
LLVMOrcObjectTransformLayerRef)
|
||||||
|
#if LLVM_VERSION_MAJOR < 18
|
||||||
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(OrcV2CAPIHelper::PoolEntry,
|
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(OrcV2CAPIHelper::PoolEntry,
|
||||||
LLVMOrcSymbolStringPoolEntryRef)
|
LLVMOrcSymbolStringPoolEntryRef)
|
||||||
|
#endif
|
||||||
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(ObjectLayer, LLVMOrcObjectLayerRef)
|
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(ObjectLayer, LLVMOrcObjectLayerRef)
|
||||||
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(SymbolStringPool, LLVMOrcSymbolStringPoolRef)
|
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(SymbolStringPool, LLVMOrcSymbolStringPoolRef)
|
||||||
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(ThreadSafeModule, LLVMOrcThreadSafeModuleRef)
|
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(ThreadSafeModule, LLVMOrcThreadSafeModuleRef)
|
||||||
|
@ -292,8 +314,13 @@ LLVMOrcSymbolStringPoolEntryRef
|
||||||
LLVMOrcLLLazyJITMangleAndIntern(LLVMOrcLLLazyJITRef J,
|
LLVMOrcLLLazyJITMangleAndIntern(LLVMOrcLLLazyJITRef J,
|
||||||
const char *UnmangledName)
|
const char *UnmangledName)
|
||||||
{
|
{
|
||||||
|
#if LLVM_VERSION_MAJOR < 18
|
||||||
return wrap(OrcV2CAPIHelper::moveFromSymbolStringPtr(
|
return wrap(OrcV2CAPIHelper::moveFromSymbolStringPtr(
|
||||||
unwrap(J)->mangleAndIntern(UnmangledName)));
|
unwrap(J)->mangleAndIntern(UnmangledName)));
|
||||||
|
#else
|
||||||
|
return wrap(SymbolStringPoolEntryUnsafe::take(
|
||||||
|
unwrap(J)->mangleAndIntern(UnmangledName)));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
LLVMOrcJITDylibRef
|
LLVMOrcJITDylibRef
|
||||||
|
|
Loading…
Reference in New Issue
Block a user