[PATCH] D93725: [LV] Relax assumption that LCSSA implies single entry
Philip Reames via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 22 12:23:27 PST 2020
reames created this revision.
reames added reviewers: Ayal, fhahn.
Herald added subscribers: dantrushin, bollu, hiraditya, mcrosier.
reames requested review of this revision.
Herald added a project: LLVM.
This relates to the ongoing effort to support vectorization of multiple exit loops (see D93317 <https://reviews.llvm.org/D93317>).
The previous code assumed that LCSSA phis were always single entry before the vectorizer ran. This was correct, but only because the vectorizer allowed only a single exiting edge. There's nothing in the definition of LCSSA which requires single entry phis.
A common case where this comes up is with a loop with multiple exiting blocks which all reach a common exit block. (e.g. see the test updates)
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D93725
Files:
llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
llvm/test/Transforms/LoopVectorize/loop-form.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D93725.313405.patch
Type: text/x-patch
Size: 14344 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201222/2d898cb9/attachment.bin>
More information about the llvm-commits
mailing list