[llvm] [VPlan] Delete the redundant overflow check for DataAndControlFlowWithoutRuntimeCheck (PR #79825)

via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 19 19:18:07 PST 2024


================
@@ -1140,12 +1125,18 @@ static VPActiveLaneMaskPHIRecipe *addVPLaneMaskPhiAndUpdateExitBranch(
   // original terminator.
   VPRecipeBase *OriginalTerminator = EB->getTerminator();
   Builder.setInsertPoint(OriginalTerminator);
-  auto *InLoopIncrement =
-      Builder.createOverflowingOp(VPInstruction::CanonicalIVIncrementForPart,
-                                  {IncrementValue}, {false, false}, DL);
-  auto *ALM = Builder.createNaryOp(VPInstruction::ActiveLaneMask,
-                                   {InLoopIncrement, TripCount}, DL,
-                                   "active.lane.mask.next");
+
+  auto *InLoopIncrement = CanonicalIVIncrement;
+  // When the loop is guarded by a runtime overflow check for the loop induction
----------------
vfdff wrote:

hi @fhahn 
 Do you mean use **-mllvm -force-tail-folding-style=data-and-control-without-rt-check** to enable **DataAndControlFlowWithoutRuntimeCheck** ? I don't find any change with the option, see https://gcc.godbolt.org/z/M878YbK8d

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


More information about the llvm-commits mailing list