From ab1310e84d7644e3c66c1160c2f3ede0744ce79d Mon Sep 17 00:00:00 2001 From: Konstantin Seurer Date: Wed, 20 Sep 2023 16:32:07 +0200 Subject: [PATCH] nir: Add nir_foreach_block_in_cf_node_reverse Reviewed-by: Rhys Perry Part-of: --- src/.clang-format | 1 + src/compiler/nir/nir.h | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/.clang-format b/src/.clang-format index 5f6a4c11cef..0f0916c369e 100644 --- a/src/.clang-format +++ b/src/.clang-format @@ -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 diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h index a3c8127d0da..3a7953e8624 100644 --- a/src/compiler/nir/nir.h +++ b/src/compiler/nir/nir.h @@ -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. */