llvm-project/llvm/test/Analysis/LoopAccessAnalysis
Silviu Baranga 0e5804a6af Fix memcheck interval ends for pointers with negative strides
Summary:
The checking pointer grouping algorithm assumes that the
starts/ends of the pointers are well formed (start <= end).

The runtime memory checking algorithm also assumes this by doing:

 start0 < end1 && start1 < end0

to detect conflicts. This check only works if start0 <= end0 and
start1 <= end1.

This change correctly orders the interval ends by either checking
the stride (if it is constant) or by using min/max SCEV expressions.

Reviewers: anemet, rengolin

Subscribers: rengolin, llvm-commits

Differential Revision: http://reviews.llvm.org/D11149

llvm-svn: 242400
2015-07-16 14:02:58 +00:00
..
backward-dep-different-types.ll [LoopAccesses] Remove unused global variables in tests 2015-04-02 04:42:51 +00:00
non-wrapping-pointer.ll [LAA] Try to prove non-wrapping of pointers if SCEV cannot 2015-06-26 17:25:43 +00:00
number-of-memchecks.ll Cleanup after r241809 - remove uncessary call to std::sort 2015-07-13 14:48:24 +00:00
pointer-with-unknown-bounds.ll [LAA] Revert a small part of r239295 2015-07-08 22:58:48 +00:00
resort-to-memchecks-only.ll [LAA] Merge memchecks for accesses separated by a constant offset 2015-07-08 09:16:33 +00:00
reverse-memcheck-bounds.ll Fix memcheck interval ends for pointers with negative strides 2015-07-16 14:02:58 +00:00
safe-no-checks.ll [LoopAccesses] Properly print whether memchecks are needed 2015-04-14 01:12:55 +00:00
store-to-invariant-check1.ll [LoopAccesses] Allow analysis to complete in the presence of uniform stores 2015-04-08 17:48:40 +00:00
store-to-invariant-check2.ll [LoopAccesses] Allow analysis to complete in the presence of uniform stores 2015-04-08 17:48:40 +00:00
store-to-invariant-check3.ll [LoopAccesses] Allow analysis to complete in the presence of uniform stores 2015-04-08 17:48:40 +00:00
stride-access-dependence.ll [LoopAccessAnalysis] Teach LAA to check the memory dependence between strided accesses. 2015-06-08 04:48:37 +00:00
underlying-objects-1.ll [getUnderlyingOjbects] Analyze loop PHIs further to remove false positives 2015-04-23 20:09:20 +00:00
underlying-objects-2.ll [LoopAccesses] Rearrange printed lines in -analyze 2015-05-18 15:36:57 +00:00
unsafe-and-rt-checks.ll Cleanup after r241809 - remove uncessary call to std::sort 2015-07-13 14:48:24 +00:00