This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: rs6000: load_multiple code
- From: Alan Modra <amodra at gmail dot com>
- To: Paulo Matos <pmatos at broadcom dot com>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Fri, 22 Nov 2013 23:23:22 +1030
- Subject: Re: rs6000: load_multiple code
- Authentication-results: sourceware.org; auth=none
- References: <19EB96622A777C4AB91610E763265F463B86B3 at SJEXCHMB14 dot corp dot ad dot broadcom dot com> <20131122044133 dot GF3588 at bubble dot grove dot modra dot org> <19EB96622A777C4AB91610E763265F463BA3A6 at SJEXCHMB14 dot corp dot ad dot broadcom dot com>
On Fri, Nov 22, 2013 at 09:31:18AM +0000, Paulo Matos wrote:
> > From: Alan Modra [mailto:amodra@gmail.com]
> > On Wed, Nov 20, 2013 at 05:06:13PM +0000, Paulo Matos wrote:
> > > I am looking into how rs6000 implements load multiple code
> > [snip]
> >
> > No pseudos are involved for the destination. See the FAIL in
> > rs6000.md load_multiple.
>
> Right, I missed that bit:
> if (...
> || REGNO (operands[0]) >= 32)
> FAIL;
>
> This will basically never match at expand time then, and will have little, if any, use before register allocation then. Right?
Right. You'll find store_multiple used in function prologues and
load_multiple in epilogues, with -Os if the target supports the string
insns. movmemsi is of more interest in code elsewhere, and you'll see
a comment there about the register allocator. :)
--
Alan Modra
Australia Development Lab, IBM