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
bad-loop-structure.ll
bad_expander.ll
bug-loop-varying-upper-limit.ll
bug-mismatched-types.ll
clamp.ll
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
decrementing-loop.ll
empty_ranges.ll
eq_ne.ll
low-becount.ll
multiple-access-no-preloop.ll
non_known_positive_end.ll
not-likely-taken.ll
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
range_intersect_miscompile.ll
ranges_of_different_types.ll
rc-negative-bound.ll
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
skip-profitability-checks.ll
stride_more_than_1.ll
unhandled.ll
unsigned_comparisons_ugt.ll
unsigned_comparisons_ult.ll
variable-loop-bounds.ll
wide_indvar.ll [IRCE] Support narrow latch condition for wide range checks 2019-01-23 07:20:56 +00:00
with-parent-loops.ll