llvm-project/llvm/test/Transforms/IRCE
Denis Antrushin 99a6e405ed [IRCE] Use SCEVExpander to modify loop bound
IRCE pass checks that it can calculate loop bounds by checking
SCEV availability at loop entry. However it is possible that loop
bound SCEV is loop invariant, but instruction used to compute it
resides within loop. In such case adjusting loop bound in preheader
using IRBuilder leads to malformed SSA.
Use SCEVExpander instead to generate proper instructions.

Reviewed-by: mkazantsev
Differential Revision: https://reviews.llvm.org/D73496
2020-02-06 12:44:43 +03:00
..
add-metadata-pre-post-loops.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
bad-loop-structure.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
bad_expander.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
bug-loop-varying-upper-limit.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
bug-mismatched-types.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
clamp.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
conjunctive-checks.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
correct-loop-info.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
decrementing-loop.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
empty_ranges.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
eq_ne.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
low-becount.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
multiple-access-no-preloop.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
non-loop-invariant-rhs-instr.ll [IRCE] Use SCEVExpander to modify loop bound 2020-02-06 12:44:43 +03:00
non_known_positive_end.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
not-likely-taken.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
only-lower-check.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
only-upper-check.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
optimistic_scev.ll
pre_post_loops.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
range_intersect_miscompile.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
ranges_of_different_types.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
rc-negative-bound.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
single-access-no-preloop.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
single-access-with-preloop.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
skip-profitability-checks.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
stride_more_than_1.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
unhandled.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
unsigned_comparisons_ugt.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
unsigned_comparisons_ult.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
variable-loop-bounds.ll
wide_indvar.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00
with-parent-loops.ll [IRCE] Make IRCE a Function pass. 2020-02-05 09:22:41 -08:00