[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