Use std::vector<DFCalculateWorkObject> instead of
authorDevang Patel <dpatel@apple.com>
Mon, 26 Mar 2007 23:17:19 +0000 (23:17 +0000)
committerDevang Patel <dpatel@apple.com>
Mon, 26 Mar 2007 23:17:19 +0000 (23:17 +0000)
std::vector<DFCalculateWorkObject *> to reduce malloc/free traffic.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35368 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/Dominators.cpp

index fab353958b33e3a111e7e8cf8b740d1e28406f4f..a0e818fc313d8c2a73c7de87d2e338b5721bdd04 100644 (file)
@@ -455,13 +455,12 @@ DominanceFrontier::calculate(const DominatorTree &DT,
   BasicBlock *BB = Node->getBlock();
   DomSetType *Result = NULL;
 
-  std::vector<DFCalculateWorkObject *> workList;
+  std::vector<DFCalculateWorkObject> workList;
   std::set<BasicBlock *> visited;
 
-  DFCalculateWorkObject *W = new DFCalculateWorkObject(BB, NULL, Node, NULL);
-  workList.push_back(W);
+  workList.push_back(DFCalculateWorkObject(BB, NULL, Node, NULL));
   do {
-    DFCalculateWorkObject *currentW = workList.back();
+    DFCalculateWorkObject *currentW = &workList.back();
     assert (currentW && "Missing work object.");
 
     BasicBlock *currentBB = currentW->currentBB;
@@ -494,9 +493,7 @@ DominanceFrontier::calculate(const DominatorTree &DT,
       DominatorTree::Node *IDominee = *NI;
       BasicBlock *childBB = IDominee->getBlock();
       if (visited.count(childBB) == 0) {
-        DFCalculateWorkObject *newW = 
-          new DFCalculateWorkObject(childBB, currentBB, IDominee, currentNode);
-        workList.push_back(newW);
+        workList.push_back(DFCalculateWorkObject(childBB, currentBB, IDominee, currentNode));
         visitChild = true;
       }
     }