ra: Add a callback for selecting a register from what's available.
authorEric Anholt <eric@anholt.net>
Fri, 23 Oct 2015 21:12:27 +0000 (22:12 +0100)
committerEric Anholt <eric@anholt.net>
Tue, 25 Jul 2017 21:44:52 +0000 (14:44 -0700)
commit7a34a0e8903249c41fae06fea22be105caf290df
tree4b774ceff55d48157ecce3732066cda04de561b8
parent3dae034423c5cd0393e773e347a8c847ecd2734d
ra: Add a callback for selecting a register from what's available.

VC4 has had a tension, similar to pre-Sandybridge Intel, where we want to
use low-numbered registers (more parallelism on Intel, fewer delay slots
on vc4), but in order to give instruction scheduling the most freedom to
avoid delays we want to round-robin between registers of the same cost.
Our two heuristics so far have chosen one end or the other of that
tradeoff.

The callback, instead, hands the driver the set of registers that are
available, and the driver gets to make its own choice.  This will be used
in vc4 to round-robin between registers of the same cost, and might be
used in the future for improving bank selection.

Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/util/register_allocate.c
src/util/register_allocate.h