From: Philip Reames Date: Wed, 19 Jun 2019 20:45:57 +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=e178dff4d32f1dff4032c644e89092b6df18d040;p=llvm [LFTR] Stylistic cleanup as suggested in last review comment of D62939 [NFC] (Resumbit of r363292 which was reverted along w/an earlier patch) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@363877 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/IndVarSimplify.cpp b/lib/Transforms/Scalar/IndVarSimplify.cpp index 14f80fa316f..969ad50e96d 100644 --- a/lib/Transforms/Scalar/IndVarSimplify.cpp +++ b/lib/Transforms/Scalar/IndVarSimplify.cpp @@ -2388,12 +2388,15 @@ bool IndVarSimplify:: linearFunctionTestReplace(Loop *L, BasicBlock *ExitingBB, const SCEV *ExitCount, PHINode *IndVar, SCEVExpander &Rewriter) { + assert(L->getLoopLatch() && "Loop no longer in simplified form?"); + assert(isLoopCounter(IndVar, L, SE)); + Instruction * const IncVar = + cast(IndVar->getIncomingValueForBlock(L->getLoopLatch())); + // Initialize CmpIndVar and IVCount to their preincremented values. Value *CmpIndVar = IndVar; const SCEV *IVCount = ExitCount; - 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. @@ -2404,14 +2407,12 @@ 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())); if (ICmpInst *LoopTest = getLoopTest(L, ExitingBB)) - SafeToPostInc = LoopTest->getOperand(0) == Inc || - LoopTest->getOperand(1) == Inc; + SafeToPostInc = LoopTest->getOperand(0) == IncVar || + LoopTest->getOperand(1) == IncVar; if (!SafeToPostInc) SafeToPostInc = - mustExecuteUBIfPoisonOnPathTo(Inc, ExitingBB->getTerminator(), DT); + mustExecuteUBIfPoisonOnPathTo(IncVar, ExitingBB->getTerminator(), DT); } if (SafeToPostInc) { // Add one to the "backedge-taken" count to get the trip count. @@ -2422,7 +2423,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; } } @@ -2438,7 +2439,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())