From cf9b0b5fce429ec34dbda16f5e284420ac6d0fae Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Fri, 8 Jun 2018 14:14:02 +0200 Subject: [PATCH] Use summaries->get where possible. Small refactoring of multiple calls. 2018-06-08 Martin Liska * ipa-fnsummary.c (dump_ipa_call_summary): Use ::get method. (analyze_function_body): Extract multiple calls of get_create. * ipa-inline-analysis.c (simple_edge_hints): Likewise. * ipa-inline.c (recursive_inlining): Use ::get method. * ipa-inline.h (estimate_edge_growth): Likewise. From-SVN: r261311 --- gcc/ChangeLog | 8 ++++++++ gcc/ipa-fnsummary.c | 14 +++++++------- gcc/ipa-inline-analysis.c | 2 +- gcc/ipa-inline.c | 8 ++++---- gcc/ipa-inline.h | 7 +++---- 5 files changed, 23 insertions(+), 16 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c306be8e60b..d44a78d06b6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2018-06-08 Martin Liska + + * ipa-fnsummary.c (dump_ipa_call_summary): Use ::get method. + (analyze_function_body): Extract multiple calls of get_create. + * ipa-inline-analysis.c (simple_edge_hints): Likewise. + * ipa-inline.c (recursive_inlining): Use ::get method. + * ipa-inline.h (estimate_edge_growth): Likewise. + 2018-06-08 Martin Liska * hsa-common.h (enum hsa_function_kind): Rename HSA_NONE to diff --git a/gcc/ipa-fnsummary.c b/gcc/ipa-fnsummary.c index 8a6c5d0b5d8..e40b537bf61 100644 --- a/gcc/ipa-fnsummary.c +++ b/gcc/ipa-fnsummary.c @@ -850,7 +850,7 @@ dump_ipa_call_summary (FILE *f, int indent, struct cgraph_node *node, } if (!edge->inline_failed) { - ipa_fn_summary *s = ipa_fn_summaries->get_create (callee); + ipa_fn_summary *s = ipa_fn_summaries->get (callee); fprintf (f, "%*sStack frame offset %i, callee self size %i," " callee size %i\n", indent + 2, "", @@ -2363,10 +2363,9 @@ analyze_function_body (struct cgraph_node *node, bool early) } free (body); } - set_hint_predicate (&ipa_fn_summaries->get_create (node)->loop_iterations, - loop_iterations); - set_hint_predicate (&ipa_fn_summaries->get_create (node)->loop_stride, - loop_stride); + ipa_fn_summary *s = ipa_fn_summaries->get_create (node); + set_hint_predicate (&s->loop_iterations, loop_iterations); + set_hint_predicate (&s->loop_stride, loop_stride); scev_finalize (); } FOR_ALL_BB_FN (bb, my_function) @@ -2384,8 +2383,9 @@ analyze_function_body (struct cgraph_node *node, bool early) e->aux = NULL; } } - ipa_fn_summaries->get_create (node)->time = time; - ipa_fn_summaries->get_create (node)->self_size = size; + ipa_fn_summary *s = ipa_fn_summaries->get_create (node); + s->time = time; + s->self_size = size; nonconstant_names.release (); ipa_release_body_info (&fbi); if (opt_for_fn (node->decl, optimize)) diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c index c4f904730e6..2e30a6d15ba 100644 --- a/gcc/ipa-inline-analysis.c +++ b/gcc/ipa-inline-analysis.c @@ -126,7 +126,7 @@ simple_edge_hints (struct cgraph_edge *edge) ? edge->caller->global.inlined_to : edge->caller); struct cgraph_node *callee = edge->callee->ultimate_alias_target (); if (ipa_fn_summaries->get_create (to)->scc_no - && ipa_fn_summaries->get_create (to)->scc_no + && ipa_fn_summaries->get (to)->scc_no == ipa_fn_summaries->get_create (callee)->scc_no && !edge->recursive_p ()) hints |= INLINE_HINT_same_scc; diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index ffde9b9c472..51044b7b612 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -1559,10 +1559,10 @@ recursive_inlining (struct cgraph_edge *edge, fprintf (dump_file, "\n Inlined %i times, " "body grown from size %i to %i, time %f to %f\n", n, - ipa_fn_summaries->get_create (master_clone)->size, - ipa_fn_summaries->get_create (node)->size, - ipa_fn_summaries->get_create (master_clone)->time.to_double (), - ipa_fn_summaries->get_create (node)->time.to_double ()); + ipa_fn_summaries->get (master_clone)->size, + ipa_fn_summaries->get (node)->size, + ipa_fn_summaries->get (master_clone)->time.to_double (), + ipa_fn_summaries->get (node)->time.to_double ()); /* Remove master clone we used for inlining. We rely that clones inlined into master clone gets queued just before master clone so we don't diff --git a/gcc/ipa-inline.h b/gcc/ipa-inline.h index e8ae206d7b7..06bd38e551e 100644 --- a/gcc/ipa-inline.h +++ b/gcc/ipa-inline.h @@ -81,10 +81,9 @@ estimate_edge_size (struct cgraph_edge *edge) static inline int estimate_edge_growth (struct cgraph_edge *edge) { - gcc_checking_assert (ipa_call_summaries->get_create (edge)->call_stmt_size - || !edge->callee->analyzed); - return (estimate_edge_size (edge) - - ipa_call_summaries->get_create (edge)->call_stmt_size); + ipa_call_summary *s = ipa_call_summaries->get_create (edge); + gcc_checking_assert (s->call_stmt_size || !edge->callee->analyzed); + return (estimate_edge_size (edge) - s->call_stmt_size); } /* Return estimated callee runtime increase after inlining -- 2.30.2