From 79cb54b2d9b81c71667580b7e7835052796276fa Mon Sep 17 00:00:00 2001 From: Michael Zolotukhin Date: Fri, 20 Apr 2018 07:56:00 +0000 Subject: [SSAUpdaterBulk] Use SmallVector instead of SmallPtrSet for uses. llvm-svn: 330398 --- llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'llvm/lib/Transforms') diff --git a/llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp b/llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp index cd264a8c63f..5321b4374cd 100644 --- a/llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp +++ b/llvm/lib/Transforms/Utils/SSAUpdaterBulk.cpp @@ -61,7 +61,7 @@ void SSAUpdaterBulk::AddUse(unsigned Var, Use *U) { assert(Rewrites.find(Var) != Rewrites.end() && "Should add variable first!"); DEBUG(dbgs() << "SSAUpdater: Var=" << Var << ": added a use" << *U->get() << " in " << getUserBB(U)->getName() << "\n"); - Rewrites[Var].Uses.insert(U); + Rewrites[Var].Uses.push_back(U); } /// Return true if the SSAUpdater already has a value for the specified variable @@ -171,7 +171,10 @@ void SSAUpdaterBulk::RewriteAllUses(DominatorTree *DT, } // Rewrite actual uses with the inserted definitions. - for (auto U : R.Uses) { + SmallPtrSet ProcessedUses; + for (Use *U : R.Uses) { + if (!ProcessedUses.insert(U).second) + continue; Value *V = computeValueAt(getUserBB(U), R, DT); Value *OldVal = U->get(); // Notify that users of the existing value that it is being replaced. -- cgit v1.2.3