Mesa (master): nir: Allow opt_peephole_select to work on empty blocks.

Eric Anholt anholt at kemper.freedesktop.org
Wed Aug 3 17:59:15 UTC 2016


Module: Mesa
Branch: master
Commit: 9128acfb5781c43abd3ffe3ef74ee1d32138f6bc
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=9128acfb5781c43abd3ffe3ef74ee1d32138f6bc

Author: Eric Anholt <eric at anholt.net>
Date:   Wed Jul 27 17:26:59 2016 -0700

nir: Allow opt_peephole_select to work on empty blocks.

nir_opt_peephole_select has the job of removing IF statements with no side
effects.  However, if the IF statement's successor didn't have any
instructions in it, we were skipping it, which occurred in mupen64 on vc4
with glsl_to_nir enabled:

instructions in affected programs:     6134 -> 4120 (-32.83%)
total uniforms in shared programs: 38268 -> 38219 (-0.13%)

No changes on Haswell shader-db.

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>

---

 src/compiler/nir/nir_opt_peephole_select.c | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/src/compiler/nir/nir_opt_peephole_select.c b/src/compiler/nir/nir_opt_peephole_select.c
index 7fcc71e..633e9f4 100644
--- a/src/compiler/nir/nir_opt_peephole_select.c
+++ b/src/compiler/nir/nir_opt_peephole_select.c
@@ -127,13 +127,6 @@ block_check_for_allowed_instrs(nir_block *block)
 static bool
 nir_opt_peephole_select_block(nir_block *block, void *mem_ctx)
 {
-   /* If the block is empty, then it certainly doesn't have any phi nodes,
-    * so we can skip it.  This also ensures that we do an early skip on the
-    * end block of the function which isn't actually attached to the CFG.
-    */
-   if (exec_list_is_empty(&block->instr_list))
-      return false;
-
    if (nir_cf_node_is_first(&block->cf_node))
       return false;
 




More information about the mesa-commit mailing list