diff options
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc')
| -rw-r--r-- | llvm/lib/ExecutionEngine/Orc/Core.cpp | 26 |
1 files changed, 10 insertions, 16 deletions
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); |

