[PATCH] D138748: [VPlan] Summarize recipes used to model inductions.

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Dec 10 09:40:35 PST 2022


fhahn updated this revision to Diff 481868.
fhahn marked an inline comment as done.
fhahn added a comment.

Update comments, also document derived IV.


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,23 @@
 /// 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 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
+///    vector phis for each part.
+///  * VPDerivedIVRecipe: Converts the canonical IV value to the corresponding
+///  value of an IV with different start and step values.
+///  * VPScalarIVStepsRecipe: Generates per-lane scalar values based on a
+///  canonical or derived induction.
+///  * VPWidenPointerInductionRecipe: Generate vector and scalar values for a
+///    pointer induction. Produces either vector phis or scalar values 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.481868.patch
Type: text/x-patch
Size: 1675 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221210/fc00e75c/attachment.bin>


More information about the llvm-commits mailing list