diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 29912dfa830..6d9e0266c4e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-04-30 Richard Henderson + + * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes + from the last insn in the sequence. + 2000-04-30 Zack Weinberg * cpplex.c (cpp_idcmp): New function. diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index 33c19183132..b831b3e14d2 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -1927,6 +1927,19 @@ dead_or_predicable (test_bb, merge_bb, other_bb, new_dest, reversep) if (head != NULL) { head = squeeze_notes (head, end); + if (GET_CODE (end) == NOTE + && (NOTE_LINE_NUMBER (end) == NOTE_INSN_BLOCK_END + || NOTE_LINE_NUMBER (end) == NOTE_INSN_BLOCK_BEG + || NOTE_LINE_NUMBER (end) == NOTE_INSN_LOOP_BEG + || NOTE_LINE_NUMBER (end) == NOTE_INSN_LOOP_END + || NOTE_LINE_NUMBER (end) == NOTE_INSN_LOOP_CONT + || NOTE_LINE_NUMBER (end) == NOTE_INSN_LOOP_VTOP)) + { + if (head == end) + return TRUE; + end = PREV_INSN (end); + } + reorder_insns (head, end, PREV_INSN (earliest)); } return TRUE;