gcc-2.95 19990627 irix6 bootstrap fails with "-O3 -funroll-all-loops"
Jim Wilson
wilson@cygnus.com
Thu Jul 1 15:38:00 GMT 1999
Here is a quick fix that should be safe enough for gcc 2.95.
I started a bootstrap to test it, but it will quite a while to complete.
Thu Jul 1 15:20:30 1999 Jim Wilson <wilson@cygnus.com>
* unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes.
Index: unroll.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/unroll.c,v
retrieving revision 1.57
diff -p -r1.57 unroll.c
*** unroll.c 1999/05/05 15:47:48 1.57
--- unroll.c 1999/07/01 22:24:41
*************** unroll_loop (loop_end, insn_count, loop_
*** 1262,1268 ****
insn = NEXT_INSN (copy_start);
while (insn != safety_label)
{
! if (insn != start_label)
insn = delete_insn (insn);
else
insn = NEXT_INSN (insn);
--- 1262,1274 ----
insn = NEXT_INSN (copy_start);
while (insn != safety_label)
{
! /* ??? We can't delete a NOTE_INSN_DELETED_LABEL unless we fix the
! DECL_RTL field of the associated LABEL_DECL to point to (one of)
! the new copies of the label. Otherwise, we hit an abort in
! dwarfout.c/dwarf2out.c. */
! if (insn != start_label
! && ! (GET_CODE (insn) == NOTE
! && NOTE_LINE_NUMBER (insn) == NOTE_INSN_DELETED_LABEL))
insn = delete_insn (insn);
else
insn = NEXT_INSN (insn);
More information about the Gcc-bugs
mailing list