i965/fs: Add basic-block-level dead code elimination.
authorEric Anholt <eric@anholt.net>
Tue, 9 Apr 2013 00:43:06 +0000 (17:43 -0700)
committerEric Anholt <eric@anholt.net>
Fri, 12 Apr 2013 23:32:12 +0000 (16:32 -0700)
commiteaca8a94e27d5ec13fcbe5158212310292270e51
tree7a711fb91a40dfe8e12478761e59d39d56d39f19
parent36d0fde603015066fce0ff37fd9be609800243e8
i965/fs: Add basic-block-level dead code elimination.

This is a poor substitute for proper global dead code elimination that
could replace both our current paths, but it was very easy to write.  It
particularly helps with Valve's shaders that are translated out of DX
assembly, which has been register allocated and thus have a bunch of
unrelated uses of the same variable (some of which get copy-propagated
from and then left for dead).

shader-db results:
total instructions in shared programs: 1735753 -> 1731698 (-0.23%)
instructions in affected programs:     492620 -> 488565 (-0.82%)

v2: Fix comment typo

Reviewed-by: Matt Turner <mattst88@gmail.com>
src/mesa/drivers/dri/i965/brw_fs.cpp
src/mesa/drivers/dri/i965/brw_fs.h