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?

Reply via email to