mesa: Add an optimization path to remove use of pointless MOVs.
authorEric Anholt <eric@anholt.net>
Sat, 16 May 2009 08:47:44 +0000 (01:47 -0700)
committerEric Anholt <eric@anholt.net>
Fri, 6 Nov 2009 21:16:49 +0000 (13:16 -0800)
commite4e312d493847e07ced026b93d2b588b8036ae02
tree818a1506a6d37fb672b2f16f18dfb27508d543f2
parentee0a9e6e10060287747d9dd4afead3cbbb168e09
mesa: Add an optimization path to remove use of pointless MOVs.

GLSL code such as:
vec4 result = {0, 1, 0, 0};
gl_FragColor = result;

emits code like:
  0: MOV TEMP[0], CONST[0];
  1: MOV OUTPUT[1], TEMP[0];

and this replaces it with:
  0: MOV TEMP[0], CONST[0];
  1: MOV OUTPUT[1], CONST[0];

Even when the dead code eliminator fails to clean up a now-useless MOV
instruction (since it doesn't do live/dead ranges), this should at reduce
dependencies.
src/mesa/shader/prog_optimize.c