This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Indirect memory addresses vs. lra
- From: Segher Boessenkool <segher at kernel dot crashing dot org>
- To: Paul Koning <paulkoning at comcast dot net>
- Cc: Vladimir Makarov <vmakarov at redhat dot com>, John Darrington <john at darrington dot wattle dot id dot au>, gcc at gcc dot gnu dot org
- Date: Thu, 8 Aug 2019 12:21:02 -0500
- Subject: Re: Indirect memory addresses vs. lra
- References: <20190804191822.x4hwnfcyplnto3xc@jocasta.intra> <df260cfa-b749-063d-274b-f48d37450d47@redhat.com> <2B3A4EAB-D69E-4714-8FC4-C25E36B07BFF@comcast.net>
On Thu, Aug 08, 2019 at 12:43:52PM -0400, Paul Koning wrote:
> > On Aug 8, 2019, at 12:25 PM, Vladimir Makarov <vmakarov@redhat.com> wrote:
> > The old reload (reload[1].c) supports such addressing. As modern mainstream architectures have no this kind of addressing, it was not implemented in LRA.
>
> Is LRA only intended for "modern mainstream architectures"?
I sure hope not! But it has only been *used* and *tested* much on such,
so far. Things are designed to work well for modern archs.
> If yes, why is the old reload being deprecated? You can't have it both ways. Unless you want to obsolete all "not modern mainstream architectures" in GCC, it doesn't make sense to get rid of core functionality used by those architectures.
>
> Indirect addressing is a key feature in size-optimized code.
That doesn't mean that LRA has to support it, btw, not necessarily; it
may well be possible to do a good job of this in the later passes?
Maybe postreload, maybe some peepholes, etc.?
Segher