This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Indirect memory addresses vs. lra
- From: Paul Koning <paulkoning at comcast dot net>
- To: Vladimir Makarov <vmakarov at redhat dot com>
- Cc: John Darrington <john at darrington dot wattle dot id dot au>, gcc at gcc dot gnu dot org
- Date: Thu, 8 Aug 2019 12:43:52 -0400
- Subject: Re: Indirect memory addresses vs. lra
- References: <20190804191822.x4hwnfcyplnto3xc@jocasta.intra> <df260cfa-b749-063d-274b-f48d37450d47@redhat.com>
> On Aug 8, 2019, at 12:25 PM, Vladimir Makarov <vmakarov@redhat.com> wrote:
>
>
> On 2019-08-04 3:18 p.m., John Darrington wrote:
>> I'm trying to write a back-end for an architecture (s12z - the ISA you can
>> download from [1]). This arch accepts indirect memory addresses. That is to
>> say, those of the form (mem (mem (...))) and although my TARGET_LEGITIMATE_ADDRESS
>> function returns true for such addresses, LRA insists on reloading them out of
>> existence.
>> ...
> 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"?
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.
paul