[PATCH] D79783: [LoopVectorize] Fallback to a scalar epilogue when TP fails

Pierre van Houtryve via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue May 19 07:00:41 PDT 2020


Pierre-vh updated this revision to Diff 264887.
Pierre-vh marked 5 inline comments as done.
Pierre-vh added a comment.

- Addressed comments (see items marked as "done")
- Changed "reportVectorizationFailure" calls in "prepareTailFoldingByMasking" into simple debug prints.

> Would be good to also preserve the existing "force-vector-tail-folding" behavior of "fold or do not vectorize", in addition to introducing the new "prefer-vector-tail-folding" behavior.

What is your preferred solution for this? Here are some ideas:

- Add a new command-line switch that acts like the old `-prefer-predicate-over-epilog`, something like `-force-predicate-over-epilog`
- Add an additional switch to use with `-prefer-predicate-over-epilog` to disable the fallback behaviour, such as `-disable-scalar-epilog-fallback`
- Keep the old `-prefer-predicate-over-epilog` behaviour and only fallback when TTI requested tail-folding


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D79783/new/

https://reviews.llvm.org/D79783

Files:
  llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
  llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
  llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  llvm/test/Transforms/LoopVectorize/ARM/tail-folding-scalar-epilogue-fallback.ll
  llvm/test/Transforms/LoopVectorize/use-scalar-epilogue-if-tp-fails.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D79783.264887.patch
Type: text/x-patch
Size: 19639 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200519/5aa14582/attachment.bin>


More information about the llvm-commits mailing list