mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-11 09:25:20 +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);
|
||||
}
|
||||
|
||||
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");
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -58,6 +58,7 @@ convert(LLVMRelocMode reloc_mode)
|
|||
#endif
|
||||
}
|
||||
|
||||
#if LLVM_VERSION_MAJOR < 18
|
||||
static llvm::CodeGenOpt::Level
|
||||
convert(LLVMCodeGenOptLevel opt_level)
|
||||
{
|
||||
|
@ -74,6 +75,24 @@ convert(LLVMCodeGenOptLevel opt_level)
|
|||
bh_assert(0);
|
||||
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>
|
||||
convert(LLVMCodeModel code_model, bool *jit)
|
||||
|
|
|
@ -3,6 +3,10 @@
|
|||
* 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/Orc.h"
|
||||
#include "llvm-c/OrcEE.h"
|
||||
|
@ -44,6 +48,7 @@ class InProgressLookupState;
|
|||
class OrcV2CAPIHelper
|
||||
{
|
||||
public:
|
||||
#if LLVM_VERSION_MAJOR < 18
|
||||
using PoolEntry = SymbolStringPtr::PoolEntry;
|
||||
using PoolEntryPtr = SymbolStringPtr::PoolEntryPtr;
|
||||
|
||||
|
@ -86,6 +91,7 @@ class OrcV2CAPIHelper
|
|||
S.S = P;
|
||||
}
|
||||
|
||||
#endif
|
||||
static InProgressLookupState *extractLookupState(LookupState &LS)
|
||||
{
|
||||
return LS.IPLS.release();
|
||||
|
@ -101,6 +107,20 @@ class OrcV2CAPIHelper
|
|||
} // namespace llvm
|
||||
|
||||
// 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(IRTransformLayer, LLVMOrcIRTransformLayerRef)
|
||||
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(JITDylib, LLVMOrcJITDylibRef)
|
||||
|
@ -108,8 +128,10 @@ DEFINE_SIMPLE_CONVERSION_FUNCTIONS(JITTargetMachineBuilder,
|
|||
LLVMOrcJITTargetMachineBuilderRef)
|
||||
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(ObjectTransformLayer,
|
||||
LLVMOrcObjectTransformLayerRef)
|
||||
#if LLVM_VERSION_MAJOR < 18
|
||||
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(OrcV2CAPIHelper::PoolEntry,
|
||||
LLVMOrcSymbolStringPoolEntryRef)
|
||||
#endif
|
||||
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(ObjectLayer, LLVMOrcObjectLayerRef)
|
||||
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(SymbolStringPool, LLVMOrcSymbolStringPoolRef)
|
||||
DEFINE_SIMPLE_CONVERSION_FUNCTIONS(ThreadSafeModule, LLVMOrcThreadSafeModuleRef)
|
||||
|
@ -292,8 +314,13 @@ LLVMOrcSymbolStringPoolEntryRef
|
|||
LLVMOrcLLLazyJITMangleAndIntern(LLVMOrcLLLazyJITRef J,
|
||||
const char *UnmangledName)
|
||||
{
|
||||
#if LLVM_VERSION_MAJOR < 18
|
||||
return wrap(OrcV2CAPIHelper::moveFromSymbolStringPtr(
|
||||
unwrap(J)->mangleAndIntern(UnmangledName)));
|
||||
#else
|
||||
return wrap(SymbolStringPoolEntryUnsafe::take(
|
||||
unwrap(J)->mangleAndIntern(UnmangledName)));
|
||||
#endif
|
||||
}
|
||||
|
||||
LLVMOrcJITDylibRef
|
||||
|
|
Loading…
Reference in New Issue
Block a user