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

Eric Anholt eric at anholt.net
Fri Aug 1 12:25:44 PDT 2014


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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 818 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20140801/64a9d327/attachment.sig>


More information about the mesa-dev mailing list