This is the mail archive of the
mailing list for the GCC project.
Re: Live on Exit renaming.
- From: "Bin.Cheng" <amker dot cheng at gmail dot com>
- To: Ajit Kumar Agarwal <ajit dot kumar dot agarwal at xilinx dot com>
- Cc: Steven Bosscher <stevenb dot gcc at gmail dot com>, "law at redhat dot com" <law at redhat dot com>, Richard Biener <richard dot guenther at gmail dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, Vinod Kathail <vinodk at xilinx dot com>, Shail Aditya Gupta <shailadi at xilinx dot com>, Vidhumouli Hunsigida <vidhum at xilinx dot com>, Nagaraju Mekala <nmekala at xilinx dot com>
- Date: Mon, 6 Jul 2015 13:30:58 +0800
- Subject: Re: Live on Exit renaming.
- Authentication-results: sourceware.org; auth=none
- References: <37378DC5BCD0EE48BA4B082E0B55DFAA41F4116D at XAP-PVEXMBX02 dot xlnx dot xilinx dot com> <CABu31nN=1EER_7JYDCFXp9MaPKsrczQ_iWA33pwgd8pLU2NYrQ at mail dot gmail dot com> <CAHFci28cWUoP=FWCh-Xi8N9oDJr0-sUfp4CzHi8r4ijz0fUEFg at mail dot gmail dot com> <37378DC5BCD0EE48BA4B082E0B55DFAA41F4166F at XAP-PVEXMBX02 dot xlnx dot xilinx dot com> <CAHFci280Nk2wd7WPmj=ZqQmvX20sHUi+AQpt54oGAT8zRsazRg at mail dot gmail dot com> <37378DC5BCD0EE48BA4B082E0B55DFAA41F416A5 at XAP-PVEXMBX02 dot xlnx dot xilinx dot com>
On Mon, Jul 6, 2015 at 1:16 PM, Ajit Kumar Agarwal
> -----Original Message-----
> From: Bin.Cheng [mailto:firstname.lastname@example.org]
> Sent: Monday, July 06, 2015 10:26 AM
> To: Ajit Kumar Agarwal
> Cc: Steven Bosscher; email@example.com; Richard Biener; firstname.lastname@example.org; Vinod Kathail; Shail Aditya Gupta; Vidhumouli Hunsigida; Nagaraju Mekala
> Subject: Re: Live on Exit renaming.
> On Mon, Jul 6, 2015 at 12:02 PM, Ajit Kumar Agarwal <email@example.com> wrote:
>> -----Original Message-----
>> From: Bin.Cheng [mailto:firstname.lastname@example.org]
>> Sent: Monday, July 06, 2015 7:04 AM
>> To: Steven Bosscher
>> Cc: Ajit Kumar Agarwal; email@example.com; Richard Biener;
>> firstname.lastname@example.org; Vinod Kathail; Shail Aditya Gupta; Vidhumouli
>> Hunsigida; Nagaraju Mekala
>> Subject: Re: Live on Exit renaming.
>> On Mon, Jul 6, 2015 at 6:02 AM, Steven Bosscher <email@example.com> wrote:
>>> On Sat, Jul 4, 2015 at 3:45 PM, Ajit Kumar Agarwal wrote:
>>>> I am not sure why the above optimization is not implemented in GCC.
>>>>And thing might have changed. Given the condition GCC does IVO on gimple, unrolling on RTL, there is inconsistency between the two optimizer since IVO >>takes register pressure of IVs into consideration and assumes IVs will take single registers. At least for some cases, splitting live range of IVs results in bad >>code. See PR29256 for more information. As described in the comment, actually I am going to do some experiments disabling such transformation to see >>what happens.
>> The above optimization is implemented as a part of unroller in gimple.
>> There is an unroller pass in rtl which does not have support for this
>>>As far as I understand, fsplit-ivs-in-unroller is a transformation in RTL unroller.
> My mistake. Yes you are right. The fsplit-ivs-in-unroller is a transformation in RTL unroller.
> IVO on gimple doesn't take unrolling into consideration and assume to assign single register for IV candidates. My thinking is that
> Splitting IVs at RTL with the unroller removes the long dependent chains and thus makes the overlapping iterations and better
> Register allocators and there is a chance of movement of independent code that got exposes with split-ivs-in-unroller.
> You have mentioned that splitting of IV candidate reults in bad code. I could see only the positive end of this optimizations.
> Could you please elaborate on the negative end of the fsplit-ivs-in-unroller optimizations as you have mentioned that it results
> In bad code in some cases.
I had pointed to PR29256 in previous message. I also saw such
examples in different benchmarks, and the situation is even worse on
targets supporting auto-increment addressing mode.
> Thanks & Regards
>> optimization. Shouldn't be the fsplit-ivs-in-unroller optimization
>> implemented in the unroller pass of rtl. I am looking at the implementation perspective for implementing the fsplit-ivs-in-unroller optimizations in the unroller rtl pass.
>> Thanks & Regards