Mesa (master): i965/vec4: Don' t dead code eliminate instructions writing the flag.

Matt Turner mattst88 at kemper.freedesktop.org
Mon Mar 24 18:09:08 UTC 2014


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

Author: Matt Turner <mattst88 at gmail.com>
Date:   Tue Mar 11 13:07:42 2014 -0700

i965/vec4: Don't dead code eliminate instructions writing the flag.

A future patch adds support for removing dead writes to the flag
register. This patch simplifies the logic until then.

total instructions in shared programs: 811813 -> 811869 (0.01%)
instructions in affected programs:     3378 -> 3434 (1.66%)

Reviewed-by: Eric Anholt <eric at anholt.net>

---

 src/mesa/drivers/dri/i965/brw_vec4.cpp |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp b/src/mesa/drivers/dri/i965/brw_vec4.cpp
index cb87fec..d07e8c5 100644
--- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
+++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
@@ -356,7 +356,11 @@ vec4_visitor::dead_code_eliminate()
             inst->dst = dst_reg(retype(brw_null_reg(), inst->dst.type));
             break;
          default:
-            inst->remove();
+            if (inst->writes_flag()) {
+               inst->dst = dst_reg(retype(brw_null_reg(), inst->dst.type));
+            } else {
+               inst->remove();
+            }
             break;
          }
          progress = true;




More information about the mesa-commit mailing list