diff options
author | Jeff Law <law@redhat.com> | 2006-03-20 22:07:37 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2006-03-20 22:07:37 -0700 |
commit | e67c25c7381536222d154228d16467320ea1fcf8 (patch) | |
tree | 199bbfcaab0678283b684b3453409019e876c0b4 /gcc/tree-ssa-copy.c | |
parent | 4a282de4b36221c7168bf10ad0dc8836b374cfb8 (diff) | |
download | gcc-e67c25c7381536222d154228d16467320ea1fcf8.zip gcc-e67c25c7381536222d154228d16467320ea1fcf8.tar.gz gcc-e67c25c7381536222d154228d16467320ea1fcf8.tar.bz2 |
tree-pass.h (pass_phi_only_copy_prop): Delete.
* 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.
From-SVN: r112242
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 e0e2a4f..ea8a39e 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; } |