summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Anholt <[email protected]>2012-10-30 16:10:14 -0700
committerEric Anholt <[email protected]>2012-11-04 11:15:44 -0800
commitcf26b4569a2effc59d072ffd2b2bf9b055faab43 (patch)
tree330ad17bb97b370250eb4783ac313019689876ad
parentd8988f048fd963eeddf33c682d64ebdfaa2de9ae (diff)
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 <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs.cpp2
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 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();