[llvm-commits] [poolalloc] r159064 - in /poolalloc/trunk: include/dsa/DSGraph.h lib/DSA/BottomUpClosure.cpp lib/DSA/DSGraph.cpp lib/DSA/DataStructure.cpp lib/DSA/Printer.cpp

Will Dietz wdietz2 at illinois.edu
Fri Jun 22 19:56:58 PDT 2012


Author: wdietz2
Date: Fri Jun 22 21:56:58 2012
New Revision: 159064

URL: http://llvm.org/viewvc/llvm-project?rev=159064&view=rev
Log:
Introduce new type(def) to represent a DSGraph's set of callsites.

No functionality change intended.

Modified:
    poolalloc/trunk/include/dsa/DSGraph.h
    poolalloc/trunk/lib/DSA/BottomUpClosure.cpp
    poolalloc/trunk/lib/DSA/DSGraph.cpp
    poolalloc/trunk/lib/DSA/DataStructure.cpp
    poolalloc/trunk/lib/DSA/Printer.cpp

Modified: poolalloc/trunk/include/dsa/DSGraph.h
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/include/dsa/DSGraph.h?rev=159064&r1=159063&r2=159064&view=diff
==============================================================================
--- poolalloc/trunk/include/dsa/DSGraph.h (original)
+++ poolalloc/trunk/include/dsa/DSGraph.h Fri Jun 22 21:56:58 2012
@@ -207,6 +207,7 @@
   // InvNodeMapTy - This data type is used to represent the inverse of a node
   // map.
   typedef std::multimap<DSNodeHandle, const DSNode*> InvNodeMapTy;
+  typedef std::list<DSCallSite> FunctionListTy;
 private:
   DSGraph *GlobalsGraph;   // Pointer to the common graph of global objects
 
@@ -238,13 +239,13 @@
   // scalar being invoked, and the rest are pointer arguments to the function.
   // This vector is built by the Local graph and is never modified after that.
   //
-  std::list<DSCallSite> FunctionCalls;
+  FunctionListTy FunctionCalls;
 
   // AuxFunctionCalls - This vector contains call sites that have been processed
   // by some mechanism.  In pratice, the BU Analysis uses this vector to hold
   // the _unresolved_ call sites, because it cannot modify FunctionCalls.
   //
-  std::list<DSCallSite> AuxFunctionCalls;
+  FunctionListTy AuxFunctionCalls;
 
   /// TD - This is the target data object for the machine this graph is
   /// constructed for.
@@ -331,19 +332,19 @@
   /// getFunctionCalls - Return the list of call sites in the original local
   /// graph...
   ///
-  const std::list<DSCallSite> &getFunctionCalls() const { return FunctionCalls;}
-  std::list<DSCallSite> &getFunctionCalls() { return FunctionCalls;}
+  const FunctionListTy &getFunctionCalls() const { return FunctionCalls;}
+  FunctionListTy &getFunctionCalls() { return FunctionCalls;}
 
   /// getAuxFunctionCalls - Get the call sites as modified by whatever passes
   /// have been run.
   ///
