Commit cf9b0b5f by Martin Liska Committed by Martin Liska

Use summaries->get where possible. Small refactoring of multiple calls.

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

	* 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
parent 0148358a
2018-06-08 Martin Liska <mliska@suse.cz> 2018-06-08 Martin Liska <mliska@suse.cz>
* 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 <mliska@suse.cz>
* hsa-common.h (enum hsa_function_kind): Rename HSA_NONE to * hsa-common.h (enum hsa_function_kind): Rename HSA_NONE to
HSA_INVALID. HSA_INVALID.
(hsa_function_summary::hsa_function_summary): Use the new enum (hsa_function_summary::hsa_function_summary): Use the new enum
......
...@@ -850,7 +850,7 @@ dump_ipa_call_summary (FILE *f, int indent, struct cgraph_node *node, ...@@ -850,7 +850,7 @@ dump_ipa_call_summary (FILE *f, int indent, struct cgraph_node *node,
} }
if (!edge->inline_failed) 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," fprintf (f, "%*sStack frame offset %i, callee self size %i,"
" callee size %i\n", " callee size %i\n",
indent + 2, "", indent + 2, "",
...@@ -2363,10 +2363,9 @@ analyze_function_body (struct cgraph_node *node, bool early) ...@@ -2363,10 +2363,9 @@ analyze_function_body (struct cgraph_node *node, bool early)
} }
free (body); free (body);
} }
set_hint_predicate (&ipa_fn_summaries->get_create (node)->loop_iterations, ipa_fn_summary *s = ipa_fn_summaries->get_create (node);
loop_iterations); set_hint_predicate (&s->loop_iterations, loop_iterations);
set_hint_predicate (&ipa_fn_summaries->get_create (node)->loop_stride, set_hint_predicate (&s->loop_stride, loop_stride);
loop_stride);
scev_finalize (); scev_finalize ();
} }
FOR_ALL_BB_FN (bb, my_function) FOR_ALL_BB_FN (bb, my_function)
...@@ -2384,8 +2383,9 @@ analyze_function_body (struct cgraph_node *node, bool early) ...@@ -2384,8 +2383,9 @@ analyze_function_body (struct cgraph_node *node, bool early)
e->aux = NULL; e->aux = NULL;
} }
} }
ipa_fn_summaries->get_create (node)->time = time; ipa_fn_summary *s = ipa_fn_summaries->get_create (node);
ipa_fn_summaries->get_create (node)->self_size = size; s->time = time;
s->self_size = size;
nonconstant_names.release (); nonconstant_names.release ();
ipa_release_body_info (&fbi); ipa_release_body_info (&fbi);
if (opt_for_fn (node->decl, optimize)) if (opt_for_fn (node->decl, optimize))
......
...@@ -126,7 +126,7 @@ simple_edge_hints (struct cgraph_edge *edge) ...@@ -126,7 +126,7 @@ simple_edge_hints (struct cgraph_edge *edge)
? edge->caller->global.inlined_to : edge->caller); ? edge->caller->global.inlined_to : edge->caller);
struct cgraph_node *callee = edge->callee->ultimate_alias_target (); struct cgraph_node *callee = edge->callee->ultimate_alias_target ();
if (ipa_fn_summaries->get_create (to)->scc_no 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 == ipa_fn_summaries->get_create (callee)->scc_no
&& !edge->recursive_p ()) && !edge->recursive_p ())
hints |= INLINE_HINT_same_scc; hints |= INLINE_HINT_same_scc;
......
...@@ -1559,10 +1559,10 @@ recursive_inlining (struct cgraph_edge *edge, ...@@ -1559,10 +1559,10 @@ recursive_inlining (struct cgraph_edge *edge,
fprintf (dump_file, fprintf (dump_file,
"\n Inlined %i times, " "\n Inlined %i times, "
"body grown from size %i to %i, time %f to %f\n", n, "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 (master_clone)->size,
ipa_fn_summaries->get_create (node)->size, ipa_fn_summaries->get (node)->size,
ipa_fn_summaries->get_create (master_clone)->time.to_double (), ipa_fn_summaries->get (master_clone)->time.to_double (),
ipa_fn_summaries->get_create (node)->time.to_double ()); ipa_fn_summaries->get (node)->time.to_double ());
/* Remove master clone we used for inlining. We rely that clones inlined /* 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 into master clone gets queued just before master clone so we don't
......
...@@ -81,10 +81,9 @@ estimate_edge_size (struct cgraph_edge *edge) ...@@ -81,10 +81,9 @@ estimate_edge_size (struct cgraph_edge *edge)
static inline int static inline int
estimate_edge_growth (struct cgraph_edge *edge) estimate_edge_growth (struct cgraph_edge *edge)
{ {
gcc_checking_assert (ipa_call_summaries->get_create (edge)->call_stmt_size ipa_call_summary *s = ipa_call_summaries->get_create (edge);
|| !edge->callee->analyzed); gcc_checking_assert (s->call_stmt_size || !edge->callee->analyzed);
return (estimate_edge_size (edge) return (estimate_edge_size (edge) - s->call_stmt_size);
- ipa_call_summaries->get_create (edge)->call_stmt_size);
} }
/* Return estimated callee runtime increase after inlining /* Return estimated callee runtime increase after inlining
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment