From 7c37f6d2d9d7fe0327e1de5e0dcda729a73d2a6f Mon Sep 17 00:00:00 2001 From: Owen Anderson Date: Tue, 31 Aug 2010 07:55:56 +0000 Subject: [PATCH] Don't perform an extra traversal of the function just to do cleanup. We can safely simplify instructions after each block has been processed without worrying about iterator invalidation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112594 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Transforms/Scalar/CorrelatedValuePropagation.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp b/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp index 9616b9b6ade..a62eb20a88e 100644 --- a/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp +++ b/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp @@ -102,7 +102,7 @@ bool CorrelatedValuePropagation::runOnFunction(Function &F) { bool Changed = false; - for (Function::iterator FI = F.begin(), FE = F.end(); FI != FE; ++FI) + for (Function::iterator FI = F.begin(), FE = F.end(); FI != FE; ++FI) { for (BasicBlock::iterator BI = FI->begin(), BE = FI->end(); BI != BE; ) { Instruction *II = BI++; if (SelectInst *SI = dyn_cast(II)) @@ -110,10 +110,9 @@ bool CorrelatedValuePropagation::runOnFunction(Function &F) { else if (PHINode *P = dyn_cast(II)) Changed |= processPHI(P); } - - if (Changed) - for (Function::iterator FI = F.begin(), FE = F.end(); FI != FE; ++FI) - SimplifyInstructionsInBlock(FI); + + SimplifyInstructionsInBlock(FI); + } return Changed; } -- 2.34.1