Mesa (master): i965/fs: Do dead code elimination just after copy propagation.

Eric Anholt anholt at kemper.freedesktop.org
Sun Nov 4 19:58:03 UTC 2012


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

Author: Eric Anholt <eric at anholt.net>
Date:   Tue Oct 30 16:10:14 2012 -0700

i965/fs: Do dead code elimination just after copy propagation.

If we put the register coalescing in between the two, then we end up with code
sequences involving dead writes that the dead code elimination doesn't know
how to remove.  In place of making dead code elimination smart (which we
should do, too), make it less important for the moment.

shader-db results:

total instructions in shared programs: 722240 -> 721275 (-0.13%)
instructions in affected programs:     50573 -> 49608 (-1.91%)

(no shaders regressed).

Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

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

diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 777879e..dc2e5a6 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -1925,10 +1925,10 @@ fs_visitor::run()
 	 progress = opt_algebraic() || progress;
 	 progress = opt_cse() || progress;
 	 progress = opt_copy_propagate() || progress;
+	 progress = dead_code_eliminate() || progress;
 	 progress = register_coalesce() || progress;
 	 progress = register_coalesce_2() || progress;
 	 progress = compute_to_mrf() || progress;
-	 progress = dead_code_eliminate() || progress;
       } while (progress);
 
       remove_dead_constants();




More information about the mesa-commit mailing list