[llvm-commits] [llvm] r66467 - /llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp

Dan Gohman gohman at apple.com
Mon Mar 9 14:14:16 PDT 2009


Author: djg
Date: Mon Mar  9 16:14:16 2009
New Revision: 66467

URL: http://llvm.org/viewvc/llvm-project?rev=66467&view=rev
Log:
Use LoopInfo's getLoopLatch() instead of doing what it does manualy.

Modified:
    llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp

Modified: llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp?rev=66467&r1=66466&r2=66467&view=diff

==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/LoopStrengthReduce.cpp Mon Mar  9 16:14:16 2009
@@ -1599,17 +1599,12 @@
 
   BasicBlock *Header = L->getHeader();
   BasicBlock *Preheader = L->getLoopPreheader();
+  BasicBlock *LatchBlock = L->getLoopLatch();
 
   PHINode *PN = PHINode::Create(Start->getType(), "lsr.iv", Header->begin());
   PN->addIncoming(Rewriter.expandCodeFor(Start, Preheader->getTerminator()),
                   Preheader);
 
-  pred_iterator HPI = pred_begin(Header);
-  assert(HPI != pred_end(Header) && "Loop with zero preds???");
-  if (!L->contains(*HPI)) ++HPI;
-  assert(HPI != pred_end(Header) && L->contains(*HPI) &&
-         "No backedge in loop?");
-
   // If the stride is negative, insert a sub instead of an add for the
   // increment.
   bool isNegative = isNonConstantNegative(Step);
@@ -1622,17 +1617,14 @@
   Value *StepV = Rewriter.expandCodeFor(IncAmount, Preheader->getTerminator());
   if (isNegative) {
     IncV = BinaryOperator::CreateSub(PN, StepV, "lsr.iv.next",
-                                     (*HPI)->getTerminator());
+                                     LatchBlock->getTerminator());
   } else {
     IncV = BinaryOperator::CreateAdd(PN, StepV, "lsr.iv.next",
-                                     (*HPI)->getTerminator());
+                                     LatchBlock->getTerminator());
   }
   if (!isa<ConstantInt>(StepV)) ++NumVariable;
 
-  pred_iterator PI = pred_begin(Header);
-  if (*PI == L->getLoopPreheader())
-    ++PI;
-  PN->addIncoming(IncV, *PI);
+  PN->addIncoming(IncV, LatchBlock);
 
   ++NumInserted;
   return PN;





More information about the llvm-commits mailing list