[llvm-commits] [poolalloc] r57985 - /poolalloc/trunk/lib/DSA/BottomUpClosure.cpp

Andrew Lenharth alenhar2 at cs.uiuc.edu
Wed Oct 22 09:38:54 PDT 2008


Author: alenhar2
Date: Wed Oct 22 11:38:54 2008
New Revision: 57985

URL: http://llvm.org/viewvc/llvm-project?rev=57985&view=rev
Log:
fix infinate loop

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

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

==============================================================================
--- poolalloc/trunk/lib/DSA/BottomUpClosure.cpp (original)
+++ poolalloc/trunk/lib/DSA/BottomUpClosure.cpp Wed Oct 22 11:38:54 2008
@@ -574,7 +574,12 @@
 }
 
 void BUDataStructures::inlineUnresolved(DSGraph* Graph) {
-  for (DSGraph::afc_iterator aii = Graph->afc_begin(), aee = Graph->afc_end(); 
+
+  // Move our call site list into TempFCs so that inline call sites go into the
+  // new call site list and doesn't invalidate our iterators!
+  std::list<DSCallSite> TempFCs = Graph->getAuxFunctionCalls();
+
+  for (DSGraph::afc_iterator aii = TempFCs.begin(), aee = TempFCs.end(); 
        aii != aee; ++aii) {
     std::vector<const Function*> CalledFuncs;
     DSCallSite CS = *aii;
@@ -673,11 +678,12 @@
       GI = IndCallGraph.first;
       
       // Merge the unified graph into this graph now.
-      DOUT << "    Inlining multi callee graph "
-           << "[" << GI->getGraphSize() << "+"
-           << GI->getAuxFunctionCalls().size() << "] into '"
-           << Graph->getFunctionNames() << "' [" << Graph->getGraphSize() <<"+"
-           << Graph->getAuxFunctionCalls().size() << "]\n";
+      DEBUG(
+            DOUT << "    Inlining multi callee graph "
+            << "[" << GI->getGraphSize() << "+"
+            << GI->getAuxFunctionCalls().size() << "] into '"
+            << Graph->getFunctionNames() << "' [" << Graph->getGraphSize() <<"+"
+            << Graph->getAuxFunctionCalls().size() << "]\n"; );
       
       Graph->mergeInGraph(CS, IndCallGraph.second, *GI,
                           DSGraph::StripAllocaBit |





More information about the llvm-commits mailing list