[PATCH] D93317: [LV] Vectorize (some) early and multiple exit loops

Philip Reames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 22 11:49:09 PST 2020


reames updated this revision to Diff 313402.
reames edited the summary of this revision.
reames added a comment.

Incorporate a fix for the issue Florian found.  Essentially, we can't both treat single use exit conditions as dead, and allow predication to use them in a mask.  Since we know they're evaluate to true for the entire vector body, we can simply ignore them when forming edge predicates.

Florian, any other edge cases you can think of?  I'd completely missed that one.  Thank you for finding it!


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

https://reviews.llvm.org/D93317

Files:
  llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
  llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
  llvm/test/Transforms/LoopVectorize/control-flow.ll
  llvm/test/Transforms/LoopVectorize/loop-form.ll
  llvm/test/Transforms/LoopVectorize/loop-legality-checks.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D93317.313402.patch
Type: text/x-patch
Size: 36984 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201222/ad38dcdf/attachment.bin>


More information about the llvm-commits mailing list