X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=tools%2Flli%2FOrcLazyJIT.h;h=fe86adbf95162f672398fceedbffafd45787c6a3;hb=9758b4ae957d85e4b1e7fff1592f276ae684ee98;hp=bff2eca26a5f2bed6b6c9c5388d313662090f976;hpb=ee160106a131f9b79b89c5ea3b6c0e1e1d1f019d;p=oota-llvm.git diff --git a/tools/lli/OrcLazyJIT.h b/tools/lli/OrcLazyJIT.h index bff2eca26a5..fe86adbf951 100644 --- a/tools/lli/OrcLazyJIT.h +++ b/tools/lli/OrcLazyJIT.h @@ -50,12 +50,11 @@ public: OrcLazyJIT(std::unique_ptr TM, LLVMContext &Context, CallbackManagerBuilder &BuildCallbackMgr) : TM(std::move(TM)), - Mang(this->TM->getDataLayout()), ObjectLayer(), CompileLayer(ObjectLayer, orc::SimpleCompiler(*this->TM)), IRDumpLayer(CompileLayer, createDebugDumper()), CCMgr(BuildCallbackMgr(IRDumpLayer, CCMgrMemMgr, Context)), - CODLayer(IRDumpLayer, *CCMgr), + CODLayer(IRDumpLayer, *CCMgr, false), CXXRuntimeOverrides([this](const std::string &S) { return mangle(S); }) {} ~OrcLazyJIT() { @@ -88,22 +87,24 @@ public: // 1) Search the JIT symbols. // 2) Check for C++ runtime overrides. // 3) Search the host process (LLI)'s symbol table. - auto Resolver = + std::shared_ptr Resolver = orc::createLambdaResolver( [this](const std::string &Name) { - if (auto Sym = CODLayer.findSymbol(Name, true)) - return RuntimeDyld::SymbolInfo(Sym.getAddress(), Sym.getFlags()); - + return RuntimeDyld::SymbolInfo(Sym.getAddress(), + Sym.getFlags()); if (auto Sym = CXXRuntimeOverrides.searchOverrides(Name)) return Sym; - if (auto Addr = RTDyldMemoryManager::getSymbolAddressInProcess(Name)) + if (auto Addr = + RTDyldMemoryManager::getSymbolAddressInProcess(Name)) return RuntimeDyld::SymbolInfo(Addr, JITSymbolFlags::Exported); return RuntimeDyld::SymbolInfo(nullptr); }, - [](const std::string &Name) { return RuntimeDyld::SymbolInfo(nullptr); } + [](const std::string &Name) { + return RuntimeDyld::SymbolInfo(nullptr); + } ); // Add the module to the JIT. @@ -116,8 +117,7 @@ public: orc::CtorDtorRunner CtorRunner(std::move(CtorNames), H); CtorRunner.runViaLayer(CODLayer); - IRStaticDestructorRunners.push_back( - orc::CtorDtorRunner(std::move(DtorNames), H)); + IRStaticDestructorRunners.emplace_back(std::move(DtorNames), H); return H; } @@ -136,7 +136,7 @@ private: std::string MangledName; { raw_string_ostream MangledNameStream(MangledName); - Mang.getNameWithPrefix(MangledNameStream, Name); + Mangler::getNameWithPrefix(MangledNameStream, Name, *TM->getDataLayout()); } return MangledName; } @@ -144,7 +144,6 @@ private: static TransformFtor createDebugDumper(); std::unique_ptr TM; - Mangler Mang; SectionMemoryManager CCMgrMemMgr; ObjLayerT ObjectLayer;