[PATCH] D41835: [MachineCopyPropagation] Extend pass to do COPY source forwarding

via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 2 13:32:03 PST 2018


looking at it again, it’s making more sense: your patch enabled MachineCopyPropagation in the RA pipeline. the pass might have *already* been broken, but it wasn’t running for us, and now it is, so it broke things in that way too.

—escha

> On Feb 2, 2018, at 1:26 PM, gberry at codeaurora.org wrote:
> 
> escha,
>  
> I’m confused by your comment about bundles.  It was known that this patch doesn’t handle forwarding into bundles, but it sounds like to me you are seeing problems with the dead COPY removal part of this pass, which was not intentionally changed by this patch (other than adding a DEBUG statement when it happens).
>  
> -- 
> Geoff Berry
> Employee of Qualcomm Datacenter Technologies, Inc.
> Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm Technologies, Inc.  Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project.
>  
> From: fglaser at apple.com [mailto:fglaser at apple.com] On Behalf Of escha at apple.com
> Sent: Friday, February 2, 2018 4:10 PM
> To: Quentin Colombet <qcolombet at apple.com>
> Cc: Geoff Berry <gberry at codeaurora.org>; reviews+D41835+public+9c1dec7fb6e75ce0 at reviews.llvm.org; Geoff Berry via Phabricator <reviews at reviews.llvm.org>; javed.absar at arm.com; Matthias Braun <matze at braunis.de>; Jonas Paulsson <paulsson at linux.vnet.ibm.com>; tstellar at redhat.com; Matt Arsenault <Matthew.Arsenault at amd.com>; junbuml at codeaurora.org; marina.yatsina at intel.com; wei.ding2 at amd.com; kannan.narayanan at amd.com; nhaehnle at gmail.com; Nemanja Ivanovic <nemanja.i.ibm at gmail.com>; llvm-commits <llvm-commits at lists.llvm.org>; tpr.llvm at botech.co.uk
> Subject: Re: [PATCH] D41835: [MachineCopyPropagation] Extend pass to do COPY source forwarding
>  
>  
> 
> 
>> On Feb 2, 2018, at 12:55 PM, Quentin Colombet <qcolombet at apple.com <mailto:qcolombet at apple.com>> wrote:
>>  
>>  
>> 
>> 
>>> On Feb 2, 2018, at 12:21 PM, escha at apple.com <mailto:escha at apple.com> wrote:
>>>  
>>> I mean, in that case we are likely to have to mark every single opcode (all 12,000 or so) with this requirement. At that point we might as well just opt out of the pass, I think? At least, it feels like a gross hack that papers over the fact that LLVM has changed how register classes work such that our entire approach is no longer valid.
>>>  
>>> Also, it seems very weird to make this constraint-violating behavior *opt-out*. Maybe it should be opt-in, i.e. put doesNotHaveExtraSrcRegAllocReq on all instructions it’s okay for?
>>  
>> That sounds like a better approach to me.
>> After talking with escha, I agree that TableGen is not necessarily expressive enough to model all the constraints that need to be met and I would err on the safe side of being opt-in instead of opt-out.
>  
> this is actually worse than i initially realized. one of our targets is VLIW and is completely broken by this patch, *even if we opt out as described*, because it doesn’t iterate over the operands of a bundle. so for example:
>  
> r3 = COPY foo
> BUNDLE_TYPE_FOO
> <thing that uses r3>
> END
>  
> it believes that r3 is dead because it doesn’t iterate over the bundle operands, so it never sees the use of r3.
>  
> —escha

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180202/766f2669/attachment.html>


More information about the llvm-commits mailing list