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

Reply via email to