Mesa (master): i965: Reduce register interference checks for changed FS_OPCODE_DISCARD.

Eric Anholt anholt at kemper.freedesktop.org
Mon Oct 11 19:11:55 UTC 2010


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

Author: Eric Anholt <eric at anholt.net>
Date:   Sun Oct 10 12:13:35 2010 -0700

i965: Reduce register interference checks for changed FS_OPCODE_DISCARD.

While I don't know of any performance changes from this (once extra
reg available out of 128), it makes the generated asm a lot cleaner
looking.

---

 src/mesa/drivers/dri/i965/brw_fs.cpp |    7 ++-----
 1 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index f41e878..798c369 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -2706,10 +2706,7 @@ fs_visitor::dead_code_eliminate()
    bool dead[num_vars];
 
    for (int i = 0; i < num_vars; i++) {
-      /* This would be ">=", but FS_OPCODE_DISCARD has a src == dst where
-       * it writes dst then reads it as src.
-       */
-      dead[i] = this->virtual_grf_def[i] > this->virtual_grf_use[i];
+      dead[i] = this->virtual_grf_def[i] >= this->virtual_grf_use[i];
 
       if (dead[i]) {
 	 /* Mark off its interval so it won't interfere with anything. */
@@ -2824,7 +2821,7 @@ fs_visitor::virtual_grf_interferes(int a, int b)
 	      this->virtual_grf_def[b] < this->virtual_grf_use[a]);
    }
 
-   return start <= end;
+   return start < end;
 }
 
 static struct brw_reg brw_reg_from_fs_reg(fs_reg *reg)




More information about the mesa-commit mailing list