[llvm] [VPlan] Convert EVL loops to variable-length stepping after dissolution (PR #147222)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 21 03:19:39 PDT 2025
================
@@ -193,6 +193,17 @@ struct VPlanTransforms {
/// Replace loop regions with explicit CFG.
static void dissolveLoopRegions(VPlan &Plan);
+ /// Transform EVL loops to use variable-length stepping after region
+ /// dissolution.
+ ///
+ /// Once loop regions are replaced with explicit CFG, EVL loops can step with
+ /// variable vector lengths instead of fixed lengths. This transformation:
+ /// * EVL-Phi concretization (makes them concrete)
+ /// * Replaces fixed-length stepping (branch-on-cond CanonicalIVInc,
+ /// VectorTripCount) with variable-length stepping (branch-on-cond
+ /// EVLIVInc, TripCount).
+ static void simplifyEVLIVs(VPlan &Plan);
----------------
fhahn wrote:
Not sure if the name is accurate, EVLIVs aren't really simplified, but the canonical IV is replaced by EVL-based phi?
https://github.com/llvm/llvm-project/pull/147222
More information about the llvm-commits
mailing list