diff options
author | Jeffrey Oldham <oldham@codesourcery.com> | 2001-07-05 20:54:29 +0000 |
---|---|---|
committer | Jeffrey D. Oldham <oldham@gcc.gnu.org> | 2001-07-05 20:54:29 +0000 |
commit | 35428bb9279f37105de3bc072396cc0e7fd9f3f9 (patch) | |
tree | fe329ef8fc417ef0fb8b9a3eb11bde029ea7f519 /gcc | |
parent | 0259b07a28f451df6f509ac9d0be1cfef134487f (diff) | |
download | gcc-35428bb9279f37105de3bc072396cc0e7fd9f3f9.zip gcc-35428bb9279f37105de3bc072396cc0e7fd9f3f9.tar.gz gcc-35428bb9279f37105de3bc072396cc0e7fd9f3f9.tar.bz2 |
flow.c: Reverse Jan Hubicka's patch of 02July2001.
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/flow.c | 37 |
2 files changed, 16 insertions, 28 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9769799..3808c1d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. @@ -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 |