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



--- Comment #1 from Steven Bosscher <steven at gcc dot gnu.org> 2013-04-16 
20:35:02 UTC ---

Bug in the selective scheduler, merely exposed by my patch:



Breakpoint 1, fancy_abort (file=0x11017130 "../../trunk/gcc/emit-rtl.c",

line=3840, function=0x110174f8 <add_insn_after_nobb(rtx_def*,

rtx_def*)::__FUNCTION__> "add_insn_after_nobb") at

../../trunk/gcc/diagnostic.c:1177

1177      internal_error ("in %s, at %s:%d", function, trim_filename (file),

line);

(gdb) up

#1  0x00000000103e616c in add_insn_after_nobb (insn=0x3fffb5da6150,

after=0x3fffb5da4e78) at ../../trunk/gcc/emit-rtl.c:3840

3840      gcc_assert (!optimize || !INSN_DELETED_P (after));

(gdb) p after

$1 = (rtx) 0x3fffb5da4e78

(gdb) p debug_rtx(after)

(insn/v 303 30 32 10 (set (reg:DF 165 f37 [421])

        (unspec:DF [

                (mem:DF (reg/f:DI 18 r18 [420]) [2 *a_7(D) S8 A64])

            ] UNSPEC_LDA)) 13 {movdf_advanced}

     (nil))

$2 = void

(gdb) p INSN_DELETED_P (after)

$3 = 1

(gdb)



The selective scheduler is trying to re-emit an insn it had previously

deleted permanently.

Reply via email to