------- Comment #1 from wilson at gcc dot gnu dot org  2007-05-01 01:53 -------
It dies in recog because of an invalid extended asm insn rtl.  In an asm with 2
or more outputs, we end up with 2 or more copies of the input vector.  These
vectors must be shared.  They are not in this case.

The problem occurs in haifa-sched, in the speculative instruction support.  It
uses copy_rtx to make a copy of an insn when speculatively scheduling it. 
However, copy_rtx does not preserve the special sharing semantics of asm
operands, so the result is a corrupted insn.  There exists a special routine
copy_insn to solve this problem.  So the solution here is to just replace the
copy_rtx call with a copy_insn call.  This works on mainline for this testcase
but is not otherwise tested.


-- 

wilson at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |wilson at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2007-05-01 01:53:27
               date|                            |


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

Reply via email to