[PATCH] D23854: [LoopAccessAnalysis] Recognize geps that include s/zexts as consecutive memory accesses.

Balaram Makam via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 24 15:19:13 PDT 2016


bmakam created this revision.
bmakam added a reviewer: mcrosier.
bmakam added a subscriber: llvm-commits.
Herald added subscribers: mzolotukhin, mcrosier, sanjoy.

We have two versions of isConsecutiveAccess() in tree. The instance in the LoopAccessAnalysis is used to drive the SLP vectorizer
and to some degree the Loop Idiom Recognition pass. The other instance was recently committed with the LoadStoreVectorizer,
which has additional logic to deal with gep patterns that include zexts and sexts. This is useful to figure out that accesses 
A[3*i], A[3*i+1] and A[3*i+2] are consecutive which SCEV currently fails to recognize.

This patch ports the additional logic from the LoadStoreVectorizer to the LoopAccessAnalysis version. 

https://reviews.llvm.org/D23854

Files:
  include/llvm/Analysis/LoopAccessAnalysis.h
  lib/Analysis/LoopAccessAnalysis.cpp
  lib/Transforms/Scalar/LoopIdiomRecognize.cpp
  lib/Transforms/Vectorize/SLPVectorizer.cpp
  test/Transforms/SLPVectorizer/X86/consecutive-access.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D23854.69175.patch
Type: text/x-patch
Size: 9898 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160824/802e21c4/attachment.bin>


More information about the llvm-commits mailing list