From 78eb8231fe8827e28b2b78a875b8978e017da5c2 Mon Sep 17 00:00:00 2001 From: rth Date: Tue, 11 Oct 2005 19:18:24 +0000 Subject: PR tree-opt/24300 * Makefile.in (tree-ssa-dce.o): Depend on CFGLOOP_H. * tree-ssa-dce.c: Include cfgloop.h. (tree_ssa_dce_loop, pass_dce_loop): New. * tree-pass.h (pass_dce_loop): Declare it. * passes.c (init_optimization_passes): Use it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105250 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree-ssa-dce.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'gcc/tree-ssa-dce.c') diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c index 8902d2a2e0a..6ad8cf26e5a 100644 --- a/gcc/tree-ssa-dce.c +++ b/gcc/tree-ssa-dce.c @@ -64,6 +64,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA #include "tree-pass.h" #include "timevar.h" #include "flags.h" +#include "cfgloop.h" static struct stmt_stats { @@ -941,6 +942,13 @@ tree_ssa_dce (void) perform_tree_ssa_dce (/*aggressive=*/false); } +static void +tree_ssa_dce_loop (void) +{ + perform_tree_ssa_dce (/*aggressive=*/false); + free_numbers_of_iterations_estimates (current_loops); +} + static void tree_ssa_cd_dce (void) { @@ -974,6 +982,26 @@ struct tree_opt_pass pass_dce = 0 /* letter */ }; +struct tree_opt_pass pass_dce_loop = +{ + "dceloop", /* name */ + gate_dce, /* gate */ + tree_ssa_dce_loop, /* execute */ + NULL, /* sub */ + NULL, /* next */ + 0, /* static_pass_number */ + TV_TREE_DCE, /* tv_id */ + PROP_cfg | PROP_ssa | PROP_alias, /* properties_required */ + 0, /* properties_provided */ + 0, /* properties_destroyed */ + 0, /* todo_flags_start */ + TODO_dump_func + | TODO_update_ssa_no_phi + | TODO_cleanup_cfg + | TODO_verify_ssa, /* todo_flags_finish */ + 0 /* letter */ +}; + struct tree_opt_pass pass_cd_dce = { "cddce", /* name */ -- cgit v1.2.1