Revert r337595 "[ORC] Add new symbol lookup methods to ExecutionSessionBase in preparation for"
Breaks the build with LLVM_ENABLE_THREADS=OFF.
llvm-svn: 337608
diff --git a/llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp b/llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
index 6edf616..7cdc6b3 100644
--- a/llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
@@ -16,23 +16,30 @@
class VSOSearchOrderResolver : public JITSymbolResolver {
public:
- VSOSearchOrderResolver(MaterializationResponsibility &MR) : MR(MR) {}
+ VSOSearchOrderResolver(ExecutionSession &ES,
+ MaterializationResponsibility &MR)
+ : ES(ES), MR(MR) {}
Expected<LookupResult> lookup(const LookupSet &Symbols) {
- auto &ES = MR.getTargetVSO().getExecutionSession();
SymbolNameSet InternedSymbols;
for (auto &S : Symbols)
InternedSymbols.insert(ES.getSymbolStringPool().intern(S));
- auto RegisterDependencies = [&](const SymbolDependenceMap &Deps) {
- MR.addDependencies(Deps);
+ auto AsyncLookup = [&](std::shared_ptr<AsynchronousSymbolQuery> Q,
+ SymbolNameSet Names) {
+ SymbolNameSet Unresolved = std::move(Names);
+ MR.getTargetVSO().withSearchOrderDo([&](const VSOList &SearchOrder) {
+ for (auto *V : SearchOrder) {
+ assert(V && "VSOList entry can not be null");
+ Unresolved = V->lookup(Q, std::move(Unresolved));
+ }
+ });
+ return Unresolved;
};
- auto InternedResult =
- MR.getTargetVSO().withSearchOrderDo([&](const VSOList &VSOs) {
- return ES.lookup(VSOs, InternedSymbols, RegisterDependencies, false);
- });
+ auto InternedResult = blockingLookup(
+ ES, std::move(AsyncLookup), std::move(InternedSymbols), false, &MR);
if (!InternedResult)
return InternedResult.takeError();
@@ -45,8 +52,6 @@
}
Expected<LookupFlagsResult> lookupFlags(const LookupSet &Symbols) {
- auto &ES = MR.getTargetVSO().getExecutionSession();
-
SymbolNameSet InternedSymbols;
for (auto &S : Symbols)
@@ -70,6 +75,7 @@
}
private:
+ ExecutionSession &ES;
MaterializationResponsibility &MR;
};
@@ -100,7 +106,7 @@
auto MemoryManager = GetMemoryManager(K);
- VSOSearchOrderResolver Resolver(R);
+ VSOSearchOrderResolver Resolver(ES, R);
auto RTDyld = llvm::make_unique<RuntimeDyld>(*MemoryManager, Resolver);
RTDyld->setProcessAllSections(ProcessAllSections);