Fix jit with LLVM 8 (#2944)

This commit is contained in:
Nicholas Wilson 2018-12-18 16:02:13 +08:00 committed by GitHub
parent d4858cfbcb
commit 3dc367db40
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 1 deletions

View file

@ -95,7 +95,7 @@ JITContext::JITContext()
execSession(stringPool), resolver(createResolver()),
objectLayer(execSession,
[this](llvm::orc::VModuleKey) {
return llvm::orc::RTDyldObjectLinkingLayer::Resources{
return ObjectLayerT::Resources{
std::make_shared<llvm::SectionMemoryManager>(),
resolver};
}),

View file

@ -67,11 +67,19 @@ private:
llvm::llvm_shutdown_obj shutdownObj;
std::unique_ptr<llvm::TargetMachine> targetmachine;
const llvm::DataLayout dataLayout;
#if LDC_LLVM_VER >= 800
using ObjectLayerT = llvm::orc::LegacyRTDyldObjectLinkingLayer;
using ListenerLayerT =
llvm::orc::LegacyObjectTransformLayer<ObjectLayerT, ModuleListener>;
using CompileLayerT =
llvm::orc::LegacyIRCompileLayer<ListenerLayerT, llvm::orc::SimpleCompiler>;
#else
using ObjectLayerT = llvm::orc::RTDyldObjectLinkingLayer;
using ListenerLayerT =
llvm::orc::ObjectTransformLayer<ObjectLayerT, ModuleListener>;
using CompileLayerT =
llvm::orc::IRCompileLayer<ListenerLayerT, llvm::orc::SimpleCompiler>;
#endif
#if LDC_LLVM_VER >= 700
using ModuleHandleT = llvm::orc::VModuleKey;
std::shared_ptr<llvm::orc::SymbolStringPool> stringPool;