[llvm] r332897 - [ORC] Remove the optional MaterializationResponsibility argument from lookup.
Lang Hames via llvm-commits
llvm-commits at lists.llvm.org
Mon May 21 14:11:21 PDT 2018
Author: lhames
Date: Mon May 21 14:11:21 2018
New Revision: 332897
URL: http://llvm.org/viewvc/llvm-project?rev=332897&view=rev
Log:
[ORC] Remove the optional MaterializationResponsibility argument from lookup.
The lookup function provides blocking symbol resolution for JIT clients (not
layers themselves) so it does not need to track symbol dependencies via a
MaterializationResponsibility.
Modified:
llvm/trunk/include/llvm/ExecutionEngine/Orc/Core.h
llvm/trunk/lib/ExecutionEngine/Orc/Core.cpp
llvm/trunk/unittests/ExecutionEngine/Orc/CoreAPIsTest.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=332897&r1=332896&r2=332897&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ExecutionEngine/Orc/Core.h (original)
+++ llvm/trunk/include/llvm/ExecutionEngine/Orc/Core.h Mon May 21 14:11:21 2018
@@ -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
Modified: llvm/trunk/lib/ExecutionEngine/Orc/Core.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/Orc/Core.cpp?rev=332897&r1=332896&r2=332897&view=diff
==============================================================================
--- llvm/trunk/lib/ExecutionEngine/Orc/Core.cpp (original)
+++ llvm/trunk/lib/ExecutionEngine/Orc/Core.cpp Mon May 21 14:11:21 2018
@@ -843,8 +843,7 @@ VSO &ExecutionSession::createVSO(std::st
});
}
-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::ve
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::ve
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::ve
/// 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);
Modified: llvm/trunk/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp?rev=332897&r1=332896&r2=332897&view=diff
==============================================================================
--- llvm/trunk/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp (original)
+++ llvm/trunk/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp Mon May 21 14:11:21 2018
@@ -641,7 +641,7 @@ TEST(CoreAPIsTest, TestLookupWithUnthrea
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, TestLookupWithThreade
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";
More information about the llvm-commits
mailing list