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

Connor Abbott cwabbott0 at gmail.com
Fri Aug 1 14:02:02 PDT 2014


On Fri, Aug 1, 2014 at 12:25 PM, Eric Anholt <eric at anholt.net> wrote:
> Connor Abbott <cwabbott0 at gmail.com> writes:
>
>> 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.
>
> Oh, I misread you as saying s/couldn't be colored/first couldn't be
> trivially colored/.  It seems like obviously the behavior we want, to
> me.

Cool, then can you put your r-b on the last two patches of the v3
series so we can push it?


More information about the mesa-dev mailing list