summaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.h
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-05 14:00:46 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2012-11-05 14:00:46 +0000
commit3172b7bf16975923d59a1b4646444ea18b31a2e6 (patch)
tree75c6f6529140bc6332176723a9911440e6cf9481 /gcc/ipa-inline.h
parent57337fec9b4a70c3f34aaaa65ae238206aa0e3db (diff)
downloadgcc-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.h10
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;
};