[Mesa-dev] [PATCH 02/15] i965/fs: Don't kill ACP entries due to their generating instruction.
Paul Berry
stereotype441 at gmail.com
Sun Aug 18 17:42:45 PDT 2013
On 18 August 2013 17:06, Kenneth Graunke <kenneth at whitecape.org> wrote:
> On 08/15/2013 10:06 AM, Paul Berry wrote:
>
>> On 12 August 2013 13:11, Kenneth Graunke <kenneth at whitecape.org
>> <mailto:kenneth at whitecape.org>**> wrote:
>>
>> fs_copy_prop_dataflow::setup_**kills() walks through each basic
>> block's
>> instructions, looking for instructions which overwrite registers used
>> in ACP entries.
>>
>> This would be fine, except that it didn't exclude the instructions
>> which generated the ACP entries in the first place. This meant that
>> every copy was killed by its own generating instruction, making the
>> dataflow analysis useless.
>>
>>
>> I don't think this is actually a problem, because the bd[b].kills bits
>> are only used to prevent liveness information from being propagated from
>> bd[b].livein to bd[b].liveout, and the fs_copy_prop_dataflow constructor
>> initializes bd[b].liveout with the set of ACP's that are generated from
>> block b.
>>
>
> It doesn't by the end of the series, but I think that's moot...
Fair point.
>
>
> So the only situation in which your patch would allow liveness
>> information to be propagated from bd[b].livein to bd[b].liveout is for
>> bits in bd[b].liveout that are already set.
>>
>> Or am I misunderstanding things?
>>
>
> I think you're right that this is unnecessary. The user of kill is:
>
> bd[b].liveout[i] =
> bd[b].copy[i] | (bd[b].livein[i] & ~bd[b].kill[i]);
>
> So even though copies are marked as killed, they'll be reintroduced as
> liveout due to the union with the COPY set. With the rest of the bugs in
> the algorithm fixed, dropping this patch makes no difference.
>
> I'm happy to drop it. Would you prefer that?
>
Yeah, I think I have a minor preference for dropping it. But I won't press
the issue.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20130818/9dd971b7/attachment.html>
More information about the mesa-dev
mailing list