[llvm] [LoopVectorize] Enable vectorisation of early exit loops with live-outs (PR #120567)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Sun Jan 5 11:01:20 PST 2025
================
@@ -3662,6 +3665,13 @@ class VPRegionBlock : public VPBlockBase {
/// VPRegionBlock.
VPBlockBase *Exiting;
+ /// Hold the Early Exit block of the SEME region, if one exists.
+ VPBasicBlock *EarlyExit;
+
+ /// If one exists, this keeps track of the vector early mask that triggered
+ /// the early exit.
+ VPValue *VectorEarlyExitCond;
+
/// An indicator whether this region is to generate multiple replicated
----------------
fhahn wrote:
IIUC those are only needed because currently the final values are computed outside VPlan, right?
Could we instead either force a wide IV and extract the desired lane and add the required recipes directly on VPlan-construction?
Or compute the end value for the user directly in VPlan (see #112145 which computes the end values for the resume phis #112147 which removes `fixupIVUsers`)?
https://github.com/llvm/llvm-project/pull/120567
More information about the llvm-commits
mailing list