forked from OSchip/llvm-project
eac89d736c
proven larger than the loop-count This fixes PR31098: Try to resolve statically data-dependences whose compile-time-unknown distance can be proven larger than the loop-count, instead of resorting to runtime dependence checking (which are not always possible). For vectorization it is sufficient to prove that the dependence distance is >= VF; But in some cases we can prune unknown dependence distances early, and even before selecting the VF, and without a runtime test, by comparing the distance against the loop iteration count. Since the vectorized code will be executed only if LoopCount >= VF, proving distance >= LoopCount also guarantees that distance >= VF. This check is also equivalent to the Strong SIV Test. Reviewers: mkuper, anemet, sanjoy Differential Revision: https://reviews.llvm.org/D28044 llvm-svn: 294892 |
||
---|---|---|
.. | ||
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 | ||
multiple-strides-rt-memory-checks.ll | ||
non-wrapping-pointer.ll | ||
nullptr.ll | ||
number-of-memchecks.ll | ||
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 | ||
store-to-invariant-check2.ll | ||
store-to-invariant-check3.ll | ||
stride-access-dependence.ll | ||
underlying-objects-1.ll | ||
underlying-objects-2.ll | ||
unsafe-and-rt-checks.ll | ||
wrapping-pointer-versioning.ll |