ra: optimistically color only one node at a time
authorConnor Abbott <cwabbott0@gmail.com>
Fri, 1 Aug 2014 01:57:23 +0000 (18:57 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 13 Aug 2014 18:43:37 +0000 (11:43 -0700)
commite78a01d5e6f77e075fe667a0f0ccb10d89c0dd58
tree6b42ae1a5abcde7020119e4a483100bbcc46ac30
parent03f4084d28d8a6cd271cad58f5148e1127f83757
ra: optimistically color only one node at a time

Before, when we encountered a situation where we had to optimistically
color a node, we would immediately give up and push all the remaining
nodes on the stack in the order of their index - which is a random, and
potentially not optimal, order. Instead, choose one node to
optimistically color in ra_select(), and then once we've optimistically
colored it, keep on going as normal in the hopes that we've opened up
more avenues for the normal select phase to make progress. In cases with
high register pressure, this helps make the order we push things on the
stack much better, and therefore increase the chance that we can allocate
successfully.

total instructions in shared programs: 4545447 -> 4545401 (-0.00%)
instructions in affected programs:     1353 -> 1307 (-3.40%)
GAINED:                                124
LOST:                                  6

Signed-off-by: Connor Abbott <connor.abbott@intel.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/program/register_allocate.c