[IRCE] Add NSW flag to main loop's indvar base
authorAleksandr Popov <a.popov.tmb@gmail.com>
Sun, 16 Jul 2023 23:00:21 +0000 (01:00 +0200)
committerAleksandr Popov <a.popov.tmb@gmail.com>
Sun, 16 Jul 2023 23:03:52 +0000 (01:03 +0200)
commitbca5501869f2b6b1a2dc2654d5cc384f0cf69e2f
tree98f4348c361dd0bbaa267f2d87aa98e0283ed8e7
parent33acdc1e2fbf9775f73d12a0964f1866ae828052
[IRCE] Add NSW flag to main loop's indvar base

We have guarantees that induction variable will not overflow in the main
loop after the loop constrained. Therefore we can add no wrap flags on
its base in order not to miss info that loop is countable.

Add NSW flag now, since adding NUW flag requires a bit more complicated
analysis.

Reviewed By: skatkov

Differential Revision: https://reviews.llvm.org/D154954
llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
llvm/test/Transforms/IRCE/conjunctive-checks.ll
llvm/test/Transforms/IRCE/correct-loop-info.ll
llvm/test/Transforms/IRCE/iv-plus-offset-range-check.ll
llvm/test/Transforms/IRCE/multiple-access-no-preloop.ll
llvm/test/Transforms/IRCE/pre_post_loops.ll
llvm/test/Transforms/IRCE/ranges_of_different_types.ll
llvm/test/Transforms/IRCE/rc-negative-bound.ll
llvm/test/Transforms/IRCE/stride_more_than_1.ll