Commit 172e74fa by Martin Jambor Committed by Martin Jambor

re PR middle-end/54394 (fatigue2 -flto run time regression)

2012-08-31  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/54394
	* ipa-inline-analysis.c (estimate_function_body_sizes): Compute
	dominance info and loops whenever optimizing.

From-SVN: r190831
parent 2c905502
2012-08-31 Martin Jambor <mjambor@suse.cz>
PR middle-end/54394
* ipa-inline-analysis.c (estimate_function_body_sizes): Compute
dominance info and loops whenever optimizing.
2012-08-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 2012-08-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
Richard Earnshaw <richard.earnshaw@arm.com> Richard Earnshaw <richard.earnshaw@arm.com>
......
...@@ -2102,6 +2102,11 @@ estimate_function_body_sizes (struct cgraph_node *node, bool early) ...@@ -2102,6 +2102,11 @@ estimate_function_body_sizes (struct cgraph_node *node, bool early)
info->conds = 0; info->conds = 0;
info->entry = 0; info->entry = 0;
if (optimize && !early)
{
calculate_dominance_info (CDI_DOMINATORS);
loop_optimizer_init (LOOPS_NORMAL | LOOPS_HAVE_RECORDED_EXITS);
}
if (dump_file) if (dump_file)
fprintf (dump_file, "\nAnalyzing function body size: %s\n", fprintf (dump_file, "\nAnalyzing function body size: %s\n",
...@@ -2270,9 +2275,6 @@ estimate_function_body_sizes (struct cgraph_node *node, bool early) ...@@ -2270,9 +2275,6 @@ estimate_function_body_sizes (struct cgraph_node *node, bool early)
loop_iterator li; loop_iterator li;
predicate loop_iterations = true_predicate (); predicate loop_iterations = true_predicate ();
calculate_dominance_info (CDI_DOMINATORS);
loop_optimizer_init (LOOPS_NORMAL
| LOOPS_HAVE_RECORDED_EXITS);
if (dump_file && (dump_flags & TDF_DETAILS)) if (dump_file && (dump_flags & TDF_DETAILS))
flow_loops_dump (dump_file, NULL, 0); flow_loops_dump (dump_file, NULL, 0);
scev_initialize (); scev_initialize ();
...@@ -2305,12 +2307,15 @@ estimate_function_body_sizes (struct cgraph_node *node, bool early) ...@@ -2305,12 +2307,15 @@ estimate_function_body_sizes (struct cgraph_node *node, bool early)
*inline_summary (node)->loop_iterations = loop_iterations; *inline_summary (node)->loop_iterations = loop_iterations;
} }
scev_finalize (); scev_finalize ();
loop_optimizer_finalize ();
free_dominance_info (CDI_DOMINATORS);
} }
inline_summary (node)->self_time = time; inline_summary (node)->self_time = time;
inline_summary (node)->self_size = size; inline_summary (node)->self_size = size;
VEC_free (predicate_t, heap, nonconstant_names); VEC_free (predicate_t, heap, nonconstant_names);
if (optimize && !early)
{
loop_optimizer_finalize ();
free_dominance_info (CDI_DOMINATORS);
}
if (dump_file) if (dump_file)
{ {
fprintf (dump_file, "\n"); fprintf (dump_file, "\n");
......
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