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

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 6 13:34:45 PDT 2025


================
@@ -1224,6 +1224,42 @@ class VPPhiAccessors {
     return getAsRecipe()->getNumOperands();
   }
 
+  /// Returns an interator range over the incoming values.
+  VPUser::const_operand_range incoming_values() const {
+    return make_range(getAsRecipe()->op_begin(),
+                      getAsRecipe()->op_begin() + getNumIncoming());
+  }
+
+  using const_incoming_block_iterator =
+      mapped_iterator<detail::index_iterator,
+                      std::function<const VPBasicBlock *(size_t)>>;
+  using const_incoming_blocks_range =
+      iterator_range<const_incoming_block_iterator>;
+
+  const_incoming_block_iterator incoming_block_begin() const {
+    return const_incoming_block_iterator(
+        detail::index_iterator(0),
+        [this](size_t Idx) { return getIncomingBlock(Idx); });
----------------
fhahn wrote:

Updated to use map_range + index_range, thanks

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


More information about the llvm-commits mailing list