diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-03-28 19:50:28 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-03-28 19:50:28 +0000 |
commit | db197f9070c2488ef716efe5c6d19cf83644af1e (patch) | |
tree | 2fd5928dd4a0a5449b5d3be2dd387d5f444ae009 /gcc/ipa-inline.h | |
parent | bdc8fe1f6345d1112bd60c0c37d5a5f7933bbc9b (diff) | |
download | gcc-db197f9070c2488ef716efe5c6d19cf83644af1e.tar.gz |
PR ipa/60243
* ipa-inline.c (want_inline_small_function_p): Short circuit large
functions; reorganize to make cheap checks first.
(inline_small_functions): Do not estimate growth when dumping;
it is expensive.
* ipa-inline.h (inline_summary): Add min_size.
(growth_likely_positive): New function.
* ipa-inline-analysis.c (dump_inline_summary): Add min_size.
(set_cond_stmt_execution_predicate): Cleanup.
(estimate_edge_size_and_time): Compute min_size.
(estimate_calls_size_and_time): Likewise.
(estimate_node_size_and_time): Likewise.
(inline_update_overall_summary): Update min_size.
(do_estimate_edge_time): Likewise.
(do_estimate_edge_size): Update.
(do_estimate_edge_hints): Update.
(growth_likely_positive): New function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@208916 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ipa-inline.h')
-rw-r--r-- | gcc/ipa-inline.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/ipa-inline.h b/gcc/ipa-inline.h index 48136d22b52..8ee075f9300 100644 --- a/gcc/ipa-inline.h +++ b/gcc/ipa-inline.h @@ -117,6 +117,8 @@ struct GTY(()) inline_summary int self_size; /* Time of the function body. */ int self_time; + /* Minimal size increase after inlining. */ + int min_size; /* False when there something makes inlining impossible (such as va_arg). */ unsigned inlinable : 1; @@ -220,6 +222,7 @@ void estimate_ipcp_clone_size_and_time (struct cgraph_node *, vec<ipa_agg_jump_function_p>, int *, int *, inline_hints *); int do_estimate_growth (struct cgraph_node *); +bool growth_likely_positive (struct cgraph_node *, int); void inline_merge_summary (struct cgraph_edge *edge); void inline_update_overall_summary (struct cgraph_node *node); int do_estimate_edge_size (struct cgraph_edge *edge); |