[llvm] r343427 - [ORC] Add an 'intern' method to ExecutionEngine for interning symbol names.
Lang Hames via llvm-commits
llvm-commits at lists.llvm.org
Sun Sep 30 16:18:24 PDT 2018
Author: lhames
Date: Sun Sep 30 16:18:24 2018
New Revision: 343427
URL: http://llvm.org/viewvc/llvm-project?rev=343427&view=rev
Log:
[ORC] Add an 'intern' method to ExecutionEngine for interning symbol names.
This cuts down on boilerplate by reducing 'ES.getSymbolStringPool().intern(...)'
to 'ES.intern(...)'.
Modified:
llvm/trunk/include/llvm/ExecutionEngine/Orc/Core.h
llvm/trunk/lib/ExecutionEngine/Orc/Core.cpp
llvm/trunk/lib/ExecutionEngine/Orc/IndirectionUtils.cpp
llvm/trunk/lib/ExecutionEngine/Orc/LLJIT.cpp
llvm/trunk/lib/ExecutionEngine/Orc/Layer.cpp
llvm/trunk/lib/ExecutionEngine/Orc/Legacy.cpp
llvm/trunk/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
llvm/trunk/unittests/ExecutionEngine/Orc/LazyCallThroughAndReexportsTest.cpp
llvm/trunk/unittests/ExecutionEngine/Orc/OrcTestCommon.h
llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayer2Test.cpp
Modified: llvm/trunk/include/llvm/ExecutionEngine/Orc/Core.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ExecutionEngine/Orc/Core.h?rev=343427&r1=343426&r2=343427&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ExecutionEngine/Orc/Core.h (original)
+++ llvm/trunk/include/llvm/ExecutionEngine/Orc/Core.h Sun Sep 30 16:18:24 2018
@@ -661,8 +661,11 @@ public:
/// SymbolStringPools may be shared between ExecutionSessions.
ExecutionSession(std::shared_ptr<SymbolStringPool> SSP = nullptr);
- /// Returns the SymbolStringPool for this ExecutionSession.
- SymbolStringPool &getSymbolStringPool() const { return *SSP; }
+ /// Add a symbol name to the SymbolStringPool and return a pointer to it.
+ SymbolStringPtr intern(StringRef SymName) { return SSP->intern(SymName); }
+
+ /// Returns a shared_ptr to the SymbolStringPool for this ExecutionSession.
+ std::shared_ptr<SymbolStringPool> getSymbolStringPool() const { return SSP; }
/// Run the given lambda with the session mutex locked.
template <typename Func> auto runSessionLocked(Func &&F) -> decltype(F()) {
Modified: llvm/trunk/lib/ExecutionEngine/Orc/Core.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/Orc/Core.cpp?rev=343427&r1=343426&r2=343427&view=diff
==============================================================================
--- llvm/trunk/lib/ExecutionEngine/Orc/Core.cpp (original)
+++ llvm/trunk/lib/ExecutionEngine/Orc/Core.cpp Sun Sep 30 16:18:24 2018
@@ -1873,7 +1873,7 @@ SymbolStringPtr MangleAndInterner::opera
raw_string_ostream MangledNameStream(MangledName);
Mangler::getNameWithPrefix(MangledNameStream, Name, DL);
}
- return ES.getSymbolStringPool().intern(MangledName);
+ return ES.intern(MangledName);
}
} // End namespace orc.
Modified: llvm/trunk/lib/ExecutionEngine/Orc/IndirectionUtils.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/Orc/IndirectionUtils.cpp?rev=343427&r1=343426&r2=343427&view=diff
==============================================================================
--- llvm/trunk/lib/ExecutionEngine/Orc/IndirectionUtils.cpp (original)
+++ llvm/trunk/lib/ExecutionEngine/Orc/IndirectionUtils.cpp Sun Sep 30 16:18:24 2018
@@ -60,8 +60,8 @@ void TrampolinePool::anchor() {}
Expected<JITTargetAddress>
JITCompileCallbackManager::getCompileCallback(CompileFunction Compile) {
if (auto TrampolineAddr = TP->getTrampoline()) {
- auto CallbackName = ES.getSymbolStringPool().intern(
- std::string("cc") + std::to_string(++NextCallbackId));
+ auto CallbackName =
+ ES.intern(std::string("cc") + std::to_string(++NextCallbackId));
std::lock_guard<std::mutex> Lock(CCMgrMutex);
AddrToSymbol[*TrampolineAddr] = CallbackName;
Modified: llvm/trunk/lib/ExecutionEngine/Orc/LLJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/Orc/LLJIT.cpp?rev=343427&r1=343426&r2=343427&view=diff
==============================================================================
--- llvm/trunk/lib/ExecutionEngine/Orc/LLJIT.cpp (original)
+++ llvm/trunk/lib/ExecutionEngine/Orc/LLJIT.cpp Sun Sep 30 16:18:24 2018
@@ -54,7 +54,7 @@ LLJIT::Create(JITTargetMachineBuilder JT
}
Error LLJIT::defineAbsolute(StringRef Name, JITEvaluatedSymbol Sym) {
- auto InternedName = ES->getSymbolStringPool().intern(Name);
+ auto InternedName = ES->intern(Name);
SymbolMap Symbols({{InternedName, Sym}});
return Main.define(absoluteSymbols(std::move(Symbols)));
}
@@ -78,7 +78,7 @@ Error LLJIT::addObjectFile(JITDylib &JD,
Expected<JITEvaluatedSymbol> LLJIT::lookupLinkerMangled(JITDylib &JD,
StringRef Name) {
- return llvm::orc::lookup({&JD}, ES->getSymbolStringPool().intern(Name));
+ return llvm::orc::lookup({&JD}, ES->intern(Name));
}
LLJIT::LLJIT(std::unique_ptr<ExecutionSession> ES,
Modified: llvm/trunk/lib/ExecutionEngine/Orc/Layer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/Orc/Layer.cpp?rev=343427&r1=343426&r2=343427&view=diff
==============================================================================
--- llvm/trunk/lib/ExecutionEngine/Orc/Layer.cpp (original)
+++ llvm/trunk/lib/ExecutionEngine/Orc/Layer.cpp Sun Sep 30 16:18:24 2018
@@ -170,7 +170,7 @@ Expected<SymbolFlagsMap> getObjectSymbol
auto Name = Sym.getName();
if (!Name)
return Name.takeError();
- auto InternedName = ES.getSymbolStringPool().intern(*Name);
+ auto InternedName = ES.intern(*Name);
auto SymFlags = JITSymbolFlags::fromObjectSymbol(Sym);
if (!SymFlags)
return SymFlags.takeError();
Modified: llvm/trunk/lib/ExecutionEngine/Orc/Legacy.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/Orc/Legacy.cpp?rev=343427&r1=343426&r2=343427&view=diff
==============================================================================
--- llvm/trunk/lib/ExecutionEngine/Orc/Legacy.cpp (original)
+++ llvm/trunk/lib/ExecutionEngine/Orc/Legacy.cpp Sun Sep 30 16:18:24 2018
@@ -22,7 +22,7 @@ void JITSymbolResolverAdapter::lookup(co
OnResolvedFunction OnResolved) {
SymbolNameSet InternedSymbols;
for (auto &S : Symbols)
- InternedSymbols.insert(ES.getSymbolStringPool().intern(S));
+ InternedSymbols.insert(ES.intern(S));
auto OnResolvedWithUnwrap = [OnResolved](Expected<SymbolMap> InternedResult) {
if (!InternedResult) {
@@ -52,7 +52,7 @@ Expected<JITSymbolResolverAdapter::Looku
JITSymbolResolverAdapter::getResponsibilitySet(const LookupSet &Symbols) {
SymbolNameSet InternedSymbols;
for (auto &S : Symbols)
- InternedSymbols.insert(ES.getSymbolStringPool().intern(S));
+ InternedSymbols.insert(ES.intern(S));
auto InternedResult = R.getResponsibilitySet(InternedSymbols);
LookupSet Result;
Modified: llvm/trunk/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp?rev=343427&r1=343426&r2=343427&view=diff
==============================================================================
--- llvm/trunk/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp (original)
+++ llvm/trunk/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp Sun Sep 30 16:18:24 2018
@@ -24,7 +24,7 @@ public:
// Intern the requested symbols: lookup takes interned strings.
for (auto &S : Symbols)
- InternedSymbols.insert(ES.getSymbolStringPool().intern(S));
+ InternedSymbols.insert(ES.intern(S));
// Build an OnResolve callback to unwrap the interned strings and pass them
// to the OnResolved callback.
@@ -167,8 +167,7 @@ Error RTDyldObjectLinkingLayer2::onObjLo
if (InternalSymbols.count(KV.first))
continue;
- auto InternedName =
- getExecutionSession().getSymbolStringPool().intern(KV.first);
+ auto InternedName = getExecutionSession().intern(KV.first);
auto Flags = KV.second.getFlags();
// Override object flags and claim responsibility for symbols if
Modified: llvm/trunk/unittests/ExecutionEngine/Orc/LazyCallThroughAndReexportsTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ExecutionEngine/Orc/LazyCallThroughAndReexportsTest.cpp?rev=343427&r1=343426&r2=343427&view=diff
==============================================================================
--- llvm/trunk/unittests/ExecutionEngine/Orc/LazyCallThroughAndReexportsTest.cpp (original)
+++ llvm/trunk/unittests/ExecutionEngine/Orc/LazyCallThroughAndReexportsTest.cpp Sun Sep 30 16:18:24 2018
@@ -33,7 +33,7 @@ TEST_F(LazyReexportsTest, BasicLocalCall
return;
}
- auto DummyTarget = ES.getSymbolStringPool().intern("DummyTarget");
+ auto DummyTarget = ES.intern("DummyTarget");
bool DummyTargetMaterialized = false;
Modified: llvm/trunk/unittests/ExecutionEngine/Orc/OrcTestCommon.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ExecutionEngine/Orc/OrcTestCommon.h?rev=343427&r1=343426&r2=343427&view=diff
==============================================================================
--- llvm/trunk/unittests/ExecutionEngine/Orc/OrcTestCommon.h (original)
+++ llvm/trunk/unittests/ExecutionEngine/Orc/OrcTestCommon.h Sun Sep 30 16:18:24 2018
@@ -50,10 +50,10 @@ protected:
std::shared_ptr<SymbolStringPool> SSP = std::make_shared<SymbolStringPool>();
ExecutionSession ES{SSP};
JITDylib &JD = ES.createJITDylib("JD");
- SymbolStringPtr Foo = ES.getSymbolStringPool().intern("foo");
- SymbolStringPtr Bar = ES.getSymbolStringPool().intern("bar");
- SymbolStringPtr Baz = ES.getSymbolStringPool().intern("baz");
- SymbolStringPtr Qux = ES.getSymbolStringPool().intern("qux");
+ SymbolStringPtr Foo = ES.intern("foo");
+ SymbolStringPtr Bar = ES.intern("bar");
+ SymbolStringPtr Baz = ES.intern("baz");
+ SymbolStringPtr Qux = ES.intern("qux");
static const JITTargetAddress FooAddr = 1U;
static const JITTargetAddress BarAddr = 2U;
static const JITTargetAddress BazAddr = 3U;
Modified: llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayer2Test.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayer2Test.cpp?rev=343427&r1=343426&r2=343427&view=diff
==============================================================================
--- llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayer2Test.cpp (original)
+++ llvm/trunk/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayer2Test.cpp Sun Sep 30 16:18:24 2018
@@ -52,7 +52,7 @@ static bool testSetProcessAllSections(st
ExecutionSession ES;
auto &JD = ES.createJITDylib("main");
- auto Foo = ES.getSymbolStringPool().intern("foo");
+ auto Foo = ES.intern("foo");
RTDyldObjectLinkingLayer2 ObjLayer(ES, [&DebugSectionSeen](VModuleKey) {
return llvm::make_unique<MemoryManagerWrapper>(DebugSectionSeen);
@@ -150,7 +150,7 @@ TEST(RTDyldObjectLinkingLayer2Test, Test
// Create a simple stack and set the override flags option.
ExecutionSession ES;
auto &JD = ES.createJITDylib("main");
- auto Foo = ES.getSymbolStringPool().intern("foo");
+ auto Foo = ES.intern("foo");
RTDyldObjectLinkingLayer2 ObjLayer(
ES, [](VModuleKey) { return llvm::make_unique<SectionMemoryManager>(); });
IRCompileLayer2 CompileLayer(ES, ObjLayer, FunkySimpleCompiler(*TM));
@@ -212,7 +212,7 @@ TEST(RTDyldObjectLinkingLayer2Test, Test
// Create a simple stack and set the override flags option.
ExecutionSession ES;
auto &JD = ES.createJITDylib("main");
- auto Foo = ES.getSymbolStringPool().intern("foo");
+ auto Foo = ES.intern("foo");
RTDyldObjectLinkingLayer2 ObjLayer(
ES, [](VModuleKey) { return llvm::make_unique<SectionMemoryManager>(); });
IRCompileLayer2 CompileLayer(ES, ObjLayer, FunkySimpleCompiler(*TM));
More information about the llvm-commits
mailing list