No need to use a Set when a vector would do.
authorNadav Rotem <nrotem@apple.com>
Thu, 27 Jun 2013 00:14:13 +0000 (00:14 +0000)
committerNadav Rotem <nrotem@apple.com>
Thu, 27 Jun 2013 00:14:13 +0000 (00:14 +0000)
llvm-svn: 185047

llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp

index 6ffd34b..35df668 100644 (file)
@@ -1300,7 +1300,7 @@ void FuncSLP::optimizeGatherSequence() {
   // instructions. TODO: We can further optimize this scan if we split the
   // instructions into different buckets based on the insert lane.
   SmallPtrSet<Instruction*, 16> Visited;
-  SmallPtrSet<Instruction*, 16> ToRemove;
+  SmallVector<Instruction*, 16> ToRemove;
   ReversePostOrderTraversal<Function*> RPOT(F);
   for (ReversePostOrderTraversal<Function*>::rpo_iterator I = RPOT.begin(),
        E = RPOT.end(); I != E; ++I) {
@@ -1318,7 +1318,7 @@ void FuncSLP::optimizeGatherSequence() {
         if (Insert->isIdenticalTo(*v) &&
             DT->dominates((*v)->getParent(), Insert->getParent())) {
           Insert->replaceAllUsesWith(*v);
-          ToRemove.insert(Insert);
+          ToRemove.push_back(Insert);
           Insert = 0;
           break;
         }
@@ -1329,7 +1329,7 @@ void FuncSLP::optimizeGatherSequence() {
   }
 
   // Erase all of the instructions that we RAUWed.
-  for (SmallPtrSet<Instruction*, 16>::iterator v = ToRemove.begin(),
+  for (SmallVector<Instruction*, 16>::iterator v = ToRemove.begin(),
        ve = ToRemove.end(); v != ve; ++v) {
     assert((*v)->getNumUses() == 0 && "Can't remove instructions with uses");
     (*v)->eraseFromParent();