diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 122981b288a2..ebae515e68a1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Mon Jan 7 11:59:34 CET 2002 Jan Hubicka + + * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and + LABEL_NUSES. + 2002-01-07 Graham Stott * config/i386/i386.h: Update copyright date. diff --git a/gcc/unroll.c b/gcc/unroll.c index 5f1560df2014..f9fd669cde72 100644 --- a/gcc/unroll.c +++ b/gcc/unroll.c @@ -2073,14 +2073,16 @@ copy_loop_body (loop, copy_start, copy_end, map, exit_label, last_iteration, copy = emit_jump_insn (pattern); REG_NOTES (copy) = initial_reg_note_copy (REG_NOTES (insn), map); - if (JUMP_LABEL (insn) == start_label && insn == copy_end - && ! last_iteration) + if (JUMP_LABEL (insn)) { - /* Update JUMP_LABEL make invert_jump work correctly. */ JUMP_LABEL (copy) = get_label_from_map (map, CODE_LABEL_NUMBER (JUMP_LABEL (insn))); LABEL_NUSES (JUMP_LABEL (copy))++; + } + if (JUMP_LABEL (insn) == start_label && insn == copy_end + && ! last_iteration) + { /* This is a branch to the beginning of the loop; this is the last insn being copied; and this is not the last iteration.