[PATCH] D20241: [LV] Respect max VF for interleaved accesses

Matthew Simpson via llvm-commits llvm-commits at lists.llvm.org
Fri May 13 08:48:42 PDT 2016


mssimpso created this revision.
mssimpso added reviewers: anemet, sbaranga.
mssimpso added subscribers: mcrosier, llvm-commits.
Herald added a subscriber: mzolotukhin.

The selection of the vectorization factor currently doesn't consider interleaved accesses. The vectorization factor is based on the maximum safe dependence distance computed by LAA. However, for loops with interleaved groups, we should instead base the vectorization factor on the maximum safe dependence distance divided by the maximum interleave factor among all the interleaved groups. Interleaved accesses not in a group will be scalarized.

I have also added a flag to disable the store-load forwarding optimization in LAA. This is a performance optimization that should not affect correctness. The optimization must be disabled to expose the bug in the included test case. The addition of the flag would be committed in a separate patch.


http://reviews.llvm.org/D20241

Files:
  lib/Analysis/LoopAccessAnalysis.cpp
  lib/Transforms/Vectorize/LoopVectorize.cpp
  test/Transforms/LoopVectorize/AArch64/max-vf-for-interleaved.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D20241.57198.patch
Type: text/x-patch
Size: 5601 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160513/6f75c882/attachment.bin>


More information about the llvm-commits mailing list