[llvm-commits] [poolalloc] r56872 - in /poolalloc/trunk/lib/DSA: BottomUpClosure.cpp Makefile Printer.cpp
Andrew Lenharth
alenhar2 at cs.uiuc.edu
Tue Sep 30 13:19:58 PDT 2008
Author: alenhar2
Date: Tue Sep 30 15:19:58 2008
New Revision: 56872
URL: http://llvm.org/viewvc/llvm-project?rev=56872&view=rev
Log:
Fixup on partial inline stuff
Modified:
poolalloc/trunk/lib/DSA/BottomUpClosure.cpp
poolalloc/trunk/lib/DSA/Makefile
poolalloc/trunk/lib/DSA/Printer.cpp
Modified: poolalloc/trunk/lib/DSA/BottomUpClosure.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/DSA/BottomUpClosure.cpp?rev=56872&r1=56871&r2=56872&view=diff
==============================================================================
--- poolalloc/trunk/lib/DSA/BottomUpClosure.cpp (original)
+++ poolalloc/trunk/lib/DSA/BottomUpClosure.cpp Tue Sep 30 15:19:58 2008
@@ -72,6 +72,12 @@
CloneAuxIntoGlobal(getDSGraph(*I));
}
+ //Be sure to get the all unresolved call sites
+ for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
+ if (!I->isDeclaration() && InlinedSomewhere.find(I) == InlinedSomewhere.end())
+ CloneAuxIntoGlobal(getDSGraph(*I));
+ InlinedSomewhere.clear();
+
// If we computed any temporary indcallgraphs, free them now.
for (std::map<std::vector<Function*>,
std::pair<DSGraph*, std::vector<DSNodeHandle> > >::iterator I =
@@ -397,7 +403,8 @@
if (CalledFuncs.size() == 1) {
Function *Callee = CalledFuncs[0];
ActualCallees.insert(std::make_pair(TheCall, Callee));
-
+ if (isComplete) InlinedSomewhere.insert(Callee);
+
// Get the data structure graph for the called function.
GI = &getDSGraph(*Callee); // Graph to inline
DOUT << " Inlining graph for " << Callee->getName()
@@ -446,24 +453,26 @@
GI->getFunctionArgumentsForCall(*I, Args);
// Merge all of the other callees into this graph.
- for (++I; I != E; ++I) {
- // If the graph already contains the nodes for the function, don't
- // bother merging it in again.
- if (!GI->containsFunction(*I)) {
- GI->cloneInto(getDSGraph(**I));
- ++NumBUInlines;
- }
-
- std::vector<DSNodeHandle> NextArgs;
- GI->getFunctionArgumentsForCall(*I, NextArgs);
- unsigned i = 0, e = Args.size();
- for (; i != e; ++i) {
- if (i == NextArgs.size()) break;
- Args[i].mergeWith(NextArgs[i]);
+ for (++I; I != E; ++I)
+ if (isComplete || hasDSGraph(**I)) {
+ if (isComplete) InlinedSomewhere.insert(*I);
+ // If the graph already contains the nodes for the function, don't
+ // bother merging it in again.
+ if (!GI->containsFunction(*I)) {
+ GI->cloneInto(getDSGraph(**I));
+ ++NumBUInlines;
+ }
+
+ std::vector<DSNodeHandle> NextArgs;
+ GI->getFunctionArgumentsForCall(*I, NextArgs);
+ unsigned i = 0, e = Args.size();
+ for (; i != e; ++i) {
+ if (i == NextArgs.size()) break;
+ Args[i].mergeWith(NextArgs[i]);
+ }
+ for (e = NextArgs.size(); i != e; ++i)
+ Args.push_back(NextArgs[i]);
}
- for (e = NextArgs.size(); i != e; ++i)
- Args.push_back(NextArgs[i]);
- }
// Clean up the final graph!
GI->removeDeadNodes(DSGraph::KeepUnreachableGlobals);
Modified: poolalloc/trunk/lib/DSA/Makefile
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/DSA/Makefile?rev=56872&r1=56871&r2=56872&view=diff
==============================================================================
--- poolalloc/trunk/lib/DSA/Makefile (original)
+++ poolalloc/trunk/lib/DSA/Makefile Tue Sep 30 15:19:58 2008
@@ -12,7 +12,6 @@
SHARED_LIBRARY=1
LIBRARYNAME = LLVMDataStructure
-CFlags += -fPIC -Wno-deprecated
-
include $(LEVEL)/Makefile.common
+CFlags += -Wno-deprecated
Modified: poolalloc/trunk/lib/DSA/Printer.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/DSA/Printer.cpp?rev=56872&r1=56871&r2=56872&view=diff
==============================================================================
--- poolalloc/trunk/lib/DSA/Printer.cpp (original)
+++ poolalloc/trunk/lib/DSA/Printer.cpp Tue Sep 30 15:19:58 2008
@@ -279,7 +279,7 @@
unsigned TotalNumNodes = 0, TotalCallNodes = 0;
for (Module::const_iterator I = M->begin(), E = M->end(); I != E; ++I)
- if (C.hasGraph(*I)) {
+ if (C.hasDSGraph(*I)) {
DSGraph &Gr = C.getDSGraph((Function&)*I);
unsigned NumCalls = Gr.shouldPrintAuxCalls() ?
Gr.getAuxFunctionCalls().size() : Gr.getFunctionCalls().size();
More information about the llvm-commits
mailing list