This is the mail archive of the
mailing list for the GCC project.
Re: Awareness of register pressure on strength reduction of induction variables.
- From: "Bin.Cheng" <amker dot cheng at gmail dot com>
- To: Richard Biener <richard dot guenther at gmail dot com>
- Cc: Ajit Kumar Agarwal <ajit dot kumar dot agarwal at xilinx dot com>, Jeff Law <law at redhat dot com>, "vmakarov at redhat dot com" <vmakarov at redhat 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: Sun, 6 Sep 2015 14:46:43 +0800
- Subject: Re: Awareness of register pressure on strength reduction of induction variables.
- Authentication-results: sourceware.org; auth=none
- References: <37378DC5BCD0EE48BA4B082E0B55DFAA429746F6 at XAP-PVEXMBX02 dot xlnx dot xilinx dot com> <CAFiYyc3tPc1hPWefFjtpgFFY8QKqzUfm=dPHG1-LLCveb-Fjjw at mail dot gmail dot com>
On Wed, Sep 2, 2015 at 8:52 PM, Richard Biener
> On Tue, Sep 1, 2015 at 7:57 PM, Ajit Kumar Agarwal
> <firstname.lastname@example.org> wrote:
>> The Global code motion are the important optimization that have an impact on register spills and Fetch. Thus
>> The Global code motion takes into account the increase or decrease of register pressure.
>> Strength Reductions is an important optimization that has an impact on register pressure. The strength reduction
>> Optimizations doesn't take into account the register pressure and especially the strength reduction for induction
>> Variables that are inside the Loops. Loops are the bottleneck for the register pressure and any spill inside the loops
>> Based on strength reduction of induction variables degrades the performance of the Loops.
>> Thus the strength reductions in general and especially the strength reduction for induction variables should take
>> Into account the register pressure based on Live range info.
>> I don't think we do take into account the register pressure for strength reduction optimization in general and especially the
>> Strength reduction based on induction variables.
> We do loop strength reduction as part of induction variable
> optimization and I am not aware that IVO takes
> existing register pressure into account (it does limit the number of
> IVs it creates IIRC).
IIUC, it collects part of existing pressure into account such as
variables defined outside of loop and used in loop. It doesn't take
existing pressure into account such as variables live out via loop's
exit edge, or variables live though loop. It collects variable use
information during scanning for IV, rather than live-ness formula.
>> Thanks & Regards