diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2019-10-25 00:19:09 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2019-10-24 22:19:09 +0000 |
commit | f658ad3002a0afc8aa86d5646ee704921d969ebe (patch) | |
tree | 4d446ea9851921b972691441855d8a4d8dd6b567 /gcc/ipa-inline-analysis.c | |
parent | 90a158075a6b4e26c2e1204c71aa7f49548c5bd7 (diff) | |
download | gcc-f658ad3002a0afc8aa86d5646ee704921d969ebe.zip gcc-f658ad3002a0afc8aa86d5646ee704921d969ebe.tar.gz gcc-f658ad3002a0afc8aa86d5646ee704921d969ebe.tar.bz2 |
cgraphunit.c (symbol_table::process_new_functions): Call ipa_free_size_summary.
* cgraphunit.c (symbol_table::process_new_functions): Call
ipa_free_size_summary.
* ipa-cp.c (ipcp_cloning_candidate_p): Update.
(devirtualization_time_bonus): Update.
(ipcp_propagate_stage): Update.
* ipa-fnsummary.c (ipa_size_summaries): New.
(ipa_fn_summary_alloc): Alloc size summary.
(dump_ipa_call_summary): Update.
(ipa_dump_fn_summary): Update.
(analyze_function_body): Update.
(compute_fn_summary): Likewise.
(ipa_get_stack_frame_offset): New function.
(inline_update_callee_summaries): Do not update frame offsets.
(ipa_merge_fn_summary_after_inlining): Update frame offsets here;
remove call and function summary.
(ipa_update_overall_fn_summary): Update.
(inline_read_section): Update.
(ipa_fn_summary_write): Update.
(ipa_free_fn_summary): Do not remove summaries.
(ipa_free_size_summary): New.
(release summary pass): Also run at WPA.
* ipa-fnsummary.h (ipa_size_summary): Declare.
(ipa_fn_summary): Remove size, self_size, stack_frame_offset,
estimated_self_stack_size.
(ipa_size_summary_t): New type.
(ipa_size_summaries): Declare.
(ipa_free_size_summary): Declare.
(ipa_get_stack_frame_offset): Declare.
* ipa-icf.c (sem_function::merge): Update.
* ipa-inline-analysis.c (estimate_size_after_inlining): Update.
(estimate_growth): Update.
(growth_likely_positive): Update.
(clone_inlined_nodes): Update.
(inline_call): Update.
* ipa-inline.c (caller_growth_limits): Update.
(edge_badness): Update.
(recursive_inlining): Update.
(inline_small_functions): Update.
(inline_to_all_callers_1): Update.
* ipa-prop.h (ipa_edge_args_sum_t): Update comment.
* lto-partition.c (add_symbol_to_partition_1): Update.
(undo_parittion): Update.
From-SVN: r277424
Diffstat (limited to 'gcc/ipa-inline-analysis.c')
-rw-r--r-- | gcc/ipa-inline-analysis.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c index a66af27..8b572a4 100644 --- a/gcc/ipa-inline-analysis.c +++ b/gcc/ipa-inline-analysis.c @@ -161,7 +161,8 @@ do_estimate_edge_time (struct cgraph_edge *edge) /* When caching, update the cache entry. */ if (edge_growth_cache != NULL) { - ipa_fn_summaries->get_create (edge->callee)->min_size = min_size; + ipa_fn_summaries->get (edge->callee->function_symbol ())->min_size + = min_size; edge_growth_cache_entry *entry = edge_growth_cache->get_create (edge); entry->time = time; @@ -265,7 +266,7 @@ estimate_size_after_inlining (struct cgraph_node *node, struct cgraph_edge *edge) { class ipa_call_summary *es = ipa_call_summaries->get (edge); - ipa_fn_summary *s = ipa_fn_summaries->get (node); + ipa_size_summary *s = ipa_size_summaries->get (node); if (!es->predicate || *es->predicate != false) { int size = s->size + estimate_edge_growth (edge); @@ -321,7 +322,7 @@ int estimate_growth (struct cgraph_node *node) { struct growth_data d = { node, false, false, 0 }; - class ipa_fn_summary *info = ipa_fn_summaries->get (node); + class ipa_size_summary *info = ipa_size_summaries->get (node); node->call_for_symbol_and_aliases (do_estimate_growth_1, &d, true); @@ -396,7 +397,7 @@ growth_likely_positive (struct cgraph_node *node, || node->address_taken) return true; - max_callers = ipa_fn_summaries->get (node)->size * 4 / edge_growth + 2; + max_callers = ipa_size_summaries->get (node)->size * 4 / edge_growth + 2; for (e = node->callers; e; e = e->next_caller) { |