mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-06 20:32:19 +00:00
Fix PR1101 and Analysis/ScalarEvolution/trip-count.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33193 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d8523aa5de
commit
192e403744
@ -1506,10 +1506,12 @@ SCEVHandle ScalarEvolutionsImpl::ComputeIterationCount(const Loop *L) {
|
||||
//
|
||||
// Currently we check for this by checking to see if the Exit branch goes to
|
||||
// the loop header. If so, we know it will always execute the same number of
|
||||
// times as the loop. More extensive analysis could be done to handle more
|
||||
// cases here.
|
||||
// times as the loop. We also handle the case where the exit block *is* the
|
||||
// loop header. This is common for un-rotated loops. More extensive analysis
|
||||
// could be done to handle more cases here.
|
||||
if (ExitBr->getSuccessor(0) != L->getHeader() &&
|
||||
ExitBr->getSuccessor(1) != L->getHeader())
|
||||
ExitBr->getSuccessor(1) != L->getHeader() &&
|
||||
ExitBr->getParent() != L->getHeader())
|
||||
return UnknownValue;
|
||||
|
||||
ICmpInst *ExitCond = dyn_cast<ICmpInst>(ExitBr->getCondition());
|
||||
|
Loading…
Reference in New Issue
Block a user