This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix canonicalization of addresses
- From: Eric Botcazou <ebotcazou at adacore dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: "Richard Guenther" <richard dot guenther at gmail dot com>, "Andrew Pinski" <pinskia at gmail dot com>, "Richard Earnshaw" <rearnsha at arm dot com>, "Andrew Haley" <aph at redhat dot com>
- Date: Wed, 7 Jan 2009 11:09:30 +0100
- Subject: Re: [PATCH] Fix canonicalization of addresses
- References: <200812231211.50787.ebotcazou@adacore.com> <200901070748.23315.ebotcazou@adacore.com> <84fc9c000901070119s50a26f8euafc826761942f4ad@mail.gmail.com>
> Ok, I guess I can agree with that one (it makes it more obvious
> what happens). I'll bootstrap & test & apply this.
Thanks. Please remove the obsolete comment in extract_muldiv, see my patch.
What about the canonicalization of offsets just before RTL expansion? Your
2005 patch has de factor changed it and this can be harmful too. I have an
Ada testcase on PowerPC with a lot of consecutive, perturbated multi-dim
accesses
A[i1+1][i2][i3][i4][i5][i6]
A[i1][i2+1][i3][i4][i5][i6]
A[i1][i2][i3+1][i4][i5][i6]
A[i1][i2][i3][i4-1][i5][i6]
and so on for which it's a performance killer at -O2 because RTL CSE is
seriously hampered and cannot factorize all the (base + index) expressions.
The factorization is *optimal* with GCC 4.1, all the accesses use the same
(base + index) expression, only the displacements vary.
> Is there a bugzilla I can reference for the problem?
Andrew?
--
Eric Botcazou