diff options
author | Jan Hubicka <jh@suse.cz> | 2012-11-05 15:00:46 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2012-11-05 14:00:46 +0000 |
commit | d59171daa764fc59764a7538e48460ffcdae3f9b (patch) | |
tree | 75c6f6529140bc6332176723a9911440e6cf9481 /gcc/ipa-inline.h | |
parent | 0450d718804aac79ea618dcdfc74bfbda0a7e66e (diff) | |
download | gcc-d59171daa764fc59764a7538e48460ffcdae3f9b.zip gcc-d59171daa764fc59764a7538e48460ffcdae3f9b.tar.gz gcc-d59171daa764fc59764a7538e48460ffcdae3f9b.tar.bz2 |
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
Diffstat (limited to 'gcc/ipa-inline.h')
-rw-r--r-- | gcc/ipa-inline.h | 10 |
1 files changed, 9 insertions, 1 deletions
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; }; |