[Bug target/31684] [4.3 Regression] ICE in get_attr_first_insn, at config/ia64/itanium2.md:1839 at -O2

wilson at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Tue May 1 00:53:00 GMT 2007



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



More information about the Gcc-bugs mailing list