summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/ifcvt.c5
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