From: Richard Henderson Date: Tue, 24 Jul 2001 00:57:46 +0000 (-0700) Subject: * flow.c (try_simplify_condjump): Use tidy_fallthru_edge. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6a7ca9966bb1501aa57ebd55c6282b3853316104;p=gcc.git * flow.c (try_simplify_condjump): Use tidy_fallthru_edge. From-SVN: r44287 --- 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; }