From 35428bb9279f37105de3bc072396cc0e7fd9f3f9 Mon Sep 17 00:00:00 2001 From: Jeffrey Oldham Date: Thu, 5 Jul 2001 20:54:29 +0000 Subject: [PATCH] flow.c: Reverse Jan Hubicka's patch of 02July2001. 2001-07-05 Jeffrey Oldham * 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 | 7 +++++++ gcc/flow.c | 37 +++++++++---------------------------- 2 files changed, 16 insertions(+), 28 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9769799897e..3808c1d8794 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2001-07-05 Jeffrey Oldham + + * 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 * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New. diff --git a/gcc/flow.c b/gcc/flow.c index 391b4b45c11..ab1bb7f12fa 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -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 -- 2.30.2