]> granicus.if.org Git - llvm/commitdiff
[LFTR] Stylistic cleanup as suggested in last review comment of D62939 [NFC]
authorPhilip Reames <listmail@philipreames.com>
Wed, 19 Jun 2019 20:45:57 +0000 (20:45 +0000)
committerPhilip Reames <listmail@philipreames.com>
Wed, 19 Jun 2019 20:45:57 +0000 (20:45 +0000)
(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

lib/Transforms/Scalar/IndVarSimplify.cpp

index 14f80fa316f76a3eb56466146e6671c1eef94f23..969ad50e96d134f177b83032569ba339fbabaff1 100644 (file)
@@ -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<Instruction>(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<Instruction>(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<BinaryOperator>(IncVar)) {
     const SCEVAddRecExpr *AR = cast<SCEVAddRecExpr>(SE->getSCEV(IncVar));
     if (BO->hasNoUnsignedWrap())