diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-05-16 10:10:28 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-05-16 10:10:28 +0000 |
commit | 46729204a4bd1c5aad4856d9a4f20da54c586241 (patch) | |
tree | 2fad4cf8e62a6fa8390658fc1bb6621e961d826e /gcc/ipa-inline-analysis.c | |
parent | 82da2d0eca8e0001702631abf275cd9ad63f25e0 (diff) | |
download | gcc-46729204a4bd1c5aad4856d9a4f20da54c586241.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236274 138bc75d-0d04-0410-961f-82ee72b054a4
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 17b21d17c5f..82d1774abcb 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; |