llvm-project/llvm/test/Analysis/LoopAccessAnalysis
Anna Thomas 5e9215f02b [LV] Avoid vectorizing unsafe dependencies in uniform address
Summary:
Currently, when vectorizing stores to uniform addresses, the only
instance we prevent vectorization is if there are multiple stores to the
same uniform address causing an unsafe dependency.
This patch teaches LAA to avoid vectorizing loops that have an unsafe
cross-iteration dependency between a load and a store to the same uniform address.

Fixes PR39653.

Reviewers: Ayal, efriedma

Subscribers: rkruppe, llvm-commits

Differential Revision: https://reviews.llvm.org/D54538

llvm-svn: 347220
2018-11-19 15:39:59 +00:00
..
backward-dep-different-types.ll
forward-loop-carried.ll
forward-loop-independent.ll
independent-interleaved.ll
interleave-innermost.ll
memcheck-for-loop-invariant.ll
memcheck-off-by-one-error.ll
memcheck-wrapping-pointers.ll [LV] Avoid vectorizing unsafe dependencies in uniform address 2018-11-19 15:39:59 +00:00
multiple-strides-rt-memory-checks.ll
non-wrapping-pointer.ll
nullptr.ll
number-of-memchecks.ll Re-apply "[SCEV] Strengthen StrengthenNoWrapFlags (reapply r334428)." 2018-07-13 23:58:46 +00:00
pointer-with-unknown-bounds.ll
pr31098.ll
resort-to-memchecks-only.ll
reverse-memcheck-bounds.ll
safe-no-checks.ll
safe-with-dep-distance.ll
store-to-invariant-check1.ll [LV] Avoid vectorizing unsafe dependencies in uniform address 2018-11-19 15:39:59 +00:00
store-to-invariant-check2.ll [LV] Avoid vectorizing unsafe dependencies in uniform address 2018-11-19 15:39:59 +00:00
store-to-invariant-check3.ll [LV] Avoid vectorizing unsafe dependencies in uniform address 2018-11-19 15:39:59 +00:00
stride-access-dependence.ll
underlying-objects-1.ll
underlying-objects-2.ll
unsafe-and-rt-checks.ll
wrapping-pointer-ni.ll [SCEV] Don't expand Wrap predicate using inttoptr in ni addrspaces 2018-07-26 21:55:06 +00:00
wrapping-pointer-versioning.ll [SCEV] Don't expand Wrap predicate using inttoptr in ni addrspaces 2018-07-26 21:55:06 +00:00