This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [trunk] Addition to subreg section of rtl.text.
- From: Richard Sandiford <rsandifo at nildram dot co dot uk>
- To: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- Cc: zadeck at naturalbridge dot com, bonzini at gnu dot org, dj at redhat dot com, gcc at gcc dot gnu dot org, iant at google dot com, law at redhat dot com, rth at redhat dot com
- Date: Mon, 17 Mar 2008 18:35:52 +0000
- Subject: Re: [trunk] Addition to subreg section of rtl.text.
- References: <47DA8A3E.7060002@naturalbridge.com> <87iqzpz7vj.fsf@firetop.home> <m3od9hqs00.fsf@google.com> <47DD409C.1080904@naturalbridge.com> <10803161704.AA11116@vlsi1.ultra.nyu.edu>
Hi Richard,
Thanks for the message.
kenner@vlsi1.ultra.nyu.edu (Richard Kenner) writes:
>> It is seldom necessary to wrap hard registers in @code{subreg}s;
>> such registers would normally reduce to a single @code{reg} rtx.
>
> Are these valid? I know we've gone back and forth, but I thought the
> current position is that SUBREGs of hard regs are only allowed
> transitorily (e.g., during reload), but must be converted into a hard
> reg by the end of the pass.
That's my understanding too as far as insn operands are concerned.
But some backends use things like "(subreg (match_operand ...) ...)";
see config/rs6000/spe.md for an example. We need to define what those
subregs mean when the inner register has been reloaded.
Or I suppose we could say that such define_insns are in error and
use another construct instead.
Richard