[llvm-commits] [poolalloc] r122383 - in /poolalloc/trunk/lib/DSA: DSGraph.cpp Local.cpp

Arushi Aggarwal aggarwa4 at illinois.edu
Tue Dec 21 16:58:07 PST 2010


Author: aggarwa4
Date: Tue Dec 21 18:58:07 2010
New Revision: 122383

URL: http://llvm.org/viewvc/llvm-project?rev=122383&view=rev
Log:
Only merge call sites if arguments also match.
Now we can merge call sites in local.

Modified:
    poolalloc/trunk/lib/DSA/DSGraph.cpp
    poolalloc/trunk/lib/DSA/Local.cpp

Modified: poolalloc/trunk/lib/DSA/DSGraph.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/DSA/DSGraph.cpp?rev=122383&r1=122382&r2=122383&view=diff
==============================================================================
--- poolalloc/trunk/lib/DSA/DSGraph.cpp (original)
+++ poolalloc/trunk/lib/DSA/DSGraph.cpp Tue Dec 21 18:58:07 2010
@@ -852,16 +852,19 @@
       // if the callee contains an external function, it will never be
       // resolvable, just merge the call sites.
       if (!LastCalleeNode.isNull() && LastCalleeNode.getNode() == Callee) {
-      //  LastCalleeContainsExternalFunction = Callee->isExternFuncNode();
-
+        // check that arguments also match
         std::list<DSCallSite>::iterator PrevIt = OldIt;
         --PrevIt;
-        PrevIt->mergeWith(CS);
+        if(CS == *PrevIt) {
+        //  LastCalleeContainsExternalFunction = Callee->isExternFuncNode();
 
-        // No need to keep this call anymore.
-        Calls.erase(OldIt);
-        ++NumDeleted;
-        continue;
+          PrevIt->mergeWith(CS);
+
+          // No need to keep this call anymore.
+          Calls.erase(OldIt);
+          ++NumDeleted;
+          continue;
+        }
       } else {
         LastCalleeNode = Callee;
       }

Modified: poolalloc/trunk/lib/DSA/Local.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/DSA/Local.cpp?rev=122383&r1=122382&r2=122383&view=diff
==============================================================================
--- poolalloc/trunk/lib/DSA/Local.cpp (original)
+++ poolalloc/trunk/lib/DSA/Local.cpp Tue Dec 21 18:58:07 2010
@@ -189,7 +189,7 @@
       g.computeIntPtrFlags();
 
       // Remove any nodes made dead due to merging...
-      //g.removeDeadNodes(DSGraph::KeepUnreachableGlobals);
+      g.removeDeadNodes(DSGraph::KeepUnreachableGlobals);
     }
 
     // GraphBuilder ctor for working on the globals graph





More information about the llvm-commits mailing list