From: Philip Reames Date: Thu, 13 Jun 2019 18:32:55 +0000 (+0000) Subject: [LFTR] Stylistic cleanup as suggested in last review comment of D62939 [NFC] X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=96e13eee71c7231860ad077a1dbd2d1f9bf77fe7;p=llvm [LFTR] Stylistic cleanup as suggested in last review comment of D62939 [NFC] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363292 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/IndVarSimplify.cpp b/lib/Transforms/Scalar/IndVarSimplify.cpp index e7167e00e26..962a2afee87 100644 --- a/lib/Transforms/Scalar/IndVarSimplify.cpp +++ b/lib/Transforms/Scalar/IndVarSimplify.cpp @@ -2385,12 +2385,15 @@ bool IndVarSimplify:: linearFunctionTestReplace(Loop *L, BasicBlock *ExitingBB, const SCEV *BackedgeTakenCount, PHINode *IndVar, SCEVExpander &Rewriter) { + assert(isLoopCounter(IndVar, L, SE)); + assert(L->getLoopLatch() && "Loop no longer in simplified form?"); + Instruction * const IncVar = + cast(IndVar->getIncomingValueForBlock(L->getLoopLatch())); + // Initialize CmpIndVar and IVCount to their preincremented values. Value *CmpIndVar = IndVar; const SCEV *IVCount = BackedgeTakenCount; - assert(L->getLoopLatch() && "Loop no longer in simplified form?"); - // If the exiting block is the same as the backedge block, we prefer to // compare against the post-incremented value, otherwise we must compare // against the preincremented value. @@ -2401,12 +2404,10 @@ linearFunctionTestReplace(Loop *L, BasicBlock *ExitingBB, // to add a potentially UB introducing use. We need to either a) show // the loop test we're modifying is already in post-inc form, or b) show // that adding a use must not introduce UB. - Instruction *Inc = - cast(IndVar->getIncomingValueForBlock(L->getLoopLatch())); ICmpInst *LoopTest = getLoopTest(L, ExitingBB); - SafeToPostInc = LoopTest->getOperand(0) == Inc || - LoopTest->getOperand(1) == Inc || - mustExecuteUBIfPoisonOnPathTo(Inc, ExitingBB->getTerminator(), DT); + SafeToPostInc = LoopTest->getOperand(0) == IncVar || + LoopTest->getOperand(1) == IncVar || + mustExecuteUBIfPoisonOnPathTo(IncVar, ExitingBB->getTerminator(), DT); } if (SafeToPostInc) { // Add one to the "backedge-taken" count to get the trip count. @@ -2417,7 +2418,7 @@ linearFunctionTestReplace(Loop *L, BasicBlock *ExitingBB, // The BackedgeTaken expression contains the number of times that the // backedge branches to the loop header. This is one less than the // number of times the loop executes, so use the incremented indvar. - CmpIndVar = IndVar->getIncomingValueForBlock(ExitingBB); + CmpIndVar = IncVar; } } @@ -2433,7 +2434,6 @@ linearFunctionTestReplace(Loop *L, BasicBlock *ExitingBB, // dynamically dead IV that wraps on the first loop iteration only, which is // not covered by the post-inc addrec. (If the new IV was not dynamically // dead, it could not be poison on the first iteration in the first place.) - Value *IncVar = IndVar->getIncomingValueForBlock(L->getLoopLatch()); if (auto *BO = dyn_cast(IncVar)) { const SCEVAddRecExpr *AR = cast(SE->getSCEV(IncVar)); if (BO->hasNoUnsignedWrap())