aboutsummaryrefslogtreecommitdiff
path: root/gcc/cfglayout.c
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2002-06-21 12:05:00 -0700
committerJason Thorpe <thorpej@gcc.gnu.org>2002-06-21 19:05:00 +0000
commit31a782981f03d3a5184e12920c1cd3176d904ab4 (patch)
tree98be2ed2c2355e3096a24b83a1f3587c21e93b38 /gcc/cfglayout.c
parentb62cc13a208075e7853d29438eb68cd1456c017d (diff)
downloadgcc-31a782981f03d3a5184e12920c1cd3176d904ab4.zip
gcc-31a782981f03d3a5184e12920c1cd3176d904ab4.tar.gz
gcc-31a782981f03d3a5184e12920c1cd3176d904ab4.tar.bz2
bb-reorder.c (make_reorder_chain_1): Search harder for the vax casesi fallthru edge.
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. From-SVN: r54885
Diffstat (limited to 'gcc/cfglayout.c')
-rw-r--r--gcc/cfglayout.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/gcc/cfglayout.c b/gcc/cfglayout.c
index bd58972..70b7b17 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;
}