[llvm] [VPlan] Introduce scalar loop header in plan, remove VPLiveOut. (PR #109975)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Sun Oct 27 08:26:45 PDT 2024
================
@@ -8856,21 +8852,9 @@ static void addLiveOutsForFirstOrderRecurrences(
// Start by finding out if middle block branches to scalar preheader, which is
// not a VPIRBasicBlock, unlike Exit block - the other possible successor of
// middle block.
- // TODO: Should be replaced by
- // Plan->getScalarLoopRegion()->getSinglePredecessor() in the future once the
- // scalar region is modeled as well.
- auto *MiddleVPBB = cast<VPBasicBlock>(VectorRegion->getSingleSuccessor());
- VPBasicBlock *ScalarPHVPBB = nullptr;
- if (MiddleVPBB->getNumSuccessors() == 2) {
- // Order is strict: first is the exit block, second is the scalar preheader.
- ScalarPHVPBB = cast<VPBasicBlock>(MiddleVPBB->getSuccessors()[1]);
- } else if (ExitUsersToFix.empty()) {
- ScalarPHVPBB = cast<VPBasicBlock>(MiddleVPBB->getSingleSuccessor());
- } else {
- llvm_unreachable("unsupported CFG in VPlan");
- }
-
+ VPBasicBlock *ScalarPHVPBB = Plan.getScalarPreheader();
VPBuilder ScalarPHBuilder(ScalarPHVPBB);
+ auto *MiddleVPBB = cast<VPBasicBlock>(VectorRegion->getSingleSuccessor());
----------------
fhahn wrote:
Done, thanks!
https://github.com/llvm/llvm-project/pull/109975
More information about the llvm-commits
mailing list