diff options
author | Richard Henderson <rth@redhat.com> | 2001-07-23 17:57:46 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2001-07-23 17:57:46 -0700 |
commit | 6a7ca9966bb1501aa57ebd55c6282b3853316104 (patch) | |
tree | 3d6096a1c1859078033ec0892d82157a42989109 /gcc/flow.c | |
parent | 82efa2e52463ab63a7c9d3bb975aa1b6750a29be (diff) | |
download | gcc-6a7ca9966bb1501aa57ebd55c6282b3853316104.zip gcc-6a7ca9966bb1501aa57ebd55c6282b3853316104.tar.gz gcc-6a7ca9966bb1501aa57ebd55c6282b3853316104.tar.bz2 |
* flow.c (try_simplify_condjump): Use tidy_fallthru_edge.
From-SVN: r44287
Diffstat (limited to 'gcc/flow.c')
-rw-r--r-- | gcc/flow.c | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -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; } |