diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/ifcvt.c | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0c27203bbae..b56fa627b1b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2000-05-01 Richard Henderson <rth@cygnus.com> + * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before + the sequence we're moving, not to merge_bb->head. + +2000-05-01 Richard Henderson <rth@cygnus.com> + * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove reference to alpha/t-linux. (alpha*-*-linux-gnu*): Likewise. diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c index d571a42a9c1..c1fc951a059 100644 --- a/gcc/ifcvt.c +++ b/gcc/ifcvt.c @@ -1935,10 +1935,11 @@ dead_or_predicable (test_bb, merge_bb, other_bb, new_dest, reversep) } /* Move the insns out of MERGE_BB to before the branch. */ - if (end == merge_bb->end) - merge_bb->end = merge_bb->head; if (head != NULL) { + if (end == merge_bb->end) + merge_bb->end = PREV_INSN (head); + head = squeeze_notes (head, end); if (GET_CODE (end) == NOTE && (NOTE_LINE_NUMBER (end) == NOTE_INSN_BLOCK_END |