[PATCH] D32422: LoopVectorizer: let target prefer scalar addressing computations (+ minor improvements in SystemZTTI)

Jonas Paulsson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 24 02:35:33 PDT 2017


jonpa updated this revision to Diff 100055.
jonpa added a comment.

Elena,

I have updated the patch based on your review. The changes are:

- Use getPointerOperand()
- Only handle memory accesses which *are not gather/scatter*. This way, SystemZ gets the behavior it wants, and other targets such as x86 can enable this without disrupting gather/scatter accesses.
- Check for operand in same BB, instead of inside loop (currently completely equivalent)
- Handle the whole interleave group if changing widening decision. Also added comment as to why this is not (currently) handled by the cost functions.

Does this look ok to you now?


https://reviews.llvm.org/D32422

Files:
  include/llvm/Analysis/TargetTransformInfo.h
  include/llvm/Analysis/TargetTransformInfoImpl.h
  lib/Analysis/TargetTransformInfo.cpp
  lib/Target/SystemZ/SystemZTargetTransformInfo.h
  lib/Transforms/Vectorize/LoopVectorize.cpp
  test/Transforms/LoopVectorize/SystemZ/addressing.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D32422.100055.patch
Type: text/x-patch
Size: 10801 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170524/37034aba/attachment.bin>


More information about the llvm-commits mailing list