This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/18251] unable to find a register to spill in class `POINTER_REGS'
- From: "andrewhutchinson at cox dot net" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 13 Mar 2005 04:05:16 -0000
- Subject: [Bug target/18251] unable to find a register to spill in class `POINTER_REGS'
- References: <20041031125117.18251.ralf_corsepius@rtems.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From andrewhutchinson at cox dot net 2005-03-13 04:05 -------
Subject: Re: unable to find a register to spill in class
`POINTER_REGS'
You answered your own question. GCC handles variable moves just like
anything else. Dealing with range of possible values and size etc and
construct appropriate RTL.
GCC does not need this backend define or expand. It is quite happy
working out moves by itself.
The pattern is *only* defined when the target can do a better job -
i.e. when we have a constant byte count - but not otherwise. I have
found it's a really bad idea to second guess compiler optimisations.
>- how about in the case of a variable count = 0 ?
> (or since only constants are handled, it falls back to letting gcc figure it out?)
>
>
>
>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18251