diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/include/llvm/ExecutionEngine/Orc/Core.h | 12 | ||||
| -rw-r--r-- | llvm/lib/ExecutionEngine/Orc/Core.cpp | 26 | ||||
| -rw-r--r-- | llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp | 4 |
3 files changed, 14 insertions, 28 deletions
diff --git a/llvm/include/llvm/ExecutionEngine/Orc/Core.h b/llvm/include/llvm/ExecutionEngine/Orc/Core.h index f84b43a82a6..d06e5bf9430 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/Core.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/Core.h @@ -614,19 +614,11 @@ private: /// VSOs will be searched in order and no VSO pointer may be null. /// All symbols must be found within the given VSOs or an error /// will be returned. -/// -/// If this lookup is being performed on behalf of a -/// MaterializationResponsibility then it must be passed in as R -/// (in order to record the symbol dependencies). -/// If this lookup is not being performed on behalf of a -/// MaterializationResponsibility then R should be left null. -Expected<SymbolMap> lookup(const std::vector<VSO *> &VSOs, SymbolNameSet Names, - MaterializationResponsibility *R); +Expected<SymbolMap> lookup(const std::vector<VSO *> &VSOs, SymbolNameSet Names); /// Look up a symbol by searching a list of VSOs. Expected<JITEvaluatedSymbol> lookup(const std::vector<VSO *> VSOs, - SymbolStringPtr Name, - MaterializationResponsibility *R); + SymbolStringPtr Name); } // End namespace orc } // End namespace llvm diff --git a/llvm/lib/ExecutionEngine/Orc/Core.cpp b/llvm/lib/ExecutionEngine/Orc/Core.cpp index 9aeeccb0bc9..ded8bddb468 100644 --- a/llvm/lib/ExecutionEngine/Orc/Core.cpp +++ b/llvm/lib/ExecutionEngine/Orc/Core.cpp @@ -843,8 +843,7 @@ VSO &ExecutionSession::createVSO(std::string Name) { }); } -Expected<SymbolMap> lookup(const std::vector<VSO *> &VSOs, SymbolNameSet Names, - MaterializationResponsibility *R) { +Expected<SymbolMap> lookup(const std::vector<VSO *> &VSOs, SymbolNameSet Names) { #if LLVM_ENABLE_THREADS // In the threaded case we use promises to return the results. std::promise<SymbolMap> PromisedResult; @@ -854,11 +853,9 @@ Expected<SymbolMap> lookup(const std::vector<VSO *> &VSOs, SymbolNameSet Names, Error ReadyError = Error::success(); auto OnResolve = [&](Expected<AsynchronousSymbolQuery::ResolutionResult> Result) { - if (Result) { - if (R) - R->addDependencies(Result->Dependencies); + if (Result) PromisedResult.set_value(std::move(Result->Symbols)); - } else { + else { { ErrorAsOutParameter _(&ResolutionError); std::lock_guard<std::mutex> Lock(ErrMutex); @@ -880,14 +877,12 @@ Expected<SymbolMap> lookup(const std::vector<VSO *> &VSOs, SymbolNameSet Names, Error ResolutionError = Error::success(); Error ReadyError = Error::success(); - auto OnResolve = [&](Expected<AsynchronousSymbolQuery::ResolutionResult> RR) { + auto OnResolve = [&](Expected<AsynchronousSymbolQuery::ResolutionResult> R) { ErrorAsOutParameter _(&ResolutionError); - if (RR) { - if (R) - R->addDependencies(RR->Dependencies); - Result = std::move(RR->Symbols); - } else - ResolutionError = RR.takeError(); + if (R) + Result = std::move(R->Symbols); + else + ResolutionError = R.takeError(); }; auto OnReady = [&](Error Err) { ErrorAsOutParameter _(&ReadyError); @@ -949,10 +944,9 @@ Expected<SymbolMap> lookup(const std::vector<VSO *> &VSOs, SymbolNameSet Names, /// Look up a symbol by searching a list of VSOs. Expected<JITEvaluatedSymbol> lookup(const std::vector<VSO *> VSOs, - SymbolStringPtr Name, - MaterializationResponsibility *R) { + SymbolStringPtr Name) { SymbolNameSet Names({Name}); - if (auto ResultMap = lookup(VSOs, std::move(Names), R)) { + if (auto ResultMap = lookup(VSOs, std::move(Names))) { assert(ResultMap->size() == 1 && "Unexpected number of results"); assert(ResultMap->count(Name) && "Missing result for symbol"); return std::move(ResultMap->begin()->second); diff --git a/llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp b/llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp index 976185bba2f..1e2a7caa60f 100644 --- a/llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp +++ b/llvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp @@ -641,7 +641,7 @@ TEST(CoreAPIsTest, TestLookupWithUnthreadedMaterialization) { cantFail(V.define(MU)); - auto FooLookupResult = cantFail(lookup({&V}, Foo, nullptr)); + auto FooLookupResult = cantFail(lookup({&V}, Foo)); EXPECT_EQ(FooLookupResult.getAddress(), FooSym.getAddress()) << "lookup returned an incorrect address"; @@ -668,7 +668,7 @@ TEST(CoreAPIsTest, TestLookupWithThreadedMaterialization) { auto &V = ES.createVSO("V"); cantFail(V.define(absoluteSymbols({{Foo, FooSym}}))); - auto FooLookupResult = cantFail(lookup({&V}, Foo, nullptr)); + auto FooLookupResult = cantFail(lookup({&V}, Foo)); EXPECT_EQ(FooLookupResult.getAddress(), FooSym.getAddress()) << "lookup returned an incorrect address"; |

