aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline-transform.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2019-11-21 09:03:01 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2019-11-21 08:03:01 +0000
commitd2bcf46cd03bcc3ebdd9102e53022b6fb03202f7 (patch)
tree92ffeae1886e53d112d01b1c55ba6c8ba4cdfcc7 /gcc/ipa-inline-transform.c
parentb4b7464b57190287cb1bfc5eb56f63148a508f0c (diff)
downloadgcc-d2bcf46cd03bcc3ebdd9102e53022b6fb03202f7.zip
gcc-d2bcf46cd03bcc3ebdd9102e53022b6fb03202f7.tar.gz
gcc-d2bcf46cd03bcc3ebdd9102e53022b6fb03202f7.tar.bz2
Incremental updating of inline summaries.
* ipa-fnsummary.c (ipa_fn_summary::account_size_time): Allow negative time in calls summary; correct roundoff errors leading to negative times. (ipa_merge_fn_summary_after_inlining): Update calls size time table if present. (ipa_update_overall_fn_summary): Add RESET parameter. * ipa-fnsummary.h (ipa_update_overall_fn_summary): Update prototype. * ipa-inline-transform.c (inline_call): Enable incremental updates. From-SVN: r278541
Diffstat (limited to 'gcc/ipa-inline-transform.c')
-rw-r--r--gcc/ipa-inline-transform.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/ipa-inline-transform.c b/gcc/ipa-inline-transform.c
index 8b95889..e547521 100644
--- a/gcc/ipa-inline-transform.c
+++ b/gcc/ipa-inline-transform.c
@@ -489,9 +489,9 @@ inline_call (struct cgraph_edge *e, bool update_original,
mark_all_inlined_calls_cdtor (e->callee);
if (opt_for_fn (e->caller->decl, optimize))
new_edges_found = ipa_propagate_indirect_call_infos (curr, new_edges);
- check_speculations (e->callee, new_edges);
+ bool removed_p = check_speculations (e->callee, new_edges);
if (update_overall_summary)
- ipa_update_overall_fn_summary (to);
+ ipa_update_overall_fn_summary (to, new_edges_found || removed_p);
else
/* Update self size by the estimate so overall function growth limits
work for further inlining into this function. Before inlining