flow.c (tidy_fallthru_edge): Don't delete the jump when it's a still-valid conditiona...
authorRichard Henderson <rth@cygnus.com>
Thu, 27 Apr 2000 06:47:16 +0000 (23:47 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Thu, 27 Apr 2000 06:47:16 +0000 (23:47 -0700)
        * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
        a still-valid conditional jump.

From-SVN: r33468

gcc/ChangeLog
gcc/flow.c

index 1d134c0ee305437dbc0be0daca3db0ba72c46caa..0dab3e3827e7be07a8d9082972874b16432caca7 100644 (file)
@@ -1,3 +1,8 @@
+2000-04-26  Richard Henderson  <rth@cygnus.com>
+
+       * flow.c (tidy_fallthru_edge): Don't delete the jump when it's
+       a still-valid conditional jump.
+
 2000-04-26  Richard Henderson  <rth@cygnus.com>
 
        * jump.c (invert_jump): Always invert REG_BR_PROB.  Do it correctly.
index 23402d391204a92bd232f9708c3bdbb171eddb93..39449d31c9f3261b9b48f7729beb5388a4dc46d5 100644 (file)
@@ -2407,7 +2407,9 @@ tidy_fallthru_edge (e, b, c)
      If block B consisted only of this single jump, turn it into a deleted
      note.  */
   q = b->end;
-  if (GET_CODE (q) == JUMP_INSN)
+  if (GET_CODE (q) == JUMP_INSN
+      && (simplejump_p (q)
+         || (b->succ == e && e->succ_next == NULL)))
     {
 #ifdef HAVE_cc0
       /* If this was a conditional jump, we need to also delete