We introduced more scratch VGPRs with D76356.
To yield a better occupancy, the CSRs and
the scratch registers were interleaved at a
regular interval.
This patch is to have a balanced allocation of
both CSRs and scratch registers by setting high
cost value for higher indices. This should improve the
cases that ended up with a higher register usage when
one set of VGPRs (either CSR or scratch) is over
allocated than the other.
With D86836 targets can support multiple cost models.
The new cost values will be applied only in the presence
of a calling convention. Otherwise, the default
cost model will be used.
Comment is wrong, kernel *is* a calling convention