mesa: linear scan register allocation for shader programs
authorBrian Paul <brianp@vmware.com>
Fri, 20 Mar 2009 23:08:30 +0000 (17:08 -0600)
committerBrian Paul <brianp@vmware.com>
Fri, 20 Mar 2009 23:15:21 +0000 (17:15 -0600)
commit12256fc2b2e0a54db24210a4b86f6fb5919d0fe8
tree599f840d50eb86e86e8af5bbf7393b035c1db0c2
parentc9caecaffaa6144668a2c732467b49872981b656
mesa: linear scan register allocation for shader programs

This is a check-point commit; not turned on yet.

Use the linear scan register allocation algorithm to re-allocate temporary
registers.  This is done by computing the live intervals for registers and
reallocating temps with that information.

For some shaders this dramatically reduces the number of temp registers
needed.

For the time being we give up on a few cases such as relative-indexed temps
and subroutine calls (but we inline most GLSL functions anyway).
src/mesa/shader/prog_optimize.c