History log of /external/mesa3d/src/mesa/drivers/dri/i965/brw_fs_cse.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a454f8ec6df9334df42249be910cc2d57d913bff 07-Jul-2012 Eric Anholt <eric@anholt.net> i965/fs.h: Refactor tests for instructions modifying a register.

There's one instance of a potential behavior change: propagate_constants may
now propagate into a part of a vgrf after a different part of it was
overwritten by a send that returns multiple registers. I don't think we ever
generate IR that meets that condition, but it's something to note if we bisect
behavior change to this.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_fs_cse.cpp
a4e9b5a768d2d9e59b6054148afb6a6b94c0e4e6 11-May-2012 Kenneth Graunke <kenneth@whitecape.org> i965/fs: Add a local common subexpression elimination pass.

Total instructions: 18210 -> 17836
49/163 programs affected (30.1%)
12888 -> 12514 instructions in affected programs (2.9% reduction)

This reduces Lightsmark's "Scale down filter" shader from 395
instructions to 283, a whopping 28%. It also reduces register pressure
significantly: the SIMD8 program now uses 29 registers instead of 101,
giving us more than enough room for a SIMD16 program.

v2: Add && !inst->conditional_mod to the "skip some instructions" check.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_fs_cse.cpp