llvm-project/llvm/test/Transforms/IRCE
Max Kazantsev d9aee3c0d1 [IRCE] Support narrow latch condition for wide range checks
This patch relaxes restrictions on types of latch condition and range check.
In current implementation, they should match. This patch allows to handle
wide range checks against narrow condition. The motivating example is the
following:

  int N = ...
  for (long i = 0; (int) i < N; i++) {
    if (i >= length) deopt;
  }

In this patch, the option that enables this support is turned off by
default. We'll wait until it is switched to true.

Differential Revision: https://reviews.llvm.org/D56837
Reviewed By: reames

llvm-svn: 351926
2019-01-23 07:20:56 +00:00
..
add-metadata-pre-post-loops.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
bad-loop-structure.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
bad_expander.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
bug-loop-varying-upper-limit.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
bug-mismatched-types.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
clamp.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
conjunctive-checks.ll Revert "[SCEV][NFC] Check NoWrap flags before lexicographical comparison of SCEVs" 2018-08-27 21:41:37 +00:00
correct-loop-info.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
decrementing-loop.ll [SCEV] Prove implications for SCEVUnknown Phis 2018-04-04 05:46:47 +00:00
empty_ranges.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
eq_ne.ll [IRCE] Enable increasing loops of variable bounds 2018-03-26 09:29:42 +00:00
low-becount.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
multiple-access-no-preloop.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
non_known_positive_end.ll [IRCE] Relax restriction on collected range checks 2018-04-09 06:01:22 +00:00
not-likely-taken.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
only-lower-check.ll [NFC] Remove obsolete enum RangeCheckKind 2019-01-15 10:48:45 +00:00
only-upper-check.ll [NFC] Remove obsolete enum RangeCheckKind 2019-01-15 10:48:45 +00:00
optimistic_scev.ll
pre_post_loops.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
range_intersect_miscompile.ll [IRCE] Relax restriction on collected range checks 2018-04-09 06:01:22 +00:00
ranges_of_different_types.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
rc-negative-bound.ll [IRCE] Fix miscompile with range checks against negative values 2018-05-19 13:06:37 +00:00
single-access-no-preloop.ll Revert "[SCEV][NFC] Check NoWrap flags before lexicographical comparison of SCEVs" 2018-08-27 21:41:37 +00:00
single-access-with-preloop.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
skip-profitability-checks.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
stride_more_than_1.ll [IRCE] Only check for NSW on equality predicates 2018-04-18 13:50:28 +00:00
unhandled.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
unsigned_comparisons_ugt.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
unsigned_comparisons_ult.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00
variable-loop-bounds.ll [IRCE] isKnownNonNegative helper function 2018-04-12 12:49:40 +00:00
wide_indvar.ll [IRCE] Support narrow latch condition for wide range checks 2019-01-23 07:20:56 +00:00
with-parent-loops.ll [New PM][IRCE] port of Inductive Range Check Elimination pass to the new pass manager 2018-03-15 11:01:19 +00:00