i965: Avoid generating MOVs for most ir_assignment handling.
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 26 Aug 2011 19:24:43 +0000 (12:24 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 29 Aug 2011 18:39:41 +0000 (11:39 -0700)
commitdc7f449d1ac53a66e6efb56ccf2a5953418a26ca
treedb651ac317ceb717e00fbef62a0a3f3d3dbb3982
parentd28a3bd4bf25157aff5379a003bbf4a66157ed06
i965: Avoid generating MOVs for most ir_assignment handling.

This is a port of vec4_visitor::try_rewrite_rhs_to_dst to fs_visitor.

Not only is this technique less invasive and more robust, it also
generates better code.  Over and above the previous technique, this
reduced instruction count in shader-db by 0.28% on average and 1.4% in
the best case.

In no case did this technique result in more code than the prior method.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_fs.h
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp