freedreno/ir3: ra stuff
- some misc cleanups that had been accumulating
- calculate RA round-robin target from liveranges, to avoid picking a value that is too high if the vector assignment pass suffers from a lot of fragmentation (which especially becomes a problem with vectorish)
- fix half-reg interference (for a6xx+ merged register file).. previously unnecessary conflicts would prevent RA from picking certain registers that were actually available.
Overall a big improvement in register footprint (a lot of that is the last patch):
total instructions in shared programs: 29602 -> 29836 (0.79%)
instructions in affected programs: 27199 -> 27433 (0.86%)
helped: 99
HURT: 163
total full in shared programs: 2260 -> 1832 (-18.94%)
full in affected programs: 1878 -> 1450 (-22.79%)
helped: 273
HURT: 0
I still want to switch the first RA pass to round-robin, as currently vecN registers are limiting what postsched can do. But I already have a couple other MRs backing up on top of this one, so that will come later.
Edited by Rob Clark