nir: Add nir_foreach_block_in_cf_node_reverse
authorKonstantin Seurer <konstantin.seurer@gmail.com>
Wed, 20 Sep 2023 14:32:07 +0000 (16:32 +0200)
committerMarge Bot <emma+marge@anholt.net>
Fri, 22 Sep 2023 10:05:58 +0000 (10:05 +0000)
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23712>

src/.clang-format
src/compiler/nir/nir.h

index 5f6a4c1..0f0916c 100644 (file)
@@ -154,6 +154,7 @@ ForEachMacros:
 
   - nir_foreach_block
   - nir_foreach_block_in_cf_node
+  - nir_foreach_block_in_cf_node_reverse
   - nir_foreach_block_reverse
   - nir_foreach_block_reverse_safe
   - nir_foreach_block_safe
index a3c8127..3a7953e 100644 (file)
@@ -4582,6 +4582,11 @@ nir_block *nir_cf_node_cf_tree_prev(nir_cf_node *node);
         block != nir_cf_node_cf_tree_next(node);            \
         block = nir_block_cf_tree_next(block))
 
+#define nir_foreach_block_in_cf_node_reverse(block, node)  \
+   for (nir_block *block = nir_cf_node_cf_tree_last(node); \
+        block != nir_cf_node_cf_tree_prev(node);           \
+        block = nir_block_cf_tree_prev(block))
+
 /* If the following CF node is an if, this function returns that if.
  * Otherwise, it returns NULL.
  */