diff options
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h')
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h b/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h index 6188b29befc..c62210112c3 100644 --- a/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h +++ b/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h @@ -34,10 +34,7 @@ public: typedef orc::IRCompileLayer<ObjLayerT> CompileLayerT; typedef orc::CompileOnDemandLayer<CompileLayerT, CompileCallbackMgr> CODLayerT; - typedef std::function< - std::unique_ptr<CompileCallbackMgr>(CompileLayerT&, - RuntimeDyld::MemoryManager&, - LLVMContext&)> + typedef std::function<std::unique_ptr<CompileCallbackMgr>()> CallbackManagerBuilder; typedef CODLayerT::IndirectStubsManagerBuilderT IndirectStubsManagerBuilder; @@ -86,19 +83,18 @@ public: typedef unsigned ModuleHandleT; - static CallbackManagerBuilder createCallbackManagerBuilder(Triple T); + static std::unique_ptr<CompileCallbackMgr> createCompileCallbackMgr(Triple T); static IndirectStubsManagerBuilder createIndirectStubsMgrBuilder(Triple T); - OrcCBindingsStack(TargetMachine &TM, LLVMContext &Context, - CallbackManagerBuilder &BuildCallbackMgr, + OrcCBindingsStack(TargetMachine &TM, + std::unique_ptr<CompileCallbackMgr> CCMgr, IndirectStubsManagerBuilder IndirectStubsMgrBuilder) - : Context(Context), DL(TM.createDataLayout()), + : DL(TM.createDataLayout()), CCMgr(std::move(CCMgr)), ObjectLayer(), CompileLayer(ObjectLayer, orc::SimpleCompiler(TM)), - CCMgr(BuildCallbackMgr(CompileLayer, CCMgrMemMgr, Context)), CODLayer(CompileLayer, [](Function &F) { std::set<Function*> S; S.insert(&F); return S; }, - *CCMgr, std::move(IndirectStubsMgrBuilder), false), + *this->CCMgr, std::move(IndirectStubsMgrBuilder), false), IndirectStubsMgr(IndirectStubsMgrBuilder()), CXXRuntimeOverrides([this](const std::string &S) { return mangle(S); }) {} @@ -127,7 +123,7 @@ public: orc::TargetAddress createLazyCompileCallback(LLVMOrcLazyCompileCallbackFn Callback, void *CallbackCtx) { - auto CCInfo = CCMgr->getCompileCallback(Context); + auto CCInfo = CCMgr->getCompileCallback(); CCInfo.setCompileAction( [=]() -> orc::TargetAddress { return Callback(wrap(this), CallbackCtx); @@ -264,13 +260,12 @@ private: return NewHandle; } - LLVMContext &Context; DataLayout DL; SectionMemoryManager CCMgrMemMgr; + std::unique_ptr<CompileCallbackMgr> CCMgr; ObjLayerT ObjectLayer; CompileLayerT CompileLayer; - std::unique_ptr<CompileCallbackMgr> CCMgr; CODLayerT CODLayer; std::unique_ptr<orc::IndirectStubsManagerBase> IndirectStubsMgr; |