From ca30a5396af8e55bb19746eeb323de7064da6c46 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Fri, 29 Aug 2008 18:41:35 +0200 Subject: cgraph.c (cgraph_remove_node): Do not remove nested nodes. * cgraph.c (cgraph_remove_node): Do not remove nested nodes. * cgraph.h (cgraph_maybe_hot_edge_p): Declare. * ipa-cp.c (n_cloning_candidates): New static variable. (ipcp_print_profile_data, ipcp_function_scale_print): Forward declare. (ipcp_print_all_lattices): Improve debug output. (ipcp_cloning_candidate_p): New function. (ipcp_initialize_node_lattices): Use it. (ipcp_init_stage): Do only analyzis here; prettier debug output. (ipcp_propagate_stage): Prettier debug output. (ipcp_iterate_stage): Initialize latices here; prettier debug output. (ipcp_print_all_structures): Remove. (ipcp_need_redirect_p): Test !n_cloning_candidates. (ipcp_insert_stage): Prettier debug output; call cgraph_remove_unreachable_nodes before propagating. (pass_ipa_cp): Schedule function removal pass. * ipa-inline.c (inline_indirect_intraprocedural_analysis): Better debug output. (cgraph_maybe_hot_edge_p): Move to ... * predict.c (cgraph_maybe_hot_edge_p) ... here. * opts.c (flag_ipa_cp_set, flag_ipa_cp_clone_set): New. (common_handle_option): Set them; enable ipa-cp when profiling. * ipa-prop.c (ipa_print_node_jump_functions): Prettier output. (ipa_print_all_jump_functions): Likewise. (ipa_print_all_tree_maps, ipa_print_node_param_flags): Remove. (ipa_print_node_params, ipa_print_all_params): New. * ipa-prop.h (ipa_print_all_tree_maps, ipa_print_node_param_flags, ipa_print_all_param_flags): Remove. (ipa_print_node_params, ipa_print_all_params): New. From-SVN: r139772 --- gcc/opts.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'gcc/opts.c') diff --git a/gcc/opts.c b/gcc/opts.c index 898f1fb..fbe6756 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -347,7 +347,7 @@ static bool profile_arc_flag_set, flag_profile_values_set; static bool flag_unroll_loops_set, flag_tracer_set; static bool flag_value_profile_transformations_set; static bool flag_peel_loops_set, flag_branch_probabilities_set; -static bool flag_inline_functions_set; +static bool flag_inline_functions_set, flag_ipa_cp_set, flag_ipa_cp_clone_set; /* Functions excluded from profiling. */ @@ -1031,9 +1031,6 @@ decode_options (unsigned int argc, const char **argv) /* We want to crossjump as much as possible. */ set_param_value ("min-crossjump-insns", 1); - - /* Do not perform clonning in ipcp. */ - flag_ipa_cp_clone = 0; } else set_param_value ("min-crossjump-insns", initial_min_crossjump_insns); @@ -1837,6 +1834,11 @@ common_handle_option (size_t scode, const char *arg, int value, flag_value_profile_transformations = value; if (!flag_inline_functions_set) flag_inline_functions = value; + if (!flag_ipa_cp_set) + flag_ipa_cp = value; + if (!flag_ipa_cp_clone_set + && value && flag_ipa_cp) + flag_ipa_cp_clone = value; break; case OPT_fprofile_generate_: @@ -1994,6 +1996,14 @@ common_handle_option (size_t scode, const char *arg, int value, flag_tracer_set = true; break; + case OPT_fipa_cp: + flag_ipa_cp_set = true; + break; + + case OPT_fipa_cp_clone: + flag_ipa_cp_clone_set = true; + break; + case OPT_funroll_loops: flag_unroll_loops_set = true; break; -- cgit v1.1