Rai, Deepali via llvm-dev
2017-Jul-21 07:18 UTC
[llvm-dev] Is there any pass existing in llvm which does machine copy propogation ?
Hi All, I was looking into MachineCopyPropagationPass.ccp file in llvm, which in first look, looks likes to me doing only redundant copy elimination in same basic block. I am interested in any pass which is doing copy propogation across the basic block in a function. Let me know if any such pass exist ? Thanks, Deepali -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170721/bed5c5f5/attachment.html>
Krzysztof Parzyszek via llvm-dev
2017-Jul-21 14:25 UTC
[llvm-dev] Is there any pass existing in llvm which does machine copy propogation ?
Hexagon has RDFCopy.cpp that does that. It uses RDF framework that is currently under lib/Target/Hexagon, but is meant to be target-independent. See https://reviews.llvm.org/D29295. What target are you interested in? -Krzysztof On 7/21/2017 2:18 AM, Rai, Deepali via llvm-dev wrote:> Hi All, > > I was looking into MachineCopyPropagationPass.ccp file in llvm, which in > first look, looks likes to me doing only redundant copy elimination in > same basic block. > > I am interested in any pass which is doing copy propogation across the > basic block in a function. > > Let me know if any such pass exist ? > > Thanks, > > Deepali > > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
Geoff Berry via llvm-dev
2017-Jul-21 16:57 UTC
[llvm-dev] Is there any pass existing in llvm which does machine copy propogation ?
FWIW, there is also this proposed change https://reviews.llvm.org/D30751 [MachineCopyPropagation] Extend pass to do COPY source forwarding which enhances the MachineCopyPropagation pass to forward copied registers, though it still only operates at the block level. It might be possible to extend this pass to work non-locally to some degree, but that should probably be evaluated against replacing it with RDFCopy once that pass is confirmed to work for all targets. On 7/21/2017 10:25 AM, Krzysztof Parzyszek via llvm-dev wrote:> Hexagon has RDFCopy.cpp that does that. It uses RDF framework that is > currently under lib/Target/Hexagon, but is meant to be > target-independent. See https://reviews.llvm.org/D29295. > > What target are you interested in? > > -Krzysztof > > > On 7/21/2017 2:18 AM, Rai, Deepali via llvm-dev wrote: >> Hi All, >> >> I was looking into MachineCopyPropagationPass.ccp file in llvm, which >> in first look, looks likes to me doing only redundant copy elimination >> in same basic block. >> >> I am interested in any pass which is doing copy propogation across the >> basic block in a function. >> >> Let me know if any such pass exist ? >> >> Thanks, >> >> Deepali >> >> >> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> >-- 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.
Rai, Deepali via llvm-dev
2017-Jul-24 05:32 UTC
[llvm-dev] Is there any pass existing in llvm which does machine copy propogation ?
Thanks Krzysztof for the quick response. I looking for x86 target. Thanks, -Deepali -----Original Message----- From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of Krzysztof Parzyszek via llvm-dev Sent: Friday, July 21, 2017 7:55 PM To: llvm-dev at lists.llvm.org Subject: Re: [llvm-dev] Is there any pass existing in llvm which does machine copy propogation ? Hexagon has RDFCopy.cpp that does that. It uses RDF framework that is currently under lib/Target/Hexagon, but is meant to be target-independent. See https://reviews.llvm.org/D29295. What target are you interested in? -Krzysztof On 7/21/2017 2:18 AM, Rai, Deepali via llvm-dev wrote:> Hi All, > > I was looking into MachineCopyPropagationPass.ccp file in llvm, which > in first look, looks likes to me doing only redundant copy elimination > in same basic block. > > I am interested in any pass which is doing copy propogation across the > basic block in a function. > > Let me know if any such pass exist ? > > Thanks, > > Deepali > > > > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation _______________________________________________ LLVM Developers mailing list llvm-dev at lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
Krzysztof Parzyszek via llvm-dev
2017-Jul-24 13:01 UTC
[llvm-dev] Is there any pass existing in llvm which does machine copy propogation ?
At the moment X86 does not have a register unit for the upper part of EAX (not covered by AX), which makes AX and EAX have the same set of register units. This leads to incorrect results with RDF because writing to AX preserves the upper part of EAX, and this currently cannot be represented. This is somewhat of a known limitation. Adding cc:Quentin: maybe he'll say what he thinks about adding that unit. -Krzysztof On 7/24/2017 12:32 AM, Rai, Deepali via llvm-dev wrote:> Thanks Krzysztof for the quick response. > I looking for x86 target. > > Thanks, > -Deepali > -----Original Message----- > From: llvm-dev [mailto:llvm-dev-bounces at lists.llvm.org] On Behalf Of Krzysztof Parzyszek via llvm-dev > Sent: Friday, July 21, 2017 7:55 PM > To: llvm-dev at lists.llvm.org > Subject: Re: [llvm-dev] Is there any pass existing in llvm which does machine copy propogation ? > > Hexagon has RDFCopy.cpp that does that. It uses RDF framework that is currently under lib/Target/Hexagon, but is meant to be target-independent. See https://reviews.llvm.org/D29295. > > What target are you interested in? > > -Krzysztof > > > On 7/21/2017 2:18 AM, Rai, Deepali via llvm-dev wrote: >> Hi All, >> >> I was looking into MachineCopyPropagationPass.ccp file in llvm, which >> in first look, looks likes to me doing only redundant copy elimination >> in same basic block. >> >> I am interested in any pass which is doing copy propogation across the >> basic block in a function. >> >> Let me know if any such pass exist ? >> >> Thanks, >> >> Deepali >> >> >> >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >> > > -- > Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev >-- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation