Skip to content

Commit 830c0b7

Browse files
authored
[SCEV] Improve code in isKnownPredicateViaConstantRanges (NFC) (#147335)
1 parent d945cd6 commit 830c0b7

File tree

1 file changed

+5
-21
lines changed

1 file changed

+5
-21
lines changed

llvm/lib/Analysis/ScalarEvolution.cpp

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11376,11 +11376,9 @@ bool ScalarEvolution::isKnownPredicateViaConstantRanges(CmpPredicate Pred,
1137611376
if (HasSameValue(LHS, RHS))
1137711377
return ICmpInst::isTrueWhenEqual(Pred);
1137811378

11379-
// This code is split out from isKnownPredicate because it is called from
11380-
// within isLoopEntryGuardedByCond.
11381-
11382-
auto CheckRanges = [&](const ConstantRange &RangeLHS,
11383-
const ConstantRange &RangeRHS) {
11379+
auto CheckRange = [&](bool IsSigned) {
11380+
auto RangeLHS = IsSigned ? getSignedRange(LHS) : getUnsignedRange(LHS);
11381+
auto RangeRHS = IsSigned ? getSignedRange(RHS) : getUnsignedRange(RHS);
1138411382
return RangeLHS.icmp(Pred, RangeRHS);
1138511383
};
1138611384

@@ -11390,27 +11388,13 @@ bool ScalarEvolution::isKnownPredicateViaConstantRanges(CmpPredicate Pred,
1139011388
return false;
1139111389

1139211390
if (Pred == CmpInst::ICMP_NE) {
11393-
auto SL = getSignedRange(LHS);
11394-
auto SR = getSignedRange(RHS);
11395-
if (CheckRanges(SL, SR))
11396-
return true;
11397-
auto UL = getUnsignedRange(LHS);
11398-
auto UR = getUnsignedRange(RHS);
11399-
if (CheckRanges(UL, UR))
11391+
if (CheckRange(true) || CheckRange(false))
1140011392
return true;
1140111393
auto *Diff = getMinusSCEV(LHS, RHS);
1140211394
return !isa<SCEVCouldNotCompute>(Diff) && isKnownNonZero(Diff);
1140311395
}
1140411396

11405-
if (CmpInst::isSigned(Pred)) {
11406-
auto SL = getSignedRange(LHS);
11407-
auto SR = getSignedRange(RHS);
11408-
return CheckRanges(SL, SR);
11409-
}
11410-
11411-
auto UL = getUnsignedRange(LHS);
11412-
auto UR = getUnsignedRange(RHS);
11413-
return CheckRanges(UL, UR);
11397+
return CheckRange(CmpInst::isSigned(Pred));
1141411398
}
1141511399

1141611400
bool ScalarEvolution::isKnownPredicateViaNoOverflow(CmpPredicate Pred,

0 commit comments

Comments
 (0)