forked from OSchip/llvm-project
[SCEV] Rename getMaxBackedgeTakenCount to getConstantMaxBackedgeTakenCount [NFC]
llvm-svn: 368930
This commit is contained in:
parent
1bebc22bd9
commit
7b0515176b
|
@ -779,10 +779,10 @@ public:
|
|||
/// to (i.e. a "conservative over-approximation") of the value returend by
|
||||
/// getBackedgeTakenCount. If such a value cannot be computed, it returns the
|
||||
/// SCEVCouldNotCompute object.
|
||||
const SCEV *getMaxBackedgeTakenCount(const Loop *L);
|
||||
const SCEV *getConstantMaxBackedgeTakenCount(const Loop *L);
|
||||
|
||||
/// Return true if the backedge taken count is either the value returned by
|
||||
/// getMaxBackedgeTakenCount or zero.
|
||||
/// getConstantMaxBackedgeTakenCount or zero.
|
||||
bool isBackedgeTakenCountMaxOrZero(const Loop *L);
|
||||
|
||||
/// Return true if the specified loop has an analyzable loop-invariant
|
||||
|
|
|
@ -1707,7 +1707,7 @@ ScalarEvolution::getZeroExtendExpr(const SCEV *Op, Type *Ty, unsigned Depth) {
|
|||
// in infinite recursion. In the later case, the analysis code will
|
||||
// cope with a conservative value, and it will take care to purge
|
||||
// that value once it has finished.
|
||||
const SCEV *MaxBECount = getMaxBackedgeTakenCount(L);
|
||||
const SCEV *MaxBECount = getConstantMaxBackedgeTakenCount(L);
|
||||
if (!isa<SCEVCouldNotCompute>(MaxBECount)) {
|
||||
// Manually compute the final value for AR, checking for
|
||||
// overflow.
|
||||
|
@ -2051,7 +2051,7 @@ ScalarEvolution::getSignExtendExpr(const SCEV *Op, Type *Ty, unsigned Depth) {
|
|||
// in infinite recursion. In the later case, the analysis code will
|
||||
// cope with a conservative value, and it will take care to purge
|
||||
// that value once it has finished.
|
||||
const SCEV *MaxBECount = getMaxBackedgeTakenCount(L);
|
||||
const SCEV *MaxBECount = getConstantMaxBackedgeTakenCount(L);
|
||||
if (!isa<SCEVCouldNotCompute>(MaxBECount)) {
|
||||
// Manually compute the final value for AR, checking for
|
||||
// overflow.
|
||||
|
@ -3421,7 +3421,7 @@ ScalarEvolution::getAddRecExpr(SmallVectorImpl<const SCEV *> &Operands,
|
|||
return getAddRecExpr(Operands, L, SCEV::FlagAnyWrap); // {X,+,0} --> X
|
||||
}
|
||||
|
||||
// It's tempting to want to call getMaxBackedgeTakenCount count here and
|
||||
// It's tempting to want to call getConstantMaxBackedgeTakenCount count here and
|
||||
// use that information to infer NUW and NSW flags. However, computing a
|
||||
// BE count requires calling getAddRecExpr, so we may not yet have a
|
||||
// meaningful BE count at this point (and if we don't, we'd be stuck
|
||||
|
@ -5654,7 +5654,7 @@ ScalarEvolution::getRangeRef(const SCEV *S,
|
|||
|
||||
// TODO: non-affine addrec
|
||||
if (AddRec->isAffine()) {
|
||||
const SCEV *MaxBECount = getMaxBackedgeTakenCount(AddRec->getLoop());
|
||||
const SCEV *MaxBECount = getConstantMaxBackedgeTakenCount(AddRec->getLoop());
|
||||
if (!isa<SCEVCouldNotCompute>(MaxBECount) &&
|
||||
getTypeSizeInBits(MaxBECount->getType()) <= BitWidth) {
|
||||
auto RangeFromAffine = getRangeForAffineAR(
|
||||
|
@ -6523,7 +6523,7 @@ unsigned ScalarEvolution::getSmallConstantTripCount(const Loop *L,
|
|||
|
||||
unsigned ScalarEvolution::getSmallConstantMaxTripCount(const Loop *L) {
|
||||
const auto *MaxExitCount =
|
||||
dyn_cast<SCEVConstant>(getMaxBackedgeTakenCount(L));
|
||||
dyn_cast<SCEVConstant>(getConstantMaxBackedgeTakenCount(L));
|
||||
return getConstantTripCount(MaxExitCount);
|
||||
}
|
||||
|
||||
|
@ -6599,7 +6599,7 @@ const SCEV *ScalarEvolution::getBackedgeTakenCount(const Loop *L) {
|
|||
|
||||
/// Similar to getBackedgeTakenCount, except return the least SCEV value that is
|
||||
/// known never to be less than the actual backedge taken count.
|
||||
const SCEV *ScalarEvolution::getMaxBackedgeTakenCount(const Loop *L) {
|
||||
const SCEV *ScalarEvolution::getConstantMaxBackedgeTakenCount(const Loop *L) {
|
||||
return getBackedgeTakenInfo(L).getMax(this);
|
||||
}
|
||||
|
||||
|
@ -11438,8 +11438,8 @@ static void PrintLoopInfo(raw_ostream &OS, ScalarEvolution *SE,
|
|||
L->getHeader()->printAsOperand(OS, /*PrintType=*/false);
|
||||
OS << ": ";
|
||||
|
||||
if (!isa<SCEVCouldNotCompute>(SE->getMaxBackedgeTakenCount(L))) {
|
||||
OS << "max backedge-taken count is " << *SE->getMaxBackedgeTakenCount(L);
|
||||
if (!isa<SCEVCouldNotCompute>(SE->getConstantMaxBackedgeTakenCount(L))) {
|
||||
OS << "max backedge-taken count is " << *SE->getConstantMaxBackedgeTakenCount(L);
|
||||
if (SE->isBackedgeTakenCountMaxOrZero(L))
|
||||
OS << ", actual taken count either this or zero.";
|
||||
} else {
|
||||
|
|
|
@ -2647,11 +2647,11 @@ bool IndVarSimplify::optimizeLoopExits(Loop *L) {
|
|||
|
||||
// Form an expression for the maximum exit count possible for this loop. We
|
||||
// merge the max and exact information to approximate a version of
|
||||
// getMaxBackedgeTakenInfo which isn't restricted to just constants.
|
||||
// TODO: factor this out as a version of getMaxBackedgeTakenCount which
|
||||
// getConstantMaxBackedgeTakenCount which isn't restricted to just constants.
|
||||
// TODO: factor this out as a version of getConstantMaxBackedgeTakenCount which
|
||||
// isn't guaranteed to return a constant.
|
||||
SmallVector<const SCEV*, 4> ExitCounts;
|
||||
const SCEV *MaxConstEC = SE->getMaxBackedgeTakenCount(L);
|
||||
const SCEV *MaxConstEC = SE->getConstantMaxBackedgeTakenCount(L);
|
||||
if (!isa<SCEVCouldNotCompute>(MaxConstEC))
|
||||
ExitCounts.push_back(MaxConstEC);
|
||||
for (BasicBlock *ExitingBB : ExitingBlocks) {
|
||||
|
|
|
@ -191,7 +191,7 @@ static LoopDeletionResult deleteLoopIfDead(Loop *L, DominatorTree &DT,
|
|||
|
||||
// Don't remove loops for which we can't solve the trip count.
|
||||
// They could be infinite, in which case we'd be changing program behavior.
|
||||
const SCEV *S = SE.getMaxBackedgeTakenCount(L);
|
||||
const SCEV *S = SE.getConstantMaxBackedgeTakenCount(L);
|
||||
if (isa<SCEVCouldNotCompute>(S)) {
|
||||
LLVM_DEBUG(dbgs() << "Could not compute SCEV MaxBackedgeTakenCount.\n");
|
||||
return Changed ? LoopDeletionResult::Modified
|
||||
|
|
|
@ -240,7 +240,7 @@ static bool containsUnconditionalCallSafepoint(Loop *L, BasicBlock *Header,
|
|||
static bool mustBeFiniteCountedLoop(Loop *L, ScalarEvolution *SE,
|
||||
BasicBlock *Pred) {
|
||||
// A conservative bound on the loop as a whole.
|
||||
const SCEV *MaxTrips = SE->getMaxBackedgeTakenCount(L);
|
||||
const SCEV *MaxTrips = SE->getConstantMaxBackedgeTakenCount(L);
|
||||
if (MaxTrips != SE->getCouldNotCompute() &&
|
||||
SE->getUnsignedRange(MaxTrips).getUnsignedMax().isIntN(
|
||||
CountedLoopTripWidth))
|
||||
|
|
Loading…
Reference in New Issue