[llvm-commits] CVS: llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp

Devang Patel dpatel at apple.com
Mon Mar 26 16:19:46 PDT 2007



Changes in directory llvm/lib/Transforms/Utils:

PromoteMemoryToRegister.cpp updated: 1.95 -> 1.96
---
Log message:

Reduce malloc/free traffic.


---
Diffs of the changes:  (+8 -12)

 PromoteMemoryToRegister.cpp |   20 ++++++++------------
 1 files changed, 8 insertions(+), 12 deletions(-)


Index: llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp
diff -u llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp:1.95 llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp:1.96
--- llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp:1.95	Fri Mar  9 17:41:03 2007
+++ llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp	Mon Mar 26 18:19:29 2007
@@ -77,7 +77,7 @@
   class VISIBILITY_HIDDEN RenamePassData {
   public:
     RenamePassData(BasicBlock *B, BasicBlock *P,
-                   std::vector<Value *> V) : BB(B), Pred(P), Values(V) {}
+                   const std::vector<Value *> &V) : BB(B), Pred(P), Values(V) {}
     BasicBlock *BB;
     BasicBlock *Pred;
     std::vector<Value *> Values;
@@ -123,7 +123,7 @@
     DenseMap<BasicBlock*, unsigned> BBNumbers;
 
     /// RenamePassWorkList - Worklist used by RenamePass()
-    std::vector<RenamePassData *> RenamePassWorkList;
+    std::vector<RenamePassData> RenamePassWorkList;
 
   public:
     PromoteMem2Reg(const std::vector<AllocaInst*> &A,
@@ -407,13 +407,12 @@
   // and inserting the phi nodes we marked as necessary
   //
   RenamePassWorkList.clear();
-  RenamePassData *RPD = new RenamePassData(F.begin(), 0, Values);
-  RenamePassWorkList.push_back(RPD);
+  RenamePassWorkList.push_back(RenamePassData(F.begin(), 0, Values));
   while(!RenamePassWorkList.empty()) {
-    RenamePassData *RPD = RenamePassWorkList.back(); RenamePassWorkList.pop_back();
+    RenamePassData RPD = RenamePassWorkList.back(); 
+    RenamePassWorkList.pop_back();
     // RenamePass may add new worklist entries.
-    RenamePass(RPD->BB, RPD->Pred, RPD->Values);
-    delete RPD;
+    RenamePass(RPD.BB, RPD.Pred, RPD.Values);
   }
   
   // The renamer uses the Visited set to avoid infinite loops.  Clear it now.
@@ -794,11 +793,8 @@
 
   // Recurse to our successors.
   TerminatorInst *TI = BB->getTerminator();
-  for (unsigned i = 0; i != TI->getNumSuccessors(); i++) {
-    RenamePassData *RPD = new RenamePassData(TI->getSuccessor(i), BB,
-                                             IncomingVals);
-    RenamePassWorkList.push_back(RPD);
-  }
+  for (unsigned i = 0; i != TI->getNumSuccessors(); i++)
+    RenamePassWorkList.push_back(RenamePassData(TI->getSuccessor(i), BB, IncomingVals));
 }
 
 /// PromoteMemToReg - Promote the specified list of alloca instructions into






More information about the llvm-commits mailing list