[llvm-commits] [poolalloc] r56870 - in /poolalloc/trunk/lib/DSA: BottomUpClosure.cpp DataStructure.cpp Makefile
Andrew Lenharth
alenhar2 at cs.uiuc.edu
Tue Sep 30 12:12:36 PDT 2008
Author: alenhar2
Date: Tue Sep 30 14:12:35 2008
New Revision: 56870
URL: http://llvm.org/viewvc/llvm-project?rev=56870&view=rev
Log:
TD expects all unresolved function calls to be in the GlobalsGraph
Modified:
poolalloc/trunk/lib/DSA/BottomUpClosure.cpp
poolalloc/trunk/lib/DSA/DataStructure.cpp
poolalloc/trunk/lib/DSA/Makefile
Modified: poolalloc/trunk/lib/DSA/BottomUpClosure.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/DSA/BottomUpClosure.cpp?rev=56870&r1=56869&r2=56870&view=diff
==============================================================================
--- poolalloc/trunk/lib/DSA/BottomUpClosure.cpp (original)
+++ poolalloc/trunk/lib/DSA/BottomUpClosure.cpp Tue Sep 30 14:12:35 2008
@@ -57,8 +57,10 @@
unsigned NextID = 1;
Function *MainFunc = M.getFunction("main");
- if (MainFunc)
+ if (MainFunc) {
calculateGraphs(MainFunc, Stack, NextID, ValMap);
+ CloneAuxIntoGlobal(getDSGraph(*MainFunc));
+ }
// Calculate the graphs for any functions that are unreachable from main...
for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
@@ -67,6 +69,7 @@
DOUT << "*** BU: Function unreachable from main: "
<< I->getName() << "\n";
calculateGraphs(I, Stack, NextID, ValMap); // Calculate all graphs.
+ CloneAuxIntoGlobal(getDSGraph(*I));
}
// If we computed any temporary indcallgraphs, free them now.
@@ -297,6 +300,14 @@
return MyID; // == Min
}
+void BUDataStructures::CloneAuxIntoGlobal(DSGraph& G) {
+ DSGraph& GG = *G.getGlobalsGraph();
+ ReachabilityCloner RC(GG, G, 0);
+
+ for(DSGraph::afc_iterator ii = G.afc_begin(), ee = G.afc_end();
+ ii != ee; ++ii)
+ GG.getAuxFunctionCalls().push_front(RC.cloneCallSite(*ii));
+}
// releaseMemory - If the pass pipeline is done with this pass, we can release
// our memory... here...
Modified: poolalloc/trunk/lib/DSA/DataStructure.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/DSA/DataStructure.cpp?rev=56870&r1=56869&r2=56870&view=diff
==============================================================================
--- poolalloc/trunk/lib/DSA/DataStructure.cpp (original)
+++ poolalloc/trunk/lib/DSA/DataStructure.cpp Tue Sep 30 14:12:35 2008
@@ -1368,6 +1368,22 @@
DestCS.addPtrArg(getClonedNH(SrcCS.getPtrArg(a)));
}
+DSCallSite ReachabilityCloner::cloneCallSite(const DSCallSite& SrcCS) {
+ std::vector<DSNodeHandle> Args;
+ for(unsigned x = 0; x < SrcCS.getNumPtrArgs(); ++x)
+ Args.push_back(getClonedNH(SrcCS.getPtrArg(x)));
+ if (SrcCS.isDirectCall())
+ return DSCallSite(SrcCS.getCallSite(),
+ getClonedNH(SrcCS.getRetVal()),
+ SrcCS.getCalleeFunc(),
+ Args);
+ else
+ return DSCallSite(SrcCS.getCallSite(),
+ getClonedNH(SrcCS.getRetVal()),
+ getClonedNH(SrcCS.getCalleeNode()).getNode(),
+ Args);
+}
+
//===----------------------------------------------------------------------===//
// DSCallSite Implementation
//===----------------------------------------------------------------------===//
Modified: poolalloc/trunk/lib/DSA/Makefile
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/DSA/Makefile?rev=56870&r1=56869&r2=56870&view=diff
==============================================================================
--- poolalloc/trunk/lib/DSA/Makefile (original)
+++ poolalloc/trunk/lib/DSA/Makefile Tue Sep 30 14:12:35 2008
@@ -12,7 +12,7 @@
SHARED_LIBRARY=1
LIBRARYNAME = LLVMDataStructure
-CFlags += -fPIC
+CFlags += -fPIC -Wno-deprecated
include $(LEVEL)/Makefile.common
More information about the llvm-commits
mailing list