[llvm] [VPlan] Add incoming_[blocks,values] iterators to VPPhiAccessors (NFC) (PR #138472)

Luke Lau via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 6 19:45:39 PDT 2025


================
@@ -238,14 +238,11 @@ void VPPredicator::convertPhisToBlends(VPBasicBlock *VPBB) {
     // optimizations will clean it up.
 
     SmallVector<VPValue *, 2> OperandsWithMask;
-    unsigned NumIncoming = PhiR->getNumIncoming();
-    for (unsigned In = 0; In < NumIncoming; In++) {
-      const VPBasicBlock *Pred = PhiR->getIncomingBlock(In);
-      OperandsWithMask.push_back(PhiR->getIncomingValue(In));
-      VPValue *EdgeMask = getEdgeMask(Pred, VPBB);
+    for (const auto &[InVPV, InVPBB] : PhiR->incoming_values_and_blocks()) {
+      OperandsWithMask.push_back(InVPV);
+      VPValue *EdgeMask = getEdgeMask(InVPBB, VPBB);
       if (!EdgeMask) {
-        assert(In == 0 && "Both null and non-null edge masks found");
----------------
lukel97 wrote:

I guess there's not an easy way to preserve this assert?

https://github.com/llvm/llvm-project/pull/138472


More information about the llvm-commits mailing list