[llvm] [VPlan] Replace VPRegionBlock with explicit CFG before execute (NFCI). (PR #117506)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Wed May 14 06:02:22 PDT 2025
================
@@ -420,13 +443,19 @@ void VPBasicBlock::connectToPredecessors(VPTransformState &State) {
if (ParentLoop && !State.LI->getLoopFor(NewBB))
ParentLoop->addBasicBlockToLoop(NewBB, *State.LI);
+ auto Preds = to_vector(getHierarchicalPredecessors());
+ if (VPBlockUtils::isHeader(this, State.VPDT)) {
+ // There's no block for the latch yet, connect to the preheader only.
+ Preds = {Preds[0]};
+ }
+
// Hook up the new basic block to its predecessors.
- for (VPBlockBase *PredVPBlock : getHierarchicalPredecessors()) {
+ for (VPBlockBase *PredVPBlock : Preds) {
VPBasicBlock *PredVPBB = PredVPBlock->getExitingBasicBlock();
auto &PredVPSuccessors = PredVPBB->getHierarchicalSuccessors();
- BasicBlock *PredBB = CFG.VPBB2IRBB[PredVPBB];
-
- assert(PredBB && "Predecessor basic-block not found building successor.");
+ assert(CFG.VPBB2IRBB.contains(PredVPBB) &&
+ "Predecessor basic-block not found building successor.");
+ BasicBlock *PredBB = CFG.VPBB2IRBB.lookup(PredVPBB);
----------------
fhahn wrote:
Restored, thanks
https://github.com/llvm/llvm-project/pull/117506
More information about the llvm-commits
mailing list