[PATCH] D142292: [SCEV] Introduce `SCEVSelectExpr`

Roman Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Jan 22 08:57:08 PST 2023


lebedev.ri added inline comments.


================
Comment at: llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info-rewrite-expressions.ll:281
 
 define void @guard_pessimizes_analysis_step2(i1 %c, i32 %N) {
 ; CHECK-LABEL: 'guard_pessimizes_analysis_step2'
----------------
This regresses


================
Comment at: llvm/test/Analysis/ScalarEvolution/max-backedge-taken-count-guard-info-rewrite-expressions.ll:289
 ; CHECK-NEXT:    %iv = phi i64 [ %iv.next, %loop ], [ %init, %loop.ph ]
-; CHECK-NEXT:    --> {%init,+,2}<%loop> U: [2,17) S: [2,17) Exits: ((2 * ((14 + (-1 * %init)<nsw>)<nsw> /u 2))<nuw><nsw> + %init) LoopDispositions: { %loop: Computable }
+; CHECK-NEXT:    --> {(select %c, 4, 2),+,2}<%loop> U: full-set S: full-set Exits: <<Unknown>> LoopDispositions: { %loop: Computable }
 ; CHECK-NEXT:    %iv.next = add i64 %iv, 2
----------------
`SE.getSCEVAtScope(%iv, L->getParentLoop())` becomes `{(select %c, 4, 2),+,2}<%loop>`,
that is not loop-invariant, so we say `Exits: <<Unknown>>`.


================
Comment at: llvm/test/Transforms/IRCE/decrementing-loop.ll:117-121
+; FIXME: we should figure out that IV is non-negative via implication through Phi node.
 define void @test_03(ptr %a, ptr %a_len_ptr, i1 %cond) {
 
 ; CHECK-LABEL: test_03
+; CHECK-NOT:       mainloop:
----------------
This regresses


================
Comment at: llvm/test/Transforms/IRCE/decrementing-loop.ll:159-163
+; FIXME: we should figure out that IV is non-negative via implication through two Phi nodes.
 define void @test_04(ptr %a, ptr %a_len_ptr, i1 %cond) {
 
 ; CHECK-LABEL: test_04
+; CHECK-NOT:   mainloop:
----------------
This regresses


================
Comment at: llvm/test/Transforms/IndVarSimplify/lftr-pr20680.ll:12
 
 define void @f() {
 ; CHECK-LABEL: @f(
----------------
I'm not sure if this is a regression or not.


================
Comment at: llvm/test/Transforms/IndVarSimplify/promote-iv-to-eliminate-casts.ll:314
 
 define void @promote_latch_condition_decrementing_loop_04(ptr %p, ptr %a, i1 %cond) {
 ; CHECK-LABEL: @promote_latch_condition_decrementing_loop_04(
----------------
I'm guessing this is a regression


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D142292



More information about the llvm-commits mailing list