diff options
author | thorpej <thorpej@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-06-21 19:05:00 +0000 |
---|---|---|
committer | thorpej <thorpej@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-06-21 19:05:00 +0000 |
commit | 3160014ec370c150713a15c6c60f96ccbf8d84c0 (patch) | |
tree | 98be2ed2c2355e3096a24b83a1f3587c21e93b38 /gcc/cfglayout.c | |
parent | 94627e4fcc8264d6f8b7015b68d588c476d496fc (diff) | |
download | gcc-3160014ec370c150713a15c6c60f96ccbf8d84c0.tar.gz |
2002-06-21 Richard Henderson <rth@redhat.com>
* bb-reorder.c (make_reorder_chain_1): Search harder for the
vax casesi fallthru edge.
* cfglayout.c (cleanup_unconditional_jumps): Use
redirect_edge_succ_nodup. Do not delete ADDR_VEC insns as dead.
* cfgrtl.c (force_nonfallthru_and_redirect): Place redirection
block after ADDR_VEC.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54885 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfglayout.c')
-rw-r--r-- | gcc/cfglayout.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c index bd589728bdf..70b7b17a7a1 100644 --- a/gcc/cfglayout.c +++ b/gcc/cfglayout.c @@ -608,10 +608,9 @@ verify_insn_chain () } /* Remove any unconditional jumps and forwarder block creating fallthru - edges instead. During BB reordering fallthru edges are not required + edges instead. During BB reordering, fallthru edges are not required to target next basic block in the linear CFG layout, so the unconditional - jumps are not needed. If LOOPS is not null, also update loop structure & - dominators. */ + jumps are not needed. */ static void cleanup_unconditional_jumps () @@ -636,7 +635,7 @@ cleanup_unconditional_jumps () fprintf (rtl_dump_file, "Removing forwarder BB %i\n", bb->index); - redirect_edge_succ (bb->pred, bb->succ->dest); + redirect_edge_succ_nodup (bb->pred, bb->succ->dest); flow_delete_block (bb); bb = prev; } @@ -653,8 +652,6 @@ cleanup_unconditional_jumps () else continue; - /* Cleanup barriers and delete ADDR_VECs in a way as they are belonging - to removed tablejump anyway. */ insn = NEXT_INSN (bb->end); while (insn && (GET_CODE (insn) != NOTE @@ -664,12 +661,6 @@ cleanup_unconditional_jumps () if (GET_CODE (insn) == BARRIER) delete_barrier (insn); - else if (GET_CODE (insn) == JUMP_INSN) - delete_insn_chain (PREV_INSN (insn), insn); - else if (GET_CODE (insn) == CODE_LABEL) - ; - else if (GET_CODE (insn) != NOTE) - abort (); insn = next; } |