This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Dropping of old loop optimizer
- From: <tm_gccmail at mail dot kloo dot net>
- To: Zdenek Dvorak <rakdver at atrey dot karlin dot mff dot cuni dot cz>
- Cc: gcc at gcc dot gnu dot org, m dot hayes at elec dot canterbury dot ac dot nz, rth at redhat dot com,law at redhat dot com, dan at dberlin dot org, jh at suse dot cz
- Date: Wed, 26 Feb 2003 20:33:25 -0800 (PST)
- Subject: Re: Dropping of old loop optimizer
On Wed, 26 Feb 2003 tm_gccmail at mail dot kloo dot net wrote:
> On Thu, 27 Feb 2003, Zdenek Dvorak wrote:
>
> > Hello,
> >
> > > > I would like to know your opinion on this subject. Why I believe old
> > > > loop optimizer should be dropped as soon as possible:
> ...
> > > The "old" loop optimizer does BIV-to-GIV flattening which is important on
> > > processors without double-register addressing modes such as the SH,
> > > MIPS16, Thumb, and a few others.
> > >
> > > Does the new loop optimizer support this feature?
> >
> > no; as I said, anything related to iv's is problem.
>
> Then I personally (and probably most users of the SH) would prefer the old
> loop optimizer be retained until the new loop optimizer supports BIV
> flattening.
>
> This one optimization is extremely important; if we don't have it, the
> compiler will generate a move/shift/add operation for each IV-related
> load/store within the loop, which kills performance.
I forgot to mention that the old loop optimizer also knows not to host
address inheritance out of the loop, which increases register pressure
dramatically.
If the loop optimizer can leave the address calculations inside the
loop, then regmove can simplify it properly...this is very important.
> > Zdenek
>
> Toshi
Toshi