[llvm] [VPlan] Add VPIRInstruction, use for exit block live-outs. (PR #100735)
via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 13 06:12:20 PDT 2024
================
@@ -8647,13 +8647,17 @@ static MapVector<PHINode *, VPValue *> collectUsersInExitBlock(
// from scalar loop only.
if (MiddleVPBB->getNumSuccessors() != 2)
return {};
- MapVector<PHINode *, VPValue *> ExitingValuesToFix;
- BasicBlock *ExitBB =
- cast<VPIRBasicBlock>(MiddleVPBB->getSuccessors()[0])->getIRBasicBlock();
+ MapVector<VPIRInstruction *, VPValue *> ExitingValuesToFix;
+ VPBasicBlock *ExitVPBB = cast<VPIRBasicBlock>(MiddleVPBB->getSuccessors()[0]);
BasicBlock *ExitingBB = OrigLoop->getExitingBlock();
- for (PHINode &ExitPhi : ExitBB->phis()) {
- Value *IncomingValue =
- ExitPhi.getIncomingValueForBlock(ExitingBB);
+ for (VPRecipeBase &R : *ExitVPBB) {
+ auto *IR = dyn_cast<VPIRInstruction>(&R);
----------------
ayalz wrote:
```suggestion
auto *ExitIRI = dyn_cast<VPIRInstruction>(&R);
```
or something else more accurate than IR?
https://github.com/llvm/llvm-project/pull/100735
More information about the llvm-commits
mailing list