[llvm] [LV] Transform to handle exits in the scalar loop (PR #148626)

David Sherwood via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 10 08:26:46 PST 2025


================
@@ -4255,6 +4255,15 @@ class VPlan {
   /// VPlan is destroyed.
   SmallVector<VPBlockBase *> CreatedBlocks;
 
+  /// The entry block in a vplan, which may be a check block that needs to
+  /// be wired up in the right place with existing check blocks.
+  VPBasicBlock *EarlyExitPreheader = nullptr;
+
+  /// Indicates that an early exit loop will exit the vector loop before an
+  /// uncountable exit condition is reached, and that the scalar loop must
+  /// perform the last few iterations.
+  bool EarlyExitContinuesInScalarLoop = false;
----------------
david-arm wrote:

Wherever possible I think we should try to avoid adding flags like this because I think the VPlan is supposed to "just work" regardless of whatever CFG or recipes you throw at it.

https://github.com/llvm/llvm-project/pull/148626


More information about the llvm-commits mailing list