SMALL_REGISTER_CLASSES
Jeffrey A Law
law@cygnus.com
Tue Jan 20 14:54:00 GMT 1998
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.
Yup. I understand this problem completely since it came up on the
PA port (there's two register classes which have a single register,
but the other register classes have tons of registers).
Instead of defining SMALL_REGISTER_CLASSES, we came up with
CLASS_LIKELY_SPILLED_P which might be more useful to you.
> I'm loathe to have to define SMALL_REGISTER_CLASSES in general since
> it stomps on many optimisations, but I have a rare case where reload
> has to spill one of the registers mentioned in the RTL. From what
> I've noticed, reload can safely do it, but it won't without
> SMALL_REGISTER_CLASSES defined.
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).
> I suggested to J"orn that SMALL_REGISTER_CLASSES requires a hard regno
> argument. J'orn (amylaar@cygnus.co.uk) wrote:
I suggested this myself a few years back :-) Such a chance would certainly
be interesting.
But I would recommend first looking into other solutions first, mentioning
regs explicitly in RTL is a bad thing
Jeff
More information about the Gcc
mailing list