------- 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