[llvm-commits] [poolalloc] r58521 - /poolalloc/trunk/lib/DSA/TopDownClosure.cpp

Andrew Lenharth alenhar2 at cs.uiuc.edu
Fri Oct 31 11:15:08 PDT 2008


Author: alenhar2
Date: Fri Oct 31 13:15:08 2008
New Revision: 58521

URL: http://llvm.org/viewvc/llvm-project?rev=58521&view=rev
Log:
global ecs may be formed at the end of inlining due to global-arg binding which were not being handled

Modified:
    poolalloc/trunk/lib/DSA/TopDownClosure.cpp

Modified: poolalloc/trunk/lib/DSA/TopDownClosure.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/DSA/TopDownClosure.cpp?rev=58521&r1=58520&r2=58521&view=diff

==============================================================================
--- poolalloc/trunk/lib/DSA/TopDownClosure.cpp (original)
+++ poolalloc/trunk/lib/DSA/TopDownClosure.cpp Fri Oct 31 13:15:08 2008
@@ -136,6 +136,7 @@
     IndCallMap.erase(IndCallMap.begin());
   }
 
+  formGlobalECs();
 
   ArgsRemainIncomplete.clear();
   GlobalsGraph->removeTriviallyDeadNodes();
@@ -232,6 +233,17 @@
   }
 
 
+  {
+    DSGraph* GG = DSG->getGlobalsGraph();
+    ReachabilityCloner RC(GG, DSG,
+                          DSGraph::DontCloneCallNodes |
+                          DSGraph::DontCloneAuxCallNodes);
+    for (DSScalarMap::global_iterator
+           GI = DSG->getScalarMap().global_begin(),
+           E = DSG->getScalarMap().global_end(); GI != E; ++GI)
+      RC.getClonedNH(DSG->getNodeForValue(*GI));
+  }
+
   // Next, now that this graph is finalized, we need to recompute the
   // incompleteness markers for this graph and remove unreachable nodes.
   DSG->maskIncompleteMarkers();





More information about the llvm-commits mailing list