[Mesa-dev] [PATCH v2 3/4] ra: consider all spillable nodes for spilling

Connor Abbott cwabbott0 at gmail.com
Fri Aug 1 11:57:03 PDT 2014


On Fri, Aug 1, 2014 at 11:51 AM, Eric Anholt <eric at anholt.net> wrote:
> Connor Abbott <cwabbott0 at gmail.com> writes:
>
>> On Thu, Jul 31, 2014 at 1:05 PM, Eric Anholt <eric at anholt.net> wrote:
>>> Connor Abbott <cwabbott0 at gmail.com> writes:
>>>> That's not necessarily true - you could want to spill a trivially
>>>> colored register that interferes with a non trivially colored
>>>> register, especially if the spill cost of the non trivially colored
>>>> register is higher than that of the trivially colored register because
>>>> e.g. the non trivially colored register is used in a loop. Especially,
>>>> I ran into trouble with the varying packing tests in piglit which
>>>> after a few rounds of spilling looked something like:
>>>
>>> If it's trivially colorable, then when you're trying to get a
>>> non-conflicting color for a difficult neighbor (an optimistic-coloring
>>> one near the top of the stack that's triggering the need for spilling),
>>> it's out consideration because it's deeper in the stack.
>>
>> Right... so in that case, can't we just ignore everything on the stack
>> below the node that couldn't be colored in ra_select()?
>
> Yep, that's what the code's doing currently.

No, it's also considering other optimistically colored nodes below the
one that failed on the stack... see patch 3 in v3 of my series, which
changes the code to actually do that.


More information about the mesa-dev mailing list