aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-optimize.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2010-09-22 12:15:56 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2010-09-22 12:15:56 +0000
commit736fe2d54b355d5d43b3d26b1d40b110a0697b28 (patch)
tree8d4fae775644247a59913ff0ac0e900b30768e6c /gcc/tree-optimize.c
parentbafa9791ac3a741aae72a6efd998b7d36d2c2e62 (diff)
downloadgcc-736fe2d54b355d5d43b3d26b1d40b110a0697b28.zip
gcc-736fe2d54b355d5d43b3d26b1d40b110a0697b28.tar.gz
gcc-736fe2d54b355d5d43b3d26b1d40b110a0697b28.tar.bz2
tree-ssanames.c (release_dead_ssa_names): Do not remove callee edges here.
2010-09-22 Richard Guenther <rguenther@suse.de> * tree-ssanames.c (release_dead_ssa_names): Do not remove callee edges here. * passes.c (init_optimization_passes): Remove early CFG cleanup. * tree-optimize.c (execute_cleanup_cfg_pre_ipa): Remove. (pass_cleanup_cfg): Likewise. (execute_fixup_cfg): Cleanup. * tree-pass.h (pass_cleanup_cfg): Remove. From-SVN: r164522
Diffstat (limited to 'gcc/tree-optimize.c')
-rw-r--r--gcc/tree-optimize.c40
1 files changed, 4 insertions, 36 deletions
diff --git a/gcc/tree-optimize.c b/gcc/tree-optimize.c
index ce18d6f..9487741 100644
--- a/gcc/tree-optimize.c
+++ b/gcc/tree-optimize.c
@@ -149,37 +149,6 @@ struct gimple_opt_pass pass_all_early_optimizations =
}
};
-/* Pass: cleanup the CFG just before expanding trees to RTL.
- This is just a round of label cleanups and case node grouping
- because after the tree optimizers have run such cleanups may
- be necessary. */
-
-static unsigned int
-execute_cleanup_cfg_pre_ipa (void)
-{
- cleanup_tree_cfg ();
- return 0;
-}
-
-struct gimple_opt_pass pass_cleanup_cfg =
-{
- {
- GIMPLE_PASS,
- "cleanup_cfg", /* name */
- NULL, /* gate */
- execute_cleanup_cfg_pre_ipa, /* execute */
- NULL, /* sub */
- NULL, /* next */
- 0, /* static_pass_number */
- TV_NONE, /* tv_id */
- PROP_cfg, /* properties_required */
- 0, /* properties_provided */
- 0, /* properties_destroyed */
- 0, /* todo_flags_start */
- TODO_dump_func /* todo_flags_finish */
- }
-};
-
/* Pass: cleanup the CFG just before expanding trees to RTL.
This is just a round of label cleanups and case node grouping
@@ -260,7 +229,7 @@ execute_free_datastructures (void)
return 0;
}
-/* Pass: fixup_cfg. IPA passes, compilation of earlier functions or inlining
+/* IPA passes, compilation of earlier functions or inlining
might have changed some properties, such as marked functions nothrow,
pure, const or noreturn.
Remove redundant edges and basic blocks, and create new ones if necessary.
@@ -306,7 +275,6 @@ execute_fixup_cfg (void)
if (gimple_in_ssa_p (cfun))
{
todo |= TODO_update_ssa | TODO_cleanup_cfg;
- mark_symbols_for_renaming (stmt);
update_stmt (stmt);
}
}
@@ -316,11 +284,11 @@ execute_fixup_cfg (void)
todo |= TODO_cleanup_cfg;
}
- maybe_clean_eh_stmt (stmt);
+ if (maybe_clean_eh_stmt (stmt)
+ && gimple_purge_dead_eh_edges (bb))
+ todo |= TODO_cleanup_cfg;
}
- if (gimple_purge_dead_eh_edges (bb))
- todo |= TODO_cleanup_cfg;
FOR_EACH_EDGE (e, ei, bb->succs)
e->count = (e->count * count_scale
+ REG_BR_PROB_BASE / 2) / REG_BR_PROB_BASE;