diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-21 05:07:37 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-03-21 05:07:37 +0000 |
commit | d1d2af7d413943e01d6a8216c9564d6651ca4474 (patch) | |
tree | 199bbfcaab0678283b684b3453409019e876c0b4 /gcc/tree-ssa-copy.c | |
parent | 4b8bb453c281327a156ca43a429dc3e69943613e (diff) | |
download | gcc-d1d2af7d413943e01d6a8216c9564d6651ca4474.tar.gz |
* tree-pass.h (pass_phi_only_copy_prop): Delete.
(pass_phi_only_cprop): Declare.
* passes.c (init_optimization_passes): Replace pass_phi_only_copy_prop
with phi_only_cprop
* tree-ssa-dom.c (degenerate_phi_result): New function.
(remove_stmt_or_phi, get_lhs_or_phi_result): Likewise.
(get_rhs_or_phi_arg, propagate_rhs_into_lhs): Likewise.
(eliminate_const_or_copy, eliminate_degenerate_phis_1): Likewise.
(eliminate_degenerate_phis): Likewise.
(pass_phi_only_cprop): New pass descriptor.
* tree-ssa-copy.c (init_copy_prop): Lose PHIS_ONLY argument and
support code. Callers updated.
(execute_copy_prop, do_copy_prop): Likewise and corresponding changes.
(store_copy_prop): Likewise.
(do_phi_only_copy_prop, pass_phi_only_copy_prop): Remove.
* gcc.dg/tree-ssa/pr21829.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112242 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-copy.c')
-rw-r--r-- | gcc/tree-ssa-copy.c | 42 |
1 files changed, 6 insertions, 36 deletions
diff --git a/gcc/tree-ssa-copy.c b/gcc/tree-ssa-copy.c index e0e2a4faf1f..ea8a39e6ab8 100644 --- a/gcc/tree-ssa-copy.c +++ b/gcc/tree-ssa-copy.c @@ -843,7 +843,7 @@ copy_prop_visit_phi_node (tree phi) opportunities. */ static void -init_copy_prop (bool phis_only) +init_copy_prop (void) { basic_block bb; @@ -868,7 +868,7 @@ init_copy_prop (bool phis_only) lists of the propagator. */ if (stmt_ends_bb_p (stmt)) DONT_SIMULATE_AGAIN (stmt) = false; - else if (!phis_only && stmt_may_generate_copy (stmt)) + else if (stmt_may_generate_copy (stmt)) DONT_SIMULATE_AGAIN (stmt) = false; else { @@ -1027,10 +1027,10 @@ fini_copy_prop (void) x_53 and x_54 are both copies of x_898. */ static void -execute_copy_prop (bool store_copy_prop, bool phis_only) +execute_copy_prop (bool store_copy_prop) { do_store_copy_prop = store_copy_prop; - init_copy_prop (phis_only); + init_copy_prop (); ssa_propagate (copy_prop_visit_stmt, copy_prop_visit_phi_node); fini_copy_prop (); } @@ -1045,7 +1045,7 @@ gate_copy_prop (void) static unsigned int do_copy_prop (void) { - execute_copy_prop (false, false); + execute_copy_prop (false); return 0; } @@ -1070,36 +1070,6 @@ struct tree_opt_pass pass_copy_prop = 0 /* letter */ }; - -static unsigned int -do_phi_only_copy_prop (void) -{ - execute_copy_prop (false, true); - return 0; -} - -struct tree_opt_pass pass_phi_only_copy_prop = -{ - "phionlycopyprop", /* name */ - gate_copy_prop, /* gate */ - do_phi_only_copy_prop, /* execute */ - NULL, /* sub */ - NULL, /* next */ - 0, /* static_pass_number */ - TV_TREE_COPY_PROP, /* tv_id */ - PROP_ssa | PROP_alias | PROP_cfg, /* properties_required */ - 0, /* properties_provided */ - 0, /* properties_destroyed */ - 0, /* todo_flags_start */ - TODO_cleanup_cfg - | TODO_dump_func - | TODO_ggc_collect - | TODO_verify_ssa - | TODO_update_ssa, /* todo_flags_finish */ - 0 /* letter */ -}; - - static bool gate_store_copy_prop (void) { @@ -1114,7 +1084,7 @@ static unsigned int store_copy_prop (void) { /* If STORE-COPY-PROP is not enabled, we just run regular COPY-PROP. */ - execute_copy_prop (flag_tree_store_copy_prop != 0, false); + execute_copy_prop (flag_tree_store_copy_prop != 0); return 0; } |