[PATCH] D67510: [LV] Support gaps, overlaps, and inexact sizes in speculation logic

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 12 11:28:39 PDT 2019


reames created this revision.
reames added reviewers: Ayal, hsaito.
Herald added subscribers: rkruppe, javed.absar, bollu, mcrosier.
Herald added a project: LLVM.

Implement last set of TODOs from rL371452 <https://reviews.llvm.org/rL371452>.  Three cases:

1. A loop which loads N out of every M bytes.  (i.e. there are gaps)
2. A loop which loads N bytes every M bytes where N > M.  (i.e. the loads overlap, and the alignment must be less than natural alignment)
3. An exact constant trip count is not known, but an upper bound is and the entire region is dereferenceable.

The SCEV change is needed for (3) above.  I'm going to separate that into it's own review (with it's own tests) and then rebase once that's landed.


Repository:
  rL LLVM

https://reviews.llvm.org/D67510

Files:
  lib/Analysis/Loads.cpp
  lib/Analysis/ScalarEvolution.cpp
  test/Transforms/LoopVectorize/X86/load-deref-pred.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D67510.219955.patch
Type: text/x-patch
Size: 65480 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190912/26dd2845/attachment.bin>


More information about the llvm-commits mailing list