Fix -g -O3 -funroll-all-loops irix6 bootstrap failure reported by Kaveh Ghazi.
* unroll.c (unroll_loops): Don't delete named CODE_LABELs. From-SVN: r28048
This commit is contained in:
parent
c3c7ea1f56
commit
570621d5ba
@ -1,3 +1,7 @@
|
||||
Fri Jul 9 19:08:55 1999 Jim Wilson <wilson@cygnus.com>
|
||||
|
||||
* unroll.c (unroll_loops): Don't delete named CODE_LABELs.
|
||||
|
||||
Fri Jul 9 18:54:18 1999 Felix Lee <flee@cygnus.com>
|
||||
|
||||
* config/i960/i960.c (ret_label): Change asm label from "LR:" to
|
||||
|
13
gcc/unroll.c
13
gcc/unroll.c
@ -1262,11 +1262,16 @@ unroll_loop (loop_end, insn_count, loop_start, end_insert_before,
|
||||
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. */
|
||||
/* ??? Don't delete named code labels. They will be deleted when the
|
||||
jump that references them is deleted. Otherwise, we end up deleting
|
||||
them twice, which causes them to completely disappear instead of turn
|
||||
into NOTE_INSN_DELETED_LABEL notes. This in turn causes aborts in
|
||||
dwarfout.c/dwarf2out.c. We could perhaps fix the dwarf*out.c files
|
||||
to handle deleted labels instead. Or perhaps fix DECL_RTL of the
|
||||
associated LABEL_DECL to point to one of the new label instances. */
|
||||
/* ??? Likewise, we can't delete a NOTE_INSN_DELETED_LABEL note. */
|
||||
if (insn != start_label
|
||||
&& ! (GET_CODE (insn) == CODE_LABEL && LABEL_NAME (insn))
|
||||
&& ! (GET_CODE (insn) == NOTE
|
||||
&& NOTE_LINE_NUMBER (insn) == NOTE_INSN_DELETED_LABEL))
|
||||
insn = delete_insn (insn);
|
||||
|
Loading…
Reference in New Issue
Block a user