From 6a7ca9966bb1501aa57ebd55c6282b3853316104 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 23 Jul 2001 17:57:46 -0700 Subject: [PATCH] * flow.c (try_simplify_condjump): Use tidy_fallthru_edge. From-SVN: r44287 --- gcc/ChangeLog | 4 ++++ gcc/flow.c | 11 ++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b66c8ca601a..ed7a5ae19e2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2001-07-23 Richard Henderson + + * flow.c (try_simplify_condjump): Use tidy_fallthru_edge. + 2001-07-23 Kazu Hirata * config/h8300/h8300-protos.h: Add a prototype for diff --git a/gcc/flow.c b/gcc/flow.c index 12712f26a83..904684a37cd 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -3073,17 +3073,18 @@ try_simplify_condjump (cbranch_block) fprintf (rtl_dump_file, "Simplifying condjump %i around jump %i\n", INSN_UID (cbranch_insn), INSN_UID (jump_block->end)); - /* Success. Update the CFG to match. */ + /* Success. Update the CFG to match. Note that after this point + the edge variable names appear backwards; the redirection is done + this way to preserve edge profile data. */ redirect_edge_succ (cbranch_jump_edge, cbranch_dest_block); redirect_edge_succ (cbranch_fallthru_edge, jump_dest_block); cbranch_jump_edge->flags |= EDGE_FALLTHRU; cbranch_fallthru_edge->flags &= ~EDGE_FALLTHRU; + /* Delete the block with the unconditional jump, and clean up the mess. */ flow_delete_block (jump_block); - /* Selectively unlink the sequence. */ - if (cbranch_jump_edge->src->end != PREV_INSN (cbranch_jump_edge->dest->head)) - flow_delete_insn_chain (NEXT_INSN (cbranch_jump_edge->src->end), - PREV_INSN (cbranch_jump_edge->dest->head)); + tidy_fallthru_edge (cbranch_jump_edge, cbranch_block, cbranch_dest_block); + return true; } -- 2.30.2