[Bug inline-asm/57299] Inline assembly memory dependencies produce spurious loads, register pressure, compilation failures

pinskia at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed May 15 20:16:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57299

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|---                         |INVALID

--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Chris Mihelich from comment #6)
> I agree with your interpretation in this one sense: GCC appears to be
> assigning registers to the "m" and "=m" values as you suggest.  That makes
> my test case need six registers (not four) instead of the two it really
> needs.  That is the defect I was trying to describe.

Actually it only needs 4 (and not 6) due to holding of the pointer of y and x
can happen with only 2 registers.  And you can use the operands of the m inside
the inline-asm which is why it needs to store the pointer in a register.



More information about the Gcc-bugs mailing list