From c0721c2172ad951a4ab1baf8e70922215b6be450 Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Mon, 2 Feb 2015 04:34:02 +0000 Subject: [PATCH] [Orc] Remove the OwnedModules list from OrcMCJITReplacement and use ExecutionEngine's Modules list instead. This makes the owned modules visibile to ExecutionEngine. In particular, it is required for ExecutionEngine::runStaticConstructorsAndDestructors to work. Regression tests for Orc (which test this issue) will be committed shortly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227779 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/ExecutionEngine/Orc/OrcMCJITReplacement.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h b/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h index 158d9c785e2..838f5dce97f 100644 --- a/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h +++ b/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h @@ -134,9 +134,9 @@ public: if (!M->getDataLayout()) M->setDataLayout(getDataLayout()); - OwnedModules.push_back(std::move(M)); + Modules.push_back(std::move(M)); std::vector Ms; - Ms.push_back(&*OwnedModules.back()); + Ms.push_back(&*Modules.back()); LazyEmitLayer.addModuleSet(std::move(Ms), llvm::make_unique(*this)); } @@ -302,10 +302,6 @@ private: CompileLayerT CompileLayer; LazyEmitLayerT LazyEmitLayer; - // MCJIT keeps modules alive - we need to do the same for backwards - // compatibility. - std::vector> OwnedModules; - // We need to store ObjLayerT::ObjSetHandles for each of the object sets // that have been emitted but not yet finalized so that we can forward the // mapSectionAddress calls appropriately.