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

Eric Anholt eric at anholt.net
Mon Aug 4 09:46:01 PDT 2014


Connor Abbott <cwabbott0 at gmail.com> writes:

> 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?

Not really -- I'm saying that we *do* want to consider the other
optimistically colored nodes.  Those ones lower in the stack might
actually be useful to spill, since if spilled they could potentially
make other values trivially colorable, which would change the order of
pushes and might make our node colorable.

-------------- 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/20140804/93c8db89/attachment.sig>


More information about the mesa-dev mailing list