OSDN Git Service

* ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 2 May 2000 06:35:22 +0000 (06:35 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 2 May 2000 06:35:22 +0000 (06:35 +0000)
        the sequence we're moving, not to merge_bb->head.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@33605 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/ifcvt.c

index 0c27203..b56fa62 100644 (file)
@@ -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.
index d571a42..c1fc951 100644 (file)
@@ -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