aboutsummaryrefslogtreecommitdiff
path: root/gcc/toplev.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2001-07-25 01:42:40 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2001-07-24 23:42:40 +0000
commitca9fef16af6d5678e16a3165f7d54ad3fa26c58b (patch)
treed1ee1391800621b2b6ec28beb4ce0ea486728f56 /gcc/toplev.c
parent40fc4e6a9ff481ac5f01a89bd924bf30ad305b78 (diff)
downloadgcc-ca9fef16af6d5678e16a3165f7d54ad3fa26c58b.zip
gcc-ca9fef16af6d5678e16a3165f7d54ad3fa26c58b.tar.gz
gcc-ca9fef16af6d5678e16a3165f7d54ad3fa26c58b.tar.bz2
flow.c (try_simplify_condjump): Avoid duplicated edges.
* flow.c (try_simplify_condjump): Avoid duplicated edges. (verify_flow_info): Check for duplicated edges; clarify error reporting. * flow.c (block_label): Update basic_block_for_insn. (commit_edge_insertions): Call compute_bb_for_insn. * flow.c (purge_dead_edges): Handle conditional jumps and conditional returns too. * flow.c (redirect_edge_and_branch, try_optimize_cfg): Use redirect_edge_succ_nodup (redirect_edge_succ_nodup): New. * basic_block.h (redirect_edge_succ_nodup): Declare. * toplev.c (rest_of_compilation): Rebuild CFG before cfg_cleanup after gcse. From-SVN: r44320
Diffstat (limited to 'gcc/toplev.c')
-rw-r--r--gcc/toplev.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/toplev.c b/gcc/toplev.c
index a7bd5e3..02bb24a 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -3060,6 +3060,8 @@ rest_of_compilation (decl)
tem = tem2 = 0;
timevar_push (TV_JUMP);
rebuild_jump_labels (insns);
+ delete_trivially_dead_insns (insns, max_reg_num (), 0);
+ find_basic_blocks (insns, max_reg_num (), rtl_dump_file);
cleanup_cfg (CLEANUP_EXPENSIVE);
timevar_pop (TV_JUMP);