llvm-project/llvm/test/Transforms/IRCE
Max Kazantsev 25d8655dc2 [IRCE] Do not process empty safe ranges
IRCE should not apply when the safe iteration range is proved to be empty.
In this case we do unneeded job creating pre/post loops and then never
go to the main loop.

This patch makes IRCE not apply to empty safe ranges, adds test for this
situation and also modifies one of existing tests where it used to happen
slightly.

Reviewed By: anna
Differential Revision: https://reviews.llvm.org/D38577

llvm-svn: 315437
2017-10-11 06:53:07 +00:00
..
add-metadata-pre-post-loops.ll [IRCE] Avoid loop optimizations on pre and post loops 2016-12-13 21:05:21 +00:00
bad-loop-structure.ll [IRCE] Add a missing invariant check 2017-02-07 23:59:07 +00:00
bug-loop-varying-upper-limit.ll [IRCE] Create llvm::Loop instances for cloned out loops 2016-08-14 01:04:46 +00:00
bug-mismatched-types.ll [IRCE] Create llvm::Loop instances for cloned out loops 2016-08-14 01:04:46 +00:00
clamp.ll [IRCE] Temporarily disable unsigned latch conditions by default 2017-10-04 06:53:22 +00:00
conjunctive-checks.ll [IRCE] Create llvm::Loop instances for cloned out loops 2016-08-14 01:04:46 +00:00
correct-loop-info.ll [IRCE] Do not process empty safe ranges 2017-10-11 06:53:07 +00:00
decrementing-loop.ll [IRCE] Create llvm::Loop instances for cloned out loops 2016-08-14 01:04:46 +00:00
eq_ne.ll [IRCE] Temporarily disable unsigned latch conditions by default 2017-10-04 06:53:22 +00:00
low-becount.ll [IRCE] Create llvm::Loop instances for cloned out loops 2016-08-14 01:04:46 +00:00
multiple-access-no-preloop.ll [IRCE] Create llvm::Loop instances for cloned out loops 2016-08-14 01:04:46 +00:00
not-likely-taken.ll
only-lower-check.ll [IRCE] Create llvm::Loop instances for cloned out loops 2016-08-14 01:04:46 +00:00
only-upper-check.ll [IRCE] Create llvm::Loop instances for cloned out loops 2016-08-14 01:04:46 +00:00
pre_post_loops.ll [IRCE] Fix corner case with Start = INT_MAX 2017-07-14 06:35:03 +00:00
range_intersect_miscompile.ll [IRCE] Temporarily disable unsigned latch conditions by default 2017-10-04 06:53:22 +00:00
single-access-no-preloop.ll [IRCE] Do not process empty safe ranges 2017-10-11 06:53:07 +00:00
single-access-with-preloop.ll [IRCE] Create llvm::Loop instances for cloned out loops 2016-08-14 01:04:46 +00:00
skip-profitability-checks.ll [IRCE] Create llvm::Loop instances for cloned out loops 2016-08-14 01:04:46 +00:00
stride_more_than_1.ll [IRCE] Temporarily disable unsigned latch conditions by default 2017-10-04 06:53:22 +00:00
unhandled.ll [IRCE] Create llvm::Loop instances for cloned out loops 2016-08-14 01:04:46 +00:00
unsigned_comparisons_ugt.ll [IRCE] Temporarily disable unsigned latch conditions by default 2017-10-04 06:53:22 +00:00
unsigned_comparisons_ult.ll [IRCE] Temporarily disable unsigned latch conditions by default 2017-10-04 06:53:22 +00:00
with-parent-loops.ll