flow.c: Reverse Jan Hubicka's patch of 02July2001.
authorJeffrey Oldham <oldham@codesourcery.com>
Thu, 5 Jul 2001 20:54:29 +0000 (20:54 +0000)
committerJeffrey D. Oldham <oldham@gcc.gnu.org>
Thu, 5 Jul 2001 20:54:29 +0000 (20:54 +0000)
2001-07-05  Jeffrey Oldham  <oldham@codesourcery.com>

* flow.c: Reverse Jan Hubicka's patch of 02July2001.
(try_redirect_by_replacing_jump): Reverse updating properly the
count and frequency information.  Reverse removing cc0 setter.
(forwarder_block_p): Reverse fixing for fallthru blocks.

From-SVN: r43788

gcc/ChangeLog
gcc/flow.c

index 9769799897ec520aa779ec3ccef256803950b311..3808c1d87941e3b98dc3f4919744bc84a1598bdc 100644 (file)
@@ -1,3 +1,10 @@
+2001-07-05  Jeffrey Oldham  <oldham@codesourcery.com>
+
+       * flow.c: Reverse Jan Hubicka's patch of 02July2001.
+       (try_redirect_by_replacing_jump): Reverse updating properly the
+       count and frequency information.  Reverse removing cc0 setter.
+       (forwarder_block_p): Reverse fixing for fallthru blocks.
+
 2001-07-05  DJ Delorie  <dj@redhat.com>
 
        * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New.
index 391b4b45c11784cb978127583091b3b3aaac941d..ab1bb7f12fa31fd763f15fbe17c6bdeb9bf1aac7 100644 (file)
@@ -1597,19 +1597,18 @@ static bool
 forwarder_block_p (bb)
      basic_block bb;
 {
-  rtx insn = bb->head;
+  rtx insn;
   if (bb == EXIT_BLOCK_PTR || bb == ENTRY_BLOCK_PTR
       || !bb->succ || bb->succ->succ_next)
     return false;
 
-  while (insn != bb->end)
-    {
-      if (active_insn_p (insn))
-       return false;
-      insn = NEXT_INSN (insn);
-    }
-  return (!active_insn_p (insn)
-         || (GET_CODE (insn) == JUMP_INSN && onlyjump_p (insn)));
+  insn = next_active_insn (bb->head);
+  if (!insn)
+    return false;
+  if (GET_CODE (insn) == CODE_LABEL
+      || (GET_CODE (insn) == JUMP_INSN && onlyjump_p (insn)))
+    return true;
+  return false;
 }
 
 /* Return nonzero if we can reach target from src by falling trought.  */
@@ -1700,8 +1699,6 @@ try_redirect_by_replacing_jump (e, target)
     e->flags = EDGE_FALLTHRU;
   else
     e->flags = 0;
-  e->probability = REG_BR_PROB_BASE;
-  e->count = src->count;
 
   /* Fixup barriers.  */
   barrier = next_nonnote_insn (insn);
@@ -1710,20 +1707,6 @@ try_redirect_by_replacing_jump (e, target)
   else if (!fallthru && GET_CODE (barrier) != BARRIER)
     emit_barrier_after (insn);
 
-  /* In case we've zapped an conditional jump, we need to kill the cc0
-     setter too if available.  */
-#ifdef HAVE_cc0
-  insn = src->end;
-  if (GET_CODE (insn) == JUMP_INSN)
-    insn = prev_nonnote_insn (insn);
-  if (sets_cc0_p (insn))
-    {
-      if (insn == src->end)
-       src->end = PREV_INSN (insn);
-      flow_delete_insn (insn);
-    }
-#endif
-
   if (e->dest != target)
     redirect_edge_succ (e, target);
   return true;
@@ -1783,7 +1766,7 @@ redirect_edge_and_branch (e, target)
       for (j = GET_NUM_ELEM (vec) - 1; j >= 0; --j)
        if (XEXP (RTVEC_ELT (vec, j), 0) == old_label)
          {
-           RTVEC_ELT (vec, j) = gen_rtx_LABEL_REF (Pmode, new_label);
+           RTVEC_ELT (vec, j) = gen_rtx_LABEL_REF (VOIDmode, new_label);
            --LABEL_NUSES (old_label);
            ++LABEL_NUSES (new_label);
          }
@@ -1832,8 +1815,6 @@ redirect_edge_and_branch (e, target)
       if (s)
        {
          s->flags |= e->flags;
-         s->probability += e->probability;
-         s->count += e->count;
          remove_edge (e);
        }
       else