From 2bf86c845a89fce00ccb219adbf6002443b5b1cb Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Tue, 18 Nov 2014 21:44:16 +0100 Subject: ipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn. * ipa-cp.c (ipcp_cloning_candidate_p): Use opt_for_fn. (ipa_value_from_jfunc, ipa_context_from_jfunc): Skip sanity check. (ipa_get_indirect_edge_target_1): Use opt_for_fn. (good_cloning_opportunity_p): Likewise. (ipa-cp gate): Enable ipa-cp with LTO. * ipa-profile.c (ipa_propagate_frequency): Use opt_for_fn. * ipa.c (symbol_table::remove_unreachable_nodes): Always build type inheritance. * ipa-inline-transform.c (inline_transform): Check if there are inlines to apply even at -O0. * cgraphunit.c (cgraph_node::finalize_function): Use opt_for_fn. (analyze_functions): Build type inheritance graph. * ipa-inline.c (can_inline_edge_p): Use opt_for_fn. (want_early_inline_function_p, want_inline_small_function_p): Likewise. (check_callers): Likewise. (edge_badness): Likewise. (inline_small_functions): Always be ready for indirect inlining to happend. (ipa_inline): Always use want_inline_function_to_all_callers_p. (early_inline_small_functions): Use opt_for_fn. * ipa-inline-analysis.c (estimate_function_body_sizes): use opt_for_fn. (estimate_function_body_sizes): Likewise. (compute_inline_parameters): Likewise. (estimate_edge_devirt_benefit): Likewise. (inline_analyze_function): Likewise. * ipa-devirt.c (ipa_devirt): Likewise. (gate): Use in_lto_p. * ipa-prop.c (ipa_func_spec_opts_forbid_analysis_p): Use opt_for_fn. (try_make_edge_direct_virtual_call): Likewise. (update_indirect_edges_after_inlining): Likewise. (ipa_free_all_structures_after_ipa_cp): Add in_lto_p check. * common.opt (findirect-inlining): Turn into optimization. * ipa-pure-const.c (add_new_function): Use opt_for_fn. (pure_const_generate_summary): Likewise. (gate_pure_const): Always enable with in_lto_p. From-SVN: r217737 --- gcc/ipa-profile.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'gcc/ipa-profile.c') diff --git a/gcc/ipa-profile.c b/gcc/ipa-profile.c index 99d1309..340d033 100644 --- a/gcc/ipa-profile.c +++ b/gcc/ipa-profile.c @@ -418,7 +418,8 @@ ipa_propagate_frequency (struct cgraph_node *node) nor about virtuals. */ if (!node->local.local || node->alias - || (flag_devirtualize && DECL_VIRTUAL_P (node->decl))) + || (opt_for_fn (node->decl, flag_devirtualize) + && DECL_VIRTUAL_P (node->decl))) return false; gcc_assert (node->analyzed); if (dump_file && (dump_flags & TDF_DETAILS)) @@ -754,7 +755,7 @@ public: {} /* opt_pass methods: */ - virtual bool gate (function *) { return flag_ipa_profile; } + virtual bool gate (function *) { return flag_ipa_profile || in_lto_p; } virtual unsigned int execute (function *) { return ipa_profile (); } }; // class pass_ipa_profile -- cgit v1.1