[llvm] [VPlan] Simplify branch on False in VPlan transform (NFC). (PR #140409)
via llvm-commits
llvm-commits at lists.llvm.org
Fri May 30 13:44:56 PDT 2025
================
@@ -561,21 +537,45 @@ void VPlanTransforms::prepareForVectorization(
VPBlockUtils::connectBlocks(Plan.getEntry(), ScalarPH);
Plan.getEntry()->swapSuccessors();
- auto *ScalarLatchTerm = TheLoop->getLoopLatch()->getTerminator();
- // Here we use the same DebugLoc as the scalar loop latch terminator instead
- // of the corresponding compare because they may have ended up with
- // different line numbers and we want to avoid awkward line stepping while
- // debugging. Eg. if the compare has got a line number inside the loop.
+ // If MiddleVPBB has a single successor then the original loop does not exit
+ // via the latch and the single successor must be the scalar preheader.
+ // There's no need to add a runtime check to MiddleVPBB.
+ if (MiddleVPBB->getNumSuccessors() == 1) {
+ assert(MiddleVPBB->getSingleSuccessor() == ScalarPH &&
+ "must have ScalarPH as single successor");
+ return;
+ }
+
+ assert(MiddleVPBB->getNumSuccessors() == 2 && "must have 2 successors");
+
+ // Add a check in the middle block to see if we have completed$ all of the
----------------
ayalz wrote:
```suggestion
// Add a check in the middle block to see if we have completed all of the
```
https://github.com/llvm/llvm-project/pull/140409
More information about the llvm-commits
mailing list