[PATCH] D139403: [SCEV] Compute symbolic exit count for 'and' conditions

Nikita Popov via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 6 02:10:51 PST 2022


nikic added inline comments.


================
Comment at: llvm/lib/Analysis/ScalarEvolution.cpp:8715
+    if (EL.ExactNotTaken != getCouldNotCompute() ||
+        EL.SymbolicMaxNotTaken != getCouldNotCompute())
       ExitCounts.emplace_back(ExitBB, EL);
----------------
Why the new condition here?


================
Comment at: llvm/test/Analysis/ScalarEvolution/widenable-condition.ll:27
 ; CHECK-NEXT:  Loop %loop: constant max backedge-taken count is 1999
-; CHECK-NEXT:  Loop %loop: Unpredictable symbolic max backedge-taken count.
+; CHECK-NEXT:  Loop %loop: symbolic max backedge-taken count is 1999
 ; CHECK-NEXT:  Loop %loop: Unpredictable predicated backedge-taken count.
----------------
I don't really get why this patch introduces these changes (i.e. why this wasn't the result previously). Aren't we already assigning the constant max to the symbol max if there is no exact?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D139403/new/

https://reviews.llvm.org/D139403



More information about the llvm-commits mailing list