aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/Transforms/Scalar/LICM.cpp7
1 files changed, 1 insertions, 6 deletions
diff --git a/lib/Transforms/Scalar/LICM.cpp b/lib/Transforms/Scalar/LICM.cpp
index cab43bd9fe..ab64ece96b 100644
--- a/lib/Transforms/Scalar/LICM.cpp
+++ b/lib/Transforms/Scalar/LICM.cpp
@@ -437,10 +437,8 @@ void LICM::sink(Instruction &I) {
BasicBlock *ExitBlock = ExitBlocks[i];
if (isExitBlockDominatedByBlockInLoop(ExitBlock, InstOrigBB)) {
- std::set<BasicBlock*>::iterator SI =
- InsertedBlocks.lower_bound(ExitBlock);
// If we haven't already processed this exit block, do so now.
- if (SI == InsertedBlocks.end() || *SI != ExitBlock) {
+ if (InsertedBlocks.insert(ExitBlock).second) {
// Insert the code after the last PHI node...
BasicBlock::iterator InsertPt = ExitBlock->begin();
while (isa<PHINode>(InsertPt)) ++InsertPt;
@@ -461,9 +459,6 @@ void LICM::sink(Instruction &I) {
// Now that we have inserted the instruction, store it into the alloca
new StoreInst(New, AI, InsertPt);
-
- // Remember we processed this block
- InsertedBlocks.insert(SI, ExitBlock);
}
}
}