[PATCH 1/N] Clean-up usage of ipa_fn_summary and ipa_call_summary summaries.

Martin Liška mliska@suse.cz
Fri Jun 15 14:17:00 GMT 2018


Hi.

This is first part of IPA summary conversion clean-up. It removes ::get_create and
uses ::get for ipa-inline related symbol (and call) summaries. I'm planning to
investigate also other summaries.

Patch can bootstrap on x86_64-linux-gnu and survives regression tests.

Ready to be installed?
Martin

gcc/ChangeLog:

2018-06-15  Martin Liska  <mliska@suse.cz>

	* config/i386/i386.c (ix86_can_inline_p): Do not use
        ipa_fn_summaries::get_create.
	* ipa-cp.c (ipcp_cloning_candidate_p): Replace get_create with
        get.
	(devirtualization_time_bonus): Likewise.
	(ipcp_propagate_stage): Likewise.
	* ipa-fnsummary.c (redirect_to_unreachable): Likewise.
	(edge_set_predicate): Likewise.
	(evaluate_conditions_for_known_args): Likewise.
	(evaluate_properties_for_edge): Likewise.
	(ipa_call_summary::reset): Tranform to ...
	(ipa_call_summary::~ipa_call_summary): ... this.
	(ipa_fn_summary::reset): Transform to ...
	(ipa_fn_summary::~ipa_fn_summary): ... this.
	(ipa_fn_summary_t::remove): Rename to ...
	(ipa_fn_summary_t::remove_callees): ... this.
	(ipa_fn_summary_t::duplicate): Use placement new
        instead of memory copy.
	(ipa_call_summary_t::duplicate): Likewise.
	(ipa_call_summary_t::remove): Remove.
	(dump_ipa_call_summary): Change get_create to get.
	(ipa_dump_fn_summary): Dump only when summary exists.
	(analyze_function_body): Use symbol_summary::get instead
        of get_create.
	(compute_fn_summary): Likewise.
	(estimate_edge_devirt_benefit): Likewise.
	(estimate_edge_size_and_time): Likewise.
	(inline_update_callee_summaries): Likewise.
	(remap_edge_change_prob): Likewise.
	(remap_edge_summaries): Likewise.
	(ipa_merge_fn_summary_after_inlining): Likewise.
	(write_ipa_call_summary): Likewise.
	(ipa_fn_summary_write): Likewise.
	(ipa_free_fn_summary): Likewise.
	* ipa-fnsummary.h (struct GTY): Add new ctor and copy ctor.
	(struct ipa_call_summary): Likewise.
	* ipa-icf.c (sem_function::merge): Use symbol_summary::get instead
        of get_create.
	* ipa-inline-analysis.c (do_estimate_edge_time): Likewise.
	(estimate_size_after_inlining): Likewise.
	(estimate_growth): Likewise.
	(growth_likely_positive): Likewise.
	* ipa-inline-transform.c (clone_inlined_nodes): Likewise.
	(inline_call): Likewise.
	* ipa-inline.c (caller_growth_limits): Likewise.
	(can_inline_edge_p): Likewise.
	(can_inline_edge_by_limits_p): Likewise.
	(compute_uninlined_call_time): Likewise.
	(compute_inlined_call_time): Likewise.
	(want_inline_small_function_p): Likewise.
	(edge_badness): Likewise.
	(update_caller_keys): Likewise.
	(update_callee_keys): Likewise.
	(inline_small_functions): Likewise.
	(inline_to_all_callers_1): Likewise.
	(dump_overall_stats): Likewise.
	(early_inline_small_functions): Likewise.
	(early_inliner): Likewise.
	* ipa-profile.c (ipa_propagate_frequency_1): Likewise.
	* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
	* ipa-pure-const.c (malloc_candidate_p): Likewise.
	* ipa-split.c (execute_split_functions): Likewise.
	* symbol-summary.h: Likewise.
	* tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.

gcc/lto/ChangeLog:

2018-06-15  Martin Liska  <mliska@suse.cz>

	* lto-partition.c (add_symbol_to_partition_1): Use symbol_summary::get instead
        of get_create.
	(undo_partition): Likewise.
	(lto_balanced_map): Likewise.
---
 gcc/config/i386/i386.c     |   5 +-
 gcc/ipa-cp.c               |   9 +-
 gcc/ipa-fnsummary.c        | 248 ++++++++++++++++---------------------
 gcc/ipa-fnsummary.h        |  83 ++++++++-----
 gcc/ipa-icf.c              |   3 +-
 gcc/ipa-inline-analysis.c  |  10 +-
 gcc/ipa-inline-transform.c |  12 +-
 gcc/ipa-inline.c           |  82 ++++++------
 gcc/ipa-profile.c          |  25 ++--
 gcc/ipa-prop.c             |   3 +-
 gcc/ipa-pure-const.c       |   4 +-
 gcc/ipa-split.c            |   3 +-
 gcc/lto/lto-partition.c    |   6 +-
 gcc/symbol-summary.h       |  12 ++
 gcc/tree-sra.c             |   3 +-
 15 files changed, 262 insertions(+), 246 deletions(-)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Clean-up-usage-of-ipa_fn_summary-and-ipa_call_summar.patch
Type: text/x-patch
Size: 47289 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20180615/c609cae5/attachment.bin>


More information about the Gcc-patches mailing list