[llvm] change contents of ScalarEvolution from private to protected (PR #83052)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 6 00:51:38 PST 2024
================
@@ -8923,10 +8949,104 @@ ScalarEvolution::ExitLimit ScalarEvolution::computeExitLimitFromCondCached(
ScalarEvolution::ExitLimit ScalarEvolution::computeExitLimitFromCondImpl(
ExitLimitCacheTy &Cache, const Loop *L, Value *ExitCond, bool ExitIfTrue,
bool ControlsOnlyExit, bool AllowPredicates) {
- // Handle BinOp conditions (And, Or).
- if (auto LimitFromBinOp = computeExitLimitFromCondFromBinOp(
- Cache, L, ExitCond, ExitIfTrue, ControlsOnlyExit, AllowPredicates))
- return *LimitFromBinOp;
+ if (!AssumeLoopExists) {
+ // Handle BinOp conditions (And, Or).
+ if (auto LimitFromBinOp = computeExitLimitFromCondFromBinOp(
+ Cache, L, ExitCond, ExitIfTrue, ControlsOnlyExit, AllowPredicates))
+ return *LimitFromBinOp;
+ } else {
+ // Check if the controlling expression for this loop is an And or Or.
----------------
nikic wrote:
Shouldn't this code be integrated in computeExitLimitFromCondFromBinOp?
https://github.com/llvm/llvm-project/pull/83052
More information about the llvm-commits
mailing list