aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.h
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2012-11-05 15:00:46 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2012-11-05 14:00:46 +0000
commitd59171daa764fc59764a7538e48460ffcdae3f9b (patch)
tree75c6f6529140bc6332176723a9911440e6cf9481 /gcc/ipa-inline.h
parent0450d718804aac79ea618dcdfc74bfbda0a7e66e (diff)
downloadgcc-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.h10
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;
};