[Bug target/54338] internal compiler error: in find_costs_and_classes, at ira-costs.c:1711
vmakarov at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Aug 31 18:35:00 GMT 2012
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).
More information about the Gcc-bugs
mailing list