forked from OSchip/llvm-project
[LoopUnroll] Move code to exit early. NFC.
Just to save some compilation time. Differential Revision: https://reviews.llvm.org/D26784 llvm-svn: 287800
This commit is contained in:
parent
20b6d3d0d3
commit
731b04ca43
|
@ -948,7 +948,11 @@ static bool tryToUnrollLoop(Loop *L, DominatorTree &DT, LoopInfo *LI,
|
|||
Optional<bool> ProvidedUpperBound) {
|
||||
DEBUG(dbgs() << "Loop Unroll: F[" << L->getHeader()->getParent()->getName()
|
||||
<< "] Loop %" << L->getHeader()->getName() << "\n");
|
||||
if (HasUnrollDisablePragma(L)) {
|
||||
if (HasUnrollDisablePragma(L))
|
||||
return false;
|
||||
if (!L->isLoopSimplifyForm()) {
|
||||
DEBUG(
|
||||
dbgs() << " Not unrolling loop which is not in loop-simplify form.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -958,6 +962,9 @@ static bool tryToUnrollLoop(Loop *L, DominatorTree &DT, LoopInfo *LI,
|
|||
TargetTransformInfo::UnrollingPreferences UP = gatherUnrollingPreferences(
|
||||
L, TTI, ProvidedThreshold, ProvidedCount, ProvidedAllowPartial,
|
||||
ProvidedRuntime, ProvidedUpperBound);
|
||||
// Exit early if unrolling is disabled.
|
||||
if (UP.Threshold == 0 && (!UP.Partial || UP.PartialThreshold == 0))
|
||||
return false;
|
||||
unsigned LoopSize = ApproximateLoopSize(
|
||||
L, NumInlineCandidates, NotDuplicatable, Convergent, TTI, &AC, UP.BEInsns);
|
||||
DEBUG(dbgs() << " Loop Size = " << LoopSize << "\n");
|
||||
|
@ -970,11 +977,6 @@ static bool tryToUnrollLoop(Loop *L, DominatorTree &DT, LoopInfo *LI,
|
|||
DEBUG(dbgs() << " Not unrolling loop with inlinable calls.\n");
|
||||
return false;
|
||||
}
|
||||
if (!L->isLoopSimplifyForm()) {
|
||||
DEBUG(
|
||||
dbgs() << " Not unrolling loop which is not in loop-simplify form.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Find trip count and trip multiple if count is not available
|
||||
unsigned TripCount = 0;
|
||||
|
@ -991,10 +993,6 @@ static bool tryToUnrollLoop(Loop *L, DominatorTree &DT, LoopInfo *LI,
|
|||
TripMultiple = SE->getSmallConstantTripMultiple(L, ExitingBlock);
|
||||
}
|
||||
|
||||
// Exit early if unrolling is disabled.
|
||||
if (UP.Threshold == 0 && (!UP.Partial || UP.PartialThreshold == 0))
|
||||
return false;
|
||||
|
||||
// If the loop contains a convergent operation, the prelude we'd add
|
||||
// to do the first few instructions before we hit the unrolled loop
|
||||
// is unsafe -- it adds a control-flow dependency to the convergent
|
||||
|
|
Loading…
Reference in New Issue