[PATCH] D19487: [LV] Reallow interleaved load groups with gaps

Matthew Simpson via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 25 10:27:24 PDT 2016


mssimpso created this revision.
mssimpso added reviewers: sbaranga, rengolin, hfinkel, HaoLiu, Ayal.
mssimpso added subscribers: llvm-commits, mcrosier.
Herald added a subscriber: mzolotukhin.

We previously disallowed interleaved load groups that may cause us to speculatively access memory out-of-bounds (D17332). We did this by ensuring each load group had an access corresponding to the first and last member. Instead of bailing out for these interleaved groups, this patch enables us to peel off the last vector iteration, ensuring that we execute at least one iteration of the scalar remainder loop. This solution was proposed in the review of the previous patch.


http://reviews.llvm.org/D19487

Files:
  lib/Transforms/Vectorize/LoopVectorize.cpp
  test/Transforms/LoopVectorize/interleaved-accesses.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D19487.54876.patch
Type: text/x-patch
Size: 6880 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160425/5d52bd46/attachment.bin>


More information about the llvm-commits mailing list