Commit 0e8d6eb7 by Jan Hubicka Committed by Jan Hubicka

ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff errors when…

ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff errors when comparing specialized and unspecialized times.


	* ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
	errors when comparing specialized and unspecialized times.

From-SVN: r247528
parent c3b73151
2017-05-02 Jan Hubicka <hubicka@ucw.cz>
* ipa-inline-analysis.c (estimate_node_size_and_time): Allow roundoff
errors when comparing specialized and unspecialized times.
2017-05-02 David Malcolm <dmalcolm@redhat.com> 2017-05-02 David Malcolm <dmalcolm@redhat.com>
* diagnostic-show-locus.c * diagnostic-show-locus.c
...@@ -356,6 +361,11 @@ ...@@ -356,6 +361,11 @@
2017-04-29 Jan Hubicka <hubicka@ucw.cz> 2017-04-29 Jan Hubicka <hubicka@ucw.cz>
* ipa-inline.c (compute_inlined_call_time): Remove now unnecesary
overflow check.
2017-04-29 Jan Hubicka <hubicka@ucw.cz>
PR ipa/79224 PR ipa/79224
* ipa-inline-analysis.c (dump_predicate): Add optional parameter NL. * ipa-inline-analysis.c (dump_predicate): Add optional parameter NL.
(account_size_time): Use two predicates - exec_pred and (account_size_time): Use two predicates - exec_pred and
......
...@@ -3422,7 +3422,15 @@ estimate_node_size_and_time (struct cgraph_node *node, ...@@ -3422,7 +3422,15 @@ estimate_node_size_and_time (struct cgraph_node *node,
min_size = (*info->entry)[0].size; min_size = (*info->entry)[0].size;
gcc_checking_assert (size >= 0); gcc_checking_assert (size >= 0);
gcc_checking_assert (time >= 0); gcc_checking_assert (time >= 0);
gcc_checking_assert (nonspecialized_time >= time); /* nonspecialized_time should be always bigger than specialized time.
Roundoff issues however may get into the way. */
gcc_checking_assert ((nonspecialized_time - time) >= -1);
/* Roundoff issues may make specialized time bigger than nonspecialized
time. We do not really want that to happen because some heurstics
may get confused by seeing negative speedups. */
if (time > nonspecialized_time)
time = nonspecialized_time;
if (info->loop_iterations if (info->loop_iterations
&& !evaluate_predicate (info->loop_iterations, possible_truths)) && !evaluate_predicate (info->loop_iterations, possible_truths))
......
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