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>
* 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_INVALID.
(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,
}
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))
......
......@@ -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;
......
......@@ -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
......
......@@ -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
......
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