[Mesa-dev] [PATCH 09/10] i965/fs: Add a peephole pass to combine ADD with ADDC/SUBB.

Kenneth Graunke kenneth at whitecape.org
Tue Sep 24 16:13:16 PDT 2013


On 09/24/2013 03:42 PM, Ian Romanick wrote:
> On 09/24/2013 03:38 PM, Matt Turner wrote:
>> On Tue, Sep 24, 2013 at 2:41 PM, Ian Romanick <idr at freedesktop.org> wrote:
>>> For our own edification, we should add some feedback in the
>>> INTEL_DEBUG=perf case.  If there is any case that an ADDC (or SUBB) from
>>> the frontend doesn't get merged with an add, we should generate a perf
>>> warning.  This probably indicates a failing of the optimization pass.
>>
>> The peephole is called for every add emitted after we've seen an ADDC
>> or SUBB, so it's not unexpected for the pass to not change anything.
>>
>> Also, if only the carry is used dead code elimination at the IR level
>> will remove the add, so no chance to peephole.
> 
> Hm... that makes sense.  I was thinking of something at the very end
> that would notice that the ADDC and ADD hadn't been merged and complain.
>  Maybe it would only complain if both the ADDC and ADD survived to the
> end?  Dunno... it was just an idea.

If we detect an ADDC/ADD that could have been merged, we should just
merge them.  If they couldn't have been merged, there's nothing to
complain about...

Essentially, writing a detector for things we haven't optimized is the
same complexity as actually optimizing them.


More information about the mesa-dev mailing list