diff options
-rw-r--r-- | lib/Transforms/Vectorize/SLPVectorizer.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/Transforms/Vectorize/SLPVectorizer.cpp b/lib/Transforms/Vectorize/SLPVectorizer.cpp index 6ffd34b..35df668 100644 --- a/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -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(); |