[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