[Mesa-dev] [PATCH 31/47] nir/opt_dce: fixup for new foreach_block()

Connor Abbott cwabbott0 at gmail.com
Wed Apr 13 04:35:10 UTC 2016


Signed-off-by: Connor Abbott <cwabbott0 at gmail.com>
---
 src/compiler/nir/nir_opt_dce.c | 33 +++++++++++++--------------------
 1 file changed, 13 insertions(+), 20 deletions(-)

diff --git a/src/compiler/nir/nir_opt_dce.c b/src/compiler/nir/nir_opt_dce.c
index 32436c1..f3da307 100644
--- a/src/compiler/nir/nir_opt_dce.c
+++ b/src/compiler/nir/nir_opt_dce.c
@@ -113,10 +113,8 @@ init_instr(nir_instr *instr, struct exec_list *worklist)
 }
 
 static bool
-init_block_cb(nir_block *block, void *_state)
+init_block(nir_block *block, struct exec_list *worklist)
 {
-   struct exec_list *worklist = (struct exec_list *) _state;
-
    nir_foreach_instr(block, instr)
       init_instr(instr, worklist);
 
@@ -131,27 +129,14 @@ init_block_cb(nir_block *block, void *_state)
 }
 
 static bool
-delete_block_cb(nir_block *block, void *_state)
-{
-   bool *progress = (bool *) _state;
-
-   nir_foreach_instr_safe(block, instr) {
-      if (!instr->pass_flags) {
-         nir_instr_remove(instr);
-         *progress = true;
-      }
-   }
-
-   return true;
-}
-
-static bool
 nir_opt_dce_impl(nir_function_impl *impl)
 {
    struct exec_list *worklist = ralloc(NULL, struct exec_list);
    exec_list_make_empty(worklist);
 
-   nir_foreach_block(impl, init_block_cb, worklist);
+   nir_foreach_block(impl, block) {
+      init_block(block, worklist);
+   }
 
    while (!exec_list_is_empty(worklist)) {
       nir_instr *instr = worklist_pop(worklist);
@@ -161,7 +146,15 @@ nir_opt_dce_impl(nir_function_impl *impl)
    ralloc_free(worklist);
 
    bool progress = false;
-   nir_foreach_block(impl, delete_block_cb, &progress);
+
+   nir_foreach_block(impl, block) {
+      nir_foreach_instr_safe(block, instr) {
+         if (!instr->pass_flags) {
+            nir_instr_remove(instr);
+            progress = true;
+         }
+      }
+   }
 
    if (progress)
       nir_metadata_preserve(impl, nir_metadata_block_index |
-- 
2.5.0



More information about the mesa-dev mailing list