-  std::list<DSCallSite> &getAuxFunctionCalls() { return AuxFunctionCalls; }
-  const std::list<DSCallSite> &getAuxFunctionCalls() const {
+  FunctionListTy &getAuxFunctionCalls() { return AuxFunctionCalls; }
+  const FunctionListTy &getAuxFunctionCalls() const {
     return AuxFunctionCalls;
   }
 
   // addAuxFunctionCall - Add a call site to the AuxFunctionCallList
-  void addAuxFunctionCall(DSCallSite D) { AuxFunctionCalls.push_front(D); }
+  void addAuxFunctionCall(DSCallSite D) { AuxFunctionCalls.push_back(D); }
 
   void buildCallGraph(DSCallGraph& DCG, std::vector<const Function*> &GlobalFunctionList, bool filter) const;
   void buildCompleteCallGraph(DSCallGraph& DCG, std::vector<const Function*> &GlobalFunctionList, bool filter) const;
@@ -353,16 +354,16 @@
   void removeFunctionCalls(Function& F);
 
   // Function Call iteration
-  typedef std::list<DSCallSite>::const_iterator fc_iterator;
+  typedef FunctionListTy::const_iterator fc_iterator;
   fc_iterator fc_begin() const { return FunctionCalls.begin(); }
   fc_iterator fc_end() const { return FunctionCalls.end(); }
 
 
   // Aux Function Call iteration
-  typedef std::list<DSCallSite>::iterator afc_iterator;
+  typedef FunctionListTy::iterator afc_iterator;
   afc_iterator afc_begin() { return AuxFunctionCalls.begin(); }
   afc_iterator afc_end() { return AuxFunctionCalls.end(); }
-  typedef std::list<DSCallSite>::const_iterator afc_const_iterator;
+  typedef FunctionListTy::const_iterator afc_const_iterator;
   afc_const_iterator afc_begin() const { return AuxFunctionCalls.begin(); }
   afc_const_iterator afc_end() const { return AuxFunctionCalls.end(); }
 

Modified: poolalloc/trunk/lib/DSA/BottomUpClosure.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/DSA/BottomUpClosure.cpp?rev=159064&r1=159063&r2=159064&view=diff
==============================================================================
--- poolalloc/trunk/lib/DSA/BottomUpClosure.cpp (original)
+++ poolalloc/trunk/lib/DSA/BottomUpClosure.cpp Fri Jun 22 21:56:58 2012
@@ -610,8 +610,8 @@
 
   // 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;
-  std::list<DSCallSite> &AuxCallsList = Graph->getAuxFunctionCalls();
+  DSGraph::FunctionListTy TempFCs;
+  DSGraph::FunctionListTy &AuxCallsList = Graph->getAuxFunctionCalls();
   TempFCs.swap(AuxCallsList);
 
   while (!TempFCs.empty()) {

Modified: poolalloc/trunk/lib/DSA/DSGraph.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/DSA/DSGraph.cpp?rev=159064&r1=159063&r2=159064&view=diff
==============================================================================
--- poolalloc/trunk/lib/DSA/DSGraph.cpp (original)
+++ poolalloc/trunk/lib/DSA/DSGraph.cpp Fri Jun 22 21:56:58 2012
@@ -133,8 +133,8 @@
 void DSGraph::dump() const { print(errs()); }
 
 void DSGraph::removeFunctionCalls(Function& F) {
-  std::list<DSCallSite>::iterator Erase = FunctionCalls.end();
-  for (std::list<DSCallSite>::iterator I = FunctionCalls.begin();
+  FunctionListTy::iterator Erase = FunctionCalls.end();
+  for (FunctionListTy::iterator I = FunctionCalls.begin();
        I != Erase; ) {
     if (I->isDirectCall() && I->getCalleeFunc() == &F)
       std::swap(*I, *--Erase);
@@ -144,7 +144,7 @@
   FunctionCalls.erase(Erase, FunctionCalls.end());
 
   Erase = AuxFunctionCalls.end();
-  for (std::list<DSCallSite>::iterator I = AuxFunctionCalls.begin();
+  for (FunctionListTy::iterator I = AuxFunctionCalls.begin();
        I != Erase; ) {
     if (I->isDirectCall() && I->getCalleeFunc() == &F)
       std::swap(*I, *--Erase);
@@ -648,11 +648,11 @@
 
   // Mark stuff passed into functions calls as being incomplete.
   if (!shouldUseAuxCalls())
-    for (std::list<DSCallSite>::iterator I = FunctionCalls.begin(),
+    for (FunctionListTy::iterator I = FunctionCalls.begin(),
            E = FunctionCalls.end(); I != E; ++I)
       markIncomplete(*I);
   else
-    for (std::list<DSCallSite>::iterator I = AuxFunctionCalls.begin(),
+    for (FunctionListTy::iterator I = AuxFunctionCalls.begin(),
            E = AuxFunctionCalls.end(); I != E; ++I)
       markIncomplete(*I);
 
@@ -852,7 +852,7 @@
 // clients can query call graph, means we need callee information for all the 
 // call sites. And hence, we should not remove them without ever inlining them
 
-static void removeIdenticalCalls(std::list<DSCallSite> &Calls) {
+static void removeIdenticalCalls(DSGraph::FunctionListTy &Calls) {
   // Remove trivially identical function calls
   Calls.sort();  // Sort by callee as primary key!
 
@@ -891,7 +891,7 @@
       // resolvable, just merge the call sites.
       if (!LastCalleeNode.isNull() && LastCalleeNode.getNode() == Callee) {
         // check that arguments also match
-        std::list<DSCallSite>::iterator PrevIt = OldIt;
+        DSGraph::FunctionListTy::iterator PrevIt = OldIt;
         --PrevIt;
         if(CS == *PrevIt) {
         //  LastCalleeContainsExternalFunction = Callee->isExternFuncNode();
@@ -983,10 +983,10 @@
   Calls.sort();
 
   // Now that we are in sorted order, eliminate duplicates.
-  std::list<DSCallSite>::iterator CI = Calls.begin(), CE = Calls.end();
+  DSGraph::FunctionListTy::iterator CI = Calls.begin(), CE = Calls.end();
   if (CI != CE)
     while (1) {
-      std::list<DSCallSite>::iterator OldIt = CI++;
+      DSGraph::FunctionListTy::iterator OldIt = CI++;
       if (CI == CE) break;
 
       // If this call site is now the same as the previous one, we can delete it
@@ -1240,7 +1240,7 @@
   } while (Iterate);
 
   // Move dead aux function calls to the end of the list
-  for (std::list<DSCallSite>::iterator CI = AuxFunctionCalls.begin(),
+  for (FunctionListTy::iterator CI = AuxFunctionCalls.begin(),
          E = AuxFunctionCalls.end(); CI != E; )
     if (AuxFCallsAlive.count(&*CI))
       ++CI;
@@ -1662,8 +1662,8 @@
   //
   // Get the list of unresolved call sites.
   //
-  const std::list<DSCallSite>& Calls = getFunctionCalls();
-  for (std::list<DSCallSite>::const_iterator ii = Calls.begin(),
+  const FunctionListTy& Calls = getFunctionCalls();
+  for (FunctionListTy::const_iterator ii = Calls.begin(),
       ee = Calls.end();
       ii != ee; ++ii) {
     //
@@ -1718,11 +1718,11 @@
   //
   // Get the list of unresolved call sites.
   //
-  const std::list<DSCallSite>& Calls = getAuxFunctionCalls();
-  for (std::list<DSCallSite>::const_iterator ii = Calls.begin(),
+  const FunctionListTy& Calls = getAuxFunctionCalls();
+  for (FunctionListTy::const_iterator ii = Calls.begin(),
                                              ee = Calls.end();
        ii != ee; ++ii) {
-    
+
     if (ii->isDirectCall()) continue;
     CallSite CS = ii->getCallSite();
     if (DCG.callee_size(CS) != 0) continue;

Modified: poolalloc/trunk/lib/DSA/DataStructure.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/DSA/DataStructure.cpp?rev=159064&r1=159063&r2=159064&view=diff
==============================================================================
--- poolalloc/trunk/lib/DSA/DataStructure.cpp (original)
+++ poolalloc/trunk/lib/DSA/DataStructure.cpp Fri Jun 22 21:56:58 2012
@@ -1256,12 +1256,12 @@
     DSGraph* BaseGraph = GraphSource->getDSGraph(*F);
     if (Clone) {
       G = new DSGraph(BaseGraph, GlobalECs, *TypeSS);
-      if (resetAuxCalls) 
+      if (resetAuxCalls)
         G->getAuxFunctionCalls() = G->getFunctionCalls();
     } else {
       G = new DSGraph(GlobalECs, GraphSource->getTargetData(), *TypeSS);
       G->spliceFrom(BaseGraph);
-      if (resetAuxCalls) 
+      if (resetAuxCalls)
         G->getAuxFunctionCalls() = G->getFunctionCalls();
     }
     G->setUseAuxCalls();

Modified: poolalloc/trunk/lib/DSA/Printer.cpp
URL: http://llvm.org/viewvc/llvm-project/poolalloc/trunk/lib/DSA/Printer.cpp?rev=159064&r1=159063&r2=159064&view=diff
==============================================================================
--- poolalloc/trunk/lib/DSA/Printer.cpp (original)
+++ poolalloc/trunk/lib/DSA/Printer.cpp Fri Jun 22 21:56:58 2012
@@ -248,10 +248,10 @@
       }
 
     // Output all of the call nodes...
-    const std::list<DSCallSite> &FCs =
+    const DSGraph::FunctionListTy &FCs =
       G->shouldUseAuxCalls() ? G->getAuxFunctionCalls()
       : G->getFunctionCalls();
-    for (std::list<DSCallSite>::const_iterator I = FCs.begin(), E = FCs.end();
+    for (DSGraph::FunctionListTy::const_iterator I = FCs.begin(), E = FCs.end();
          I != E; ++I) {
       const DSCallSite &Call = *I;
       std::vector<std::string> EdgeSourceCaptions(Call.getNumPtrArgs()+2);





More information about the llvm-commits mailing list