This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: SUBREG and reload.c
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: oyvind dot harboe at zylin dot com
- Cc: gcc at gcc dot gnu dot org
- Date: Mon, 22 Nov 04 07:48:39 EST
- Subject: Re: SUBREG and reload.c
I was puzzled by the code below in reload.c
Why is it necessary to reload a PLUS, but not other
RTL(MULT/XOR/ASHIFTR, etc.), inside a SUBREG?
As is unfortunately the case with many things in reload, the basic answer is
"because that's what works", but a possible explanation is that reload can
create a PLUS when it eliminates things like the frame pointer, so it has to
be able to undo what it did if it makes invalid patterns. All the other
expressions are only there if they were already valid, so they don't need
special treatment.