[Bug rtl-optimization/56571] [4.7/4.8 Regression] ICE in copyprop_hardreg_forward_1, at regcprop.c (insn does not satisfy its constraints !)
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Mar 8 14:49:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56571
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bernds at gcc dot gnu.org,
| |jakub at gcc dot gnu.org,
| |steven at gcc dot gnu.org
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-03-08 14:49:10 UTC ---
Sounds like regrename.c bug. This pass changes:
83: {flags:CCZ=cmp(ax:SI|cx:SI,0);clobber ax:SI;}
instruction (iorsi_3) into:
83: {flags:CCZ=cmp(si:SI|cx:SI,0);clobber r10:SI;}
which of course doesn't work, the pattern has "=r" constraint on the clobber,
and "%0" and "rme" constraints on the comparison operands, so it requires that
the clobber matches one of the registers.
I'm quite surprised not to see any validate_change calls in the whole
regrename.c, how does it ensure that what it changes is actually valid?
More information about the Gcc-bugs
mailing list