This is the mail archive of the
mailing list for the GCC project.
RE: Live on Exit renaming.
- From: Ajit Kumar Agarwal <ajit dot kumar dot agarwal at xilinx dot com>
- To: "Bin.Cheng" <amker dot cheng at gmail 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 05:16:14 +0000
- Subject: RE: Live on Exit renaming.
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=pass (sender IP is 220.127.116.11) smtp.mailfrom=xilinx.com; gcc.gnu.org; dkim=none (message not signed) header.d=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>
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.
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