[PATCH] D20789: Consecutive memory access in Loop Vectorizer - fixed and simplified

Elena Demikhovsky via llvm-commits llvm-commits at lists.llvm.org
Mon May 30 05:28:28 PDT 2016


delena created this revision.
delena added reviewers: hfinkel, anemet, mzolotukhin, Ayal.
delena added a subscriber: llvm-commits.
delena set the repository for this revision to rL LLVM.
Herald added a subscriber: mzolotukhin.

I fixed consecutive memory access detection in Loop Vectorizer.
It did not handle correctly cases without GEP. 

I started from this loop that wasn't vectorized.

for (int i=0; i<len; i++)
    *to++ = *from++;

Probably this loop should be resolved with memcpy, but it is another pass. Current loop vectorizer does not recognize consecutive memory access, because the generated code performs load/store without GEP. I use SCEV to detect consecutive access.


Repository:
  rL LLVM

http://reviews.llvm.org/D20789

Files:
  ../lib/Transforms/Vectorize/LoopVectorize.cpp
  ../test/Transforms/LoopVectorize/consec_no_gep.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D20789.58947.patch
Type: text/x-patch
Size: 7231 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160530/215c0178/attachment.bin>


More information about the llvm-commits mailing list