Skip to content

freedreno/ir3: ra stuff

Rob Clark requested to merge robclark/mesa:wip/ra-stuff into master
  1. some misc cleanups that had been accumulating
  2. 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)
  3. 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

Merge request reports