llvm-project/llvm/test/Transforms/LoopFusion
Nikita Popov f3124a46c1 [SCEV] Fix nsw flags for GEP expressions
The SCEV code for constructing GEP expressions currently assumes
that the addition of the base and all the offsets is nsw if the GEP
is inbounds. While the addition of the offsets is indeed nsw, the
addition to the base address is not, as the base address is
interpreted as an unsigned value.

Fix the GEP expression code to not assume nsw for the base+offset
calculation. However, do assume nuw if we know that the offset is
non-negative. With this, we use the same behavior as the
construction of GEP addrecs does. (Modulo the fact that we
disregard SCEV unification, as the pre-existing FIXME points out).

Differential Revision: https://reviews.llvm.org/D90648
2020-11-13 18:19:32 +01:00
..
cannot_fuse.ll Revert "[llvm][test] Add COM: directives before colon-less non-CHECKs in comments. NFC" 2020-05-22 05:36:15 -06:00
diagnostics_analysis.ll
diagnostics_missed.ll
double_loop_nest_inner_guard.ll [LoopFusion] Remove unreachable blocks from DT and LI after fusion 2020-05-07 16:44:40 -07:00
four_loops.ll
guarded.ll [LoopFusion] Update second loop guard non loop successor phis incoming 2020-06-09 21:14:51 +00:00
guarded_peel.ll [Loop Fusion] Integrate Loop Peeling into Loop Fusion (re-land after fixing ASAN build failures) 2020-07-23 21:02:04 +00:00
guarded_unsafeblock_peel.ll [Loop Fusion] Integrate Loop Peeling into Loop Fusion (re-land after fixing ASAN build failures) 2020-07-23 21:02:04 +00:00
inner_loops.ll
loop_nest.ll
nonadjacent_peel.ll [Loop Fusion] Integrate Loop Peeling into Loop Fusion (re-land after fixing ASAN build failures) 2020-07-23 21:02:04 +00:00
peel.ll [Loop Fusion] Integrate Loop Peeling into Loop Fusion (re-land after fixing ASAN build failures) 2020-07-23 21:02:04 +00:00
simple.ll [SCEV] Fix nsw flags for GEP expressions 2020-11-13 18:19:32 +01:00
triple_loop_nest_inner_guard.ll [LoopFusion] Remove unreachable blocks from DT and LI after fusion 2020-05-07 16:44:40 -07:00