[llvm] r363426 - Revert [LFTR] Stylistic cleanup as suggested in last review comment of D62939 [NFC]
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 14 10:22:56 PDT 2019
Author: fhahn
Date: Fri Jun 14 10:22:56 2019
New Revision: 363426
URL: http://llvm.org/viewvc/llvm-project?rev=363426&view=rev
Log:
Revert [LFTR] Stylistic cleanup as suggested in last review comment of D62939 [NFC]
Reverting because it depends on r363289, which breaks a green dragon build:
http://green.lab.llvm.org/green/job/clang-stage2-Rthinlto/18208
This reverts r363292 (git commit 42a3fc133d3544b5c0c032fe99c6e8a469a836c2)
Modified:
llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp
Modified: llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp?rev=363426&r1=363425&r2=363426&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/IndVarSimplify.cpp Fri Jun 14 10:22:56 2019
@@ -2385,15 +2385,12 @@ 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<Instruction>(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.
@@ -2404,10 +2401,12 @@ linearFunctionTestReplace(Loop *L, Basic
// 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<Instruction>(IndVar->getIncomingValueForBlock(L->getLoopLatch()));
ICmpInst *LoopTest = getLoopTest(L, ExitingBB);
- SafeToPostInc = LoopTest->getOperand(0) == IncVar ||
- LoopTest->getOperand(1) == IncVar ||
- mustExecuteUBIfPoisonOnPathTo(IncVar, ExitingBB->getTerminator(), DT);
+ SafeToPostInc = LoopTest->getOperand(0) == Inc ||
+ LoopTest->getOperand(1) == Inc ||
+ mustExecuteUBIfPoisonOnPathTo(Inc, ExitingBB->getTerminator(), DT);
}
if (SafeToPostInc) {
// Add one to the "backedge-taken" count to get the trip count.
@@ -2418,7 +2417,7 @@ linearFunctionTestReplace(Loop *L, Basic
// 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 = IncVar;
+ CmpIndVar = IndVar->getIncomingValueForBlock(ExitingBB);
}
}
@@ -2434,6 +2433,7 @@ linearFunctionTestReplace(Loop *L, Basic
// 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<BinaryOperator>(IncVar)) {
const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IncVar));
if (BO->hasNoUnsignedWrap())
More information about the llvm-commits
mailing list