DJ Delorie wrote:
Opening this up to the gcc public, since I appear to be unable to get
this to work right.
Still no luck defining a working IRA_COVER_CLASSES for m32c. My
latest attempt:
#define IRA_COVER_CLASSES \
{ \
HC_REGS, MEM_REGS, LIM_REG_CLASSES \
}
[ ... ]
I actually got a failure building libgcc.
The first thing I'll note is the CR register class. If I read the
port correctly, it's got 3 members. SP, FP and one non-fixed
allocatable register.
The first thing I'd recommend would be to remove SP from that class.
You can't ever allocate the SP register, so there's litttle point in
including it in the CR class. Removing it may give some of the tiny
register class heuristics a chance to try and avoid CR regs when the
frame pointer is not being eliminated.
Second, you don't generally want the CR class to be the goal class for
reload. ISTM that alternatives which consist solely of CR_REGS ought to
have a '!' prefix in their constraint. Adding that gets me to the same
failure you're seeing building m32cm mallocr.
Jeff