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).