http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54338

--- Comment #2 from Vladimir Makarov <vmakarov at gcc dot gnu.org> 2012-08-31 
18:35:17 UTC ---
IRA can not find super set of GENERAL_REGS and IWMMXT_GR_REGS.  It should not
happen as ALL_REGS exits as the last resort for this.

GCC documentation contains

@findex ALL_REGS
@findex NO_REGS
In general, each register will belong to several classes.  In fact, one
class must be named @code{ALL_REGS} and contain all the registers.  Another
class must be named @code{NO_REGS} and contain no registers.  Often the
union of two classes will be another class; however, this is not required.

Unfortunately, for some reasons ALL_REGS for ARM port does not contain
IWMMXT_GR_REGS, CC_REG, VFPCC_REG, SFP_REG, and AFP_REG.

I think ARM ALL_REGS should contain really all regs.  If this is not possible
for some reasons, we should fix the documentation and I should make a patch for
IRA fixing it in another way.  But I think the right solution would be fixing
ARM ALL_REGS definition (also probably the right cost should be returned by ARM
targets for different combinations of reg classes).

Reply via email to