This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: SMALL_REGISTER_CLASSES
- To: law at cygnus dot com
- Subject: Re: SMALL_REGISTER_CLASSES
- From: "Michael P. Hayes" <michaelh at ongaonga dot chch dot cri dot nz>
- Date: Wed, 21 Jan 1998 11:36:49 +1300
- Cc: "Michael P. Hayes" <michaelh at ongaonga dot chch dot cri dot nz>, egcs at cygnus dot com, amylaar at cygnus dot co dot uk
- References: <199801202139.KAA13941@ongaonga.chch.cri.nz><13995.885334741@hurl.cygnus.com>
Jeffrey A Law writes:
>
> In message <199801202139.KAA13941@ongaonga.chch.cri.nz>you write:
> > Jeffrey A Law writes:
> > The problem I'm having is that while I have many registers, there is
> > one rarely used class that is composed entirely of registers that
> > are explicitly mentioned in the RTL.
> Instead of defining SMALL_REGISTER_CLASSES, we came up with
> CLASS_LIKELY_SPILLED_P which might be more useful to you.
Yeah, I'm using that as well to keep reload happy for another problem
class I have :-(
> Right. Any chance you could rework things so that reload doesn't have
> to spill the register. Or avoid mentioning those regs explicitly in RTL
> (which we ended up doing on the PA for %r1 and %sar).
The class I'm having fun with has four registers, but they are all
either incoming function argument or function return registers.
So far I've managed to get away with not defining
SMALL_REGISTER_CLASSES and modifying order_regs_for_reload to not
include the explicitly mentioned registers in bad_spill_regs.
However, I imagine that I'll get shot in the foot one day....
Michael.