diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2016-05-16 12:10:28 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2016-05-16 10:10:28 +0000 |
commit | 0b9004ed5642ab56f97347cc9c5ca9a59a2fb6bb (patch) | |
tree | 2fad4cf8e62a6fa8390658fc1bb6621e961d826e /gcc/ipa-inline-analysis.c | |
parent | c1d854fb24ba20ecdd1736117a5e5cd39686e479 (diff) | |
download | gcc-0b9004ed5642ab56f97347cc9c5ca9a59a2fb6bb.zip gcc-0b9004ed5642ab56f97347cc9c5ca9a59a2fb6bb.tar.gz gcc-0b9004ed5642ab56f97347cc9c5ca9a59a2fb6bb.tar.bz2 |
ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic on estimating thunk bodies...
* ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
calls from thunk.
* ipa-inline-transform.c (inline_call): When inlining into thunk produce
gimple body.
(preserve_function_body_p): No need to preserve function body
* cif-codes.def (CIF_THUNK): Remove.
* cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
* g++.dg/ipa/ivinline-7.C: Do not xfail.
* g++.dg/ipa/ivinline-9.C: Do not xfail.
From-SVN: r236274
Diffstat (limited to 'gcc/ipa-inline-analysis.c')
-rw-r--r-- | gcc/ipa-inline-analysis.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c index 17b21d1..82d1774 100644 --- a/gcc/ipa-inline-analysis.c +++ b/gcc/ipa-inline-analysis.c @@ -2932,11 +2932,13 @@ compute_inline_parameters (struct cgraph_node *node, bool early) struct inline_edge_summary *es = inline_edge_summary (node->callees); struct predicate t = true_predicate (); - node->callees->inline_failed = CIF_THUNK; node->local.can_change_signature = false; - es->call_stmt_size = INLINE_SIZE_SCALE; - es->call_stmt_time = INLINE_TIME_SCALE; - account_size_time (info, INLINE_SIZE_SCALE * 2, INLINE_TIME_SCALE * 2, &t); + es->call_stmt_size = eni_size_weights.call_cost; + es->call_stmt_time = eni_time_weights.call_cost; + account_size_time (info, INLINE_SIZE_SCALE * 2, + INLINE_TIME_SCALE * 2, &t); + t = not_inlined_predicate (); + account_size_time (info, 2 * INLINE_SIZE_SCALE, 0, &t); inline_update_overall_summary (node); info->self_size = info->size; info->self_time = info->time; |