[llvm] [VPlan] Add VPPhiAccessors to provide interface for phi recipes (NFC) (PR #138472)

Ramkumar Ramachandra via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 6 13:28:23 PDT 2025


================
@@ -1233,26 +1233,15 @@ class VPPhiAccessors {
                       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); });
-  }
-  const_incoming_block_iterator incoming_block_end() const {
-    return const_incoming_block_iterator(
-        detail::index_iterator(getNumIncoming()),
-        [this](size_t Idx) { return getIncomingBlock(Idx); });
-  }
+  using const_incoming_blocks_range = iterator_range<mapped_iterator<
+      detail::index_iterator, std::function<const VPBasicBlock *(size_t)>>>;
 
   /// Returns an iterator range over the incoming blocks.
   const_incoming_blocks_range incoming_blocks() const {
-    return make_range(incoming_block_begin(), incoming_block_end());
+    std::function<const VPBasicBlock *(size_t)> GetBlock = [this](size_t Idx) {
----------------
artagnon wrote:

Does this not work with llvm::function_ref?

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


More information about the llvm-commits mailing list