[Mesa-dev] [PATCH] i965/fs: Allow copy propagation on ATTR file registers.

Matt Turner mattst88 at gmail.com
Wed Mar 18 20:30:55 PDT 2015


On Tue, Mar 10, 2015 at 4:18 AM, Kenneth Graunke <kenneth at whitecape.org> wrote:
> This especially helps with NIR because we currently emit MOVs at the top
> of the shader to copy from various ATTR registers to a giant VGRF array
> of all inputs.  (This could potentially be done better, but since
> there's only ever one write to each register, it should be trivial to
> copy propagate away...)
>
> With NIR - only vertex shaders:
> total instructions in shared programs: 3083505 -> 2868128 (-6.98%)
> instructions in affected programs:     2977237 -> 2761860 (-7.23%)
> helped:                                18653
>
> Without NIR - only vertex shaders:
> total instructions in shared programs: 2724564 -> 2708831 (-0.58%)
> instructions in affected programs:     593696 -> 577963 (-2.65%)
> helped:                                3134
>
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
>  src/mesa/drivers/dri/i965/brw_fs.cpp                  | 1 +
>  src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp | 5 ++++-
>  2 files changed, 5 insertions(+), 1 deletion(-)
>
> No apparent Piglit regressions.  Please scrutinize though, I spent very
> little actual thought on this, so I may have missed something stupid.

Looks totally believable to me, but I didn't scrutinize it very well. :)

Reviewed-by: Matt Turner <mattst88 at gmail.com>


More information about the mesa-dev mailing list