History log of /external/mesa3d/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.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_copy_propagation.cpp
1e28f55ab7909496d93ab1b552faad17453c10ac 05-Jun-2012 Eric Anholt <eric@anholt.net> i965/fs: Invalidate live intervals after copy propagation.

For copy propgation, we've dropped the use of a GRF in favor of a
(probably later) use of a different GRF. This definitely requires
invalidating intervals.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
dd4282e38fd92c081875da6bce0b2345bd472532 07-Jun-2012 Eric Anholt <eric@anholt.net> i965/fs: Allow copy propagation on uniforms.

This is a big win for savage2, hon and yofrankie. 62 new programs for
savage2/hon get 16-wide mode, along with one for humus demos and two
for tropics. Even a few shaders from tropics see reductions of 15% or
more.

total instructions in shared programs: 216536 -> 207353 (-4.24%)
instructions in affected programs: 123941 -> 114758 (-7.41%)

In benchmarking Tropics, only a .040% +/- 034% performance improvement
was observed (n=90). Rather disappointing, but I was primarily
motivated to do this patch by a regression in the number of 16-wide
shaders compiled after a GRF texturing on IVB patch I'm working on.
Hopefully this helps avoid that regression.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
0c4630bae001139dea42b78cd08157de4d90542b 06-Jun-2012 Eric Anholt <eric@anholt.net> i965/fs: Allow copy propagation with source modifiers.

This shaves a few instructions off of a ton of programs. For 12
shaders from tropics and sanctuary, it's enough reduction in register
pressure to get 16-wide mode. 7 shaders from heroes of newerth and
savage2 are hurt by about 1.1%, where copy propagation of negates ends
up preventing coalescing, but we could regain that by doing dataflow
analysis in our copy propagation.

No significant performance difference in tropics (n=11)

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
458f7f014139deb48a4cf0a9e6bdca3a57d24208 06-Jun-2012 Eric Anholt <eric@anholt.net> i965/fs: Move copy propagation test out to a separate function.

It's going to get more complicated in a moment.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp
d7787adda8006506545256547d8d590a282487af 08-May-2012 Eric Anholt <eric@anholt.net> i965/fs: Add support for copy propagation.

We could do more by handling abs/negate and non-GRF sources, but this is
a good start. Improves tropics performance 0.30% +/- .17% (n=43).

shader-db results:
Total instructions: 208032 -> 207184
60/1246 programs affected (4.8%)
23286 -> 22438 instructions in affected programs (3.6% reduction)

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
/external/mesa3d/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp