diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-10-11 19:18:24 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-10-11 19:18:24 +0000 |
commit | 78eb8231fe8827e28b2b78a875b8978e017da5c2 (patch) | |
tree | 353917f75a114dab0d531ae6c3d4e0f631715ec8 /gcc/tree-ssa-dce.c | |
parent | 154f109a98c70bd195c4f8dd00fa74edd7d531ff (diff) | |
download | gcc-78eb8231fe8827e28b2b78a875b8978e017da5c2.tar.gz |
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
Diffstat (limited to 'gcc/tree-ssa-dce.c')
-rw-r--r-- | gcc/tree-ssa-dce.c | 28 |
1 files changed, 28 insertions, 0 deletions
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 { @@ -942,6 +943,13 @@ tree_ssa_dce (void) } 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) { perform_tree_ssa_dce (/*aggressive=*/optimize >= 2); @@ -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 */ |