diff options
| author | Gabor Greif <ggreif@gmail.com> | 2010-07-09 15:40:10 +0000 |
|---|---|---|
| committer | Gabor Greif <ggreif@gmail.com> | 2010-07-09 15:40:10 +0000 |
| commit | 2ab35817577a5941195dfc7a8ef61bf9067a1812 (patch) | |
| tree | 36f69a20b59e195a58799d87c1f387b52b20184d /lib/Analysis/ScalarEvolutionExpander.cpp | |
| parent | 0bab45feb67b23630f75bfed8a1b34e4ad8b09f2 (diff) | |
| download | external_llvm-2ab35817577a5941195dfc7a8ef61bf9067a1812.zip external_llvm-2ab35817577a5941195dfc7a8ef61bf9067a1812.tar.gz external_llvm-2ab35817577a5941195dfc7a8ef61bf9067a1812.tar.bz2 | |
cache result of operator*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107976 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/ScalarEvolutionExpander.cpp')
| -rw-r--r-- | lib/Analysis/ScalarEvolutionExpander.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/Analysis/ScalarEvolutionExpander.cpp b/lib/Analysis/ScalarEvolutionExpander.cpp index 99b4a40..67b3f50 100644 --- a/lib/Analysis/ScalarEvolutionExpander.cpp +++ b/lib/Analysis/ScalarEvolutionExpander.cpp @@ -1118,17 +1118,19 @@ Value *SCEVExpander::visitAddRecExpr(const SCEVAddRecExpr *S) { Constant *One = ConstantInt::get(Ty, 1); for (pred_iterator HPI = pred_begin(Header), HPE = pred_end(Header); - HPI != HPE; ++HPI) - if (L->contains(*HPI)) { + HPI != HPE; ++HPI) { + BasicBlock *HP = *HPI; + if (L->contains(HP)) { // Insert a unit add instruction right before the terminator // corresponding to the back-edge. Instruction *Add = BinaryOperator::CreateAdd(PN, One, "indvar.next", - (*HPI)->getTerminator()); + HP->getTerminator()); rememberInstruction(Add); - PN->addIncoming(Add, *HPI); + PN->addIncoming(Add, HP); } else { - PN->addIncoming(Constant::getNullValue(Ty), *HPI); + PN->addIncoming(Constant::getNullValue(Ty), HP); } + } } // {0,+,F} --> {0,+,1} * F |
