Mesa (master): intel/fs: Don't emit empty ELSE blocks.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Apr 29 06:50:08 UTC 2019


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

Author: Kenneth Graunke <kenneth at whitecape.org>
Date:   Wed Apr  3 14:24:31 2019 -0700

intel/fs: Don't emit empty ELSE blocks.

While we can clean this up later, it's trivial to not generate the
stupid code in the first place, which saves some optimization work.

Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
Reviewed-by: Matt Turner <mattst88 at gmail.com>

---

 src/intel/compiler/brw_fs_nir.cpp | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/intel/compiler/brw_fs_nir.cpp b/src/intel/compiler/brw_fs_nir.cpp
index 71fe0ff7e2f..526cc13c71a 100644
--- a/src/intel/compiler/brw_fs_nir.cpp
+++ b/src/intel/compiler/brw_fs_nir.cpp
@@ -409,10 +409,10 @@ fs_visitor::nir_emit_if(nir_if *if_stmt)
 
    nir_emit_cf_list(&if_stmt->then_list);
 
-   /* note: if the else is empty, dead CF elimination will remove it */
-   bld.emit(BRW_OPCODE_ELSE);
-
-   nir_emit_cf_list(&if_stmt->else_list);
+   if (!nir_cf_list_is_empty_block(&if_stmt->else_list)) {
+      bld.emit(BRW_OPCODE_ELSE);
+      nir_emit_cf_list(&if_stmt->else_list);
+   }
 
    bld.emit(BRW_OPCODE_ENDIF);
 




More information about the mesa-commit mailing list