[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