[llvm] [VPlan] Introduce VPIRFlags::getNWFlagsOrNone (NFC) (PR #207176)

Ramkumar Ramachandra via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 14 00:06:56 PDT 2026


================
@@ -4118,15 +4115,15 @@ class VPCurrentIterationPHIRecipe : public VPHeaderPHIRecipe {
 class VPWidenCanonicalIVRecipe : public VPRecipeWithIRFlags {
 public:
   VPWidenCanonicalIVRecipe(VPRegionValue *CanonicalIV,
-                           const VPIRFlags::WrapFlagsTy &Flags = {false, false})
+                           const VPIRFlags::WrapFlagsTy &Flags = {})
       : VPRecipeWithIRFlags(VPRecipeBase::VPWidenCanonicalIVSC, CanonicalIV,
                             CanonicalIV->getType(), Flags) {}
 
   ~VPWidenCanonicalIVRecipe() override = default;
 
   VPWidenCanonicalIVRecipe *clone() override {
     auto *WideCanIV =
-        new VPWidenCanonicalIVRecipe(getCanonicalIV(), getNoWrapFlags());
+        new VPWidenCanonicalIVRecipe(getCanonicalIV(), getNoWrapFlagsOrNone());
----------------
artagnon wrote:

What I meant is that VPIRFlags is fundamentally a union, and cannot have, for example both GEPNoWrapFlags and NoWrapFlags within it as required here:

```cpp
  case InductionDescriptor::IK_PtrInduction:
    return R->replaceAllUsesWith(Builder.createPtrAdd(
        Start, Builder.createOverflowingOp(Instruction::Mul, {Index, Step})));
```

Anyway, reinstated getNoWrapFlags.

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


More information about the llvm-commits mailing list