[PATCH] D138748: [VPlan] Summarize recipes used to model inductions.
Florian Hahn via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Dec 11 08:29:10 PST 2022
This revision was automatically updated to reflect the committed changes.
fhahn marked 7 inline comments as done.
Closed by commit rG29e8de5de161: [VPlan] Summarize recipes used to model inductions (NFC). (authored by fhahn).
Changed prior to commit:
https://reviews.llvm.org/D138748?vs=481868&id=481910#toc
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D138748/new/
https://reviews.llvm.org/D138748
Files:
llvm/lib/Transforms/Vectorize/VPlan.h
Index: llvm/lib/Transforms/Vectorize/VPlan.h
===================================================================
--- llvm/lib/Transforms/Vectorize/VPlan.h
+++ llvm/lib/Transforms/Vectorize/VPlan.h
@@ -1129,6 +1129,25 @@
/// phis for first order recurrences, pointer inductions and reductions. The
/// start value is the first operand of the recipe and the incoming value from
/// the backedge is the second operand.
+///
+/// Inductions are modeled using the following sub-classes:
+/// * VPCanonicalIVPHIRecipe: Canonical scalar induction of the vector loop,
+/// starting at a specified value (zero for the main vector loop, the resume
+/// value for the epilogue vector loop) and stepping by 1. The induction
+/// controls exiting of the vector loop by comparing against the vector trip
+/// count. Produces a single scalar PHI for the induction value per
+/// iteration.
+/// * VPWidenIntOrFpInductionRecipe: Generates vector values for integer and
+/// floating point inductions with arbitrary start and step values. Produces
+/// a vector PHI per-part.
+/// * VPDerivedIVRecipe: Converts the canonical IV value to the corresponding
+/// value of an IV with different start and step values. Produces a single
+/// scalar value per iteration
+/// * VPScalarIVStepsRecipe: Generates scalar values per-lane based on a
+/// canonical or derived induction.
+/// * VPWidenPointerInductionRecipe: Generate vector and scalar values for a
+/// pointer induction. Produces either a vector PHI per-part or scalar values
+/// per-lane based on the canonical induction.
class VPHeaderPHIRecipe : public VPRecipeBase, public VPValue {
protected:
VPHeaderPHIRecipe(unsigned char VPVID, unsigned char VPDefID, PHINode *Phi,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D138748.481910.patch
Type: text/x-patch
Size: 1762 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221211/3249af9e/attachment.bin>
More information about the llvm-commits
mailing list