[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