summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
diff options
context:
space:
mode:
authorDan Gohman <gohman@apple.com>2009-03-09 21:14:16 +0000
committerDan Gohman <gohman@apple.com>2009-03-09 21:14:16 +0000
commit34e52ddb7d05c832f6646102bddd778755c057e6 (patch)
treef3976bd8b6c288ab94315603b783ee988daf2698 /llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
parent9527bbfc082b2a85e7ab012f5b153009701feb39 (diff)
downloadbcm5719-llvm-34e52ddb7d05c832f6646102bddd778755c057e6.tar.gz
bcm5719-llvm-34e52ddb7d05c832f6646102bddd778755c057e6.zip
Use LoopInfo's getLoopLatch() instead of doing what it does manualy.
llvm-svn: 66467
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp16
1 files changed, 4 insertions, 12 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
index b64c689df59..f3312151c48 100644
--- a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
@@ -1599,17 +1599,12 @@ static PHINode *InsertAffinePhi(SCEVHandle Start, SCEVHandle Step,
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 @@ static PHINode *InsertAffinePhi(SCEVHandle Start, SCEVHandle Step,
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;
OpenPOWER on IntegriCloud