summaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.h
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2014-03-28 19:50:28 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2014-03-28 19:50:28 +0000
commitdb197f9070c2488ef716efe5c6d19cf83644af1e (patch)
tree2fd5928dd4a0a5449b5d3be2dd387d5f444ae009 /gcc/ipa-inline.h
parentbdc8fe1f6345d1112bd60c0c37d5a5f7933bbc9b (diff)
downloadgcc-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.h3
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);