[llvm] r333683 - [ORC] Rename IRMaterializationUnit's Discardable member to SymbolToDefinition,

Lang Hames via llvm-commits llvm-commits at lists.llvm.org
Thu May 31 12:29:02 PDT 2018


Author: lhames
Date: Thu May 31 12:29:01 2018
New Revision: 333683

URL: http://llvm.org/viewvc/llvm-project?rev=333683&view=rev
Log:
[ORC] Rename IRMaterializationUnit's Discardable member to SymbolToDefinition,
and make it protected rather than private.

The new name reflects the actual information in the map, and this information
can be useful to derived classes (for example, to quickly look up the IR
definition of a requested symbol).

Modified:
    llvm/trunk/include/llvm/ExecutionEngine/Orc/Layer.h
    llvm/trunk/lib/ExecutionEngine/Orc/Layer.cpp

Modified: llvm/trunk/include/llvm/ExecutionEngine/Orc/Layer.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ExecutionEngine/Orc/Layer.h?rev=333683&r1=333682&r2=333683&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ExecutionEngine/Orc/Layer.h (original)
+++ llvm/trunk/include/llvm/ExecutionEngine/Orc/Layer.h Thu May 31 12:29:01 2018
@@ -63,11 +63,10 @@ public:
 
 protected:
   std::unique_ptr<Module> M;
+  std::map<SymbolStringPtr, GlobalValue *> SymbolToDefinition;
 
 private:
   void discard(const VSO &V, SymbolStringPtr Name) override;
-
-  std::map<SymbolStringPtr, GlobalValue *> Discardable;
 };
 
 /// MaterializationUnit that materializes modules by calling the 'emit' method

Modified: llvm/trunk/lib/ExecutionEngine/Orc/Layer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/ExecutionEngine/Orc/Layer.cpp?rev=333683&r1=333682&r2=333683&view=diff
==============================================================================
--- llvm/trunk/lib/ExecutionEngine/Orc/Layer.cpp (original)
+++ llvm/trunk/lib/ExecutionEngine/Orc/Layer.cpp Thu May 31 12:29:01 2018
@@ -46,17 +46,19 @@ IRMaterializationUnit::IRMaterialization
         !G.hasAvailableExternallyLinkage()) {
       auto MangledName = Mangle(G.getName());
       SymbolFlags[MangledName] = JITSymbolFlags::fromGlobalValue(G);
-      Discardable[MangledName] = &G;
+      SymbolToDefinition[MangledName] = &G;
     }
   }
 }
 
 void IRMaterializationUnit::discard(const VSO &V, SymbolStringPtr Name) {
-  auto I = Discardable.find(Name);
-  assert(I != Discardable.end() &&
+  auto I = SymbolToDefinition.find(Name);
+  assert(I != SymbolToDefinition.end() &&
          "Symbol not provided by this MU, or previously discarded");
+  assert(!I->second->isDeclaration() &&
+         "Discard should only apply to definitions");
   I->second->setLinkage(GlobalValue::AvailableExternallyLinkage);
-  Discardable.erase(I);
+  SymbolToDefinition.erase(I);
 }
 
 BasicIRLayerMaterializationUnit::BasicIRLayerMaterializationUnit(




More information about the llvm-commits mailing list