From: Eric Anholt Date: Tue, 30 Oct 2012 23:10:14 +0000 (-0700) Subject: i965/fs: Do dead code elimination just after copy propagation. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cf26b4569a2effc59d072ffd2b2bf9b055faab43;p=mesa.git 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 --- diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index 777879e1241..dc2e5a67725 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();