From d59171daa764fc59764a7538e48460ffcdae3f9b Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Mon, 5 Nov 2012 15:00:46 +0100 Subject: ipa-inline.c (compute_uninlined_call_time, [...]): New functions. * ipa-inline.c (compute_uninlined_call_time, compute_inlined_call_time): New functions. (RELATIVE_TIME_BENEFIT_RANGE): New macro. (relative_time_benefit): Rewrite. (edge_badness): Rewrite path with guessed profile and estimated profile. * ipa-inline.h (INLINE_HINT_declared_inline, INLINE_HINT_cross_module): New hints. (struct inline_summary): Add GROWTH filed. * ipa-inline-analysis.c (dump_inline_hints): Update. (reset_inline_summary): Update. (dump_inline_summary): Update. (will_be_nonconstant_predicate): Cleanup to use gimple_store_p and gimple_assign_load_p predicates. (estimate_node_size_and_time): Drop INLINE_HINT_declared_inline hint. (simple_edge_hints): New function. (do_estimate_edge_time): Return time of invocation of callee rather than the time scaled by edge frequency; update hints code. (do_estimate_edge_hints): Update. (do_estimate_growth): Cleanup. From-SVN: r193161 --- gcc/ipa-inline.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'gcc/ipa-inline.h') diff --git a/gcc/ipa-inline.h b/gcc/ipa-inline.h index ca59a7f..fb055c4 100644 --- a/gcc/ipa-inline.h +++ b/gcc/ipa-inline.h @@ -49,7 +49,9 @@ enum inline_hints_vals { INLINE_HINT_loop_iterations = 2, INLINE_HINT_loop_stride = 4, INLINE_HINT_same_scc = 8, - INLINE_HINT_in_scc = 16 + INLINE_HINT_in_scc = 16, + INLINE_HINT_declared_inline = 32, + INLINE_HINT_cross_module = 64 }; typedef int inline_hints; @@ -129,6 +131,12 @@ struct GTY(()) inline_summary /* Predicate on when some loop in the function becomes to have known stride. */ struct predicate * GTY((skip)) loop_stride; + /* Estimated growth for inlining all copies of the function before start + of small functions inlining. + This value will get out of date as the callers are duplicated, but + using up-to-date value in the badness metric mean a lot of extra + expenses. */ + int growth; /* Number of SCC on the beggining of inlining process. */ int scc_no; }; -- cgit v1.1