[Bug middle-end/37813] assert with IRA_COVER_CLASSES with singleton
vmakarov at redhat dot com
gcc-bugzilla@gcc.gnu.org
Wed Oct 22 13:52:00 GMT 2008
------- Comment #2 from vmakarov at redhat dot com 2008-10-22 13:51 -------
The problem is in that hard regs (like r10) which have class GENERAL_REGS (from
REGNO_REG_CLASS) are translated into ACR_REGS. Such translation results in
wrong register pressure calculation for ACR_REGS and failed assert. IRA
translates classes which are not inside a cover class into the first
intersected cover class and that is ACR_REGS for GENERAL_REGS. We could
translate to the biggest cover class but I am afraid it would be wrong for
other targets, e.g. INT_FLOAT_REGS for x86 would be translated into FLOAT_REGS
which is more costly than GENERAL_REGS.
So the right solution would be correct finding cover class of specific hard
register. I hope I'll make a patch today and submit it for approval.
Thanks for reporting the problem and reducing the test.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37813
More information about the Gcc-bugs
mailing list