diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-11-05 14:00:46 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-11-05 14:00:46 +0000 |
commit | 3172b7bf16975923d59a1b4646444ea18b31a2e6 (patch) | |
tree | 75c6f6529140bc6332176723a9911440e6cf9481 /gcc/ipa-inline.h | |
parent | 57337fec9b4a70c3f34aaaa65ae238206aa0e3db (diff) | |
download | gcc-3172b7bf16975923d59a1b4646444ea18b31a2e6.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@193161 138bc75d-0d04-0410-961f-82ee72b054a4
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 ca59a7f7099..fb055c49c5f 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; }; |