diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-10-07 18:58:04 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-10-07 18:58:04 +0000 |
commit | 6c2c7775afb37c671db1b8bcc62c52597236489d (patch) | |
tree | fe7a69511297e157ec48839981853e440e96771d /gcc/ipa-inline.h | |
parent | b8925abddf74b7f8630817c04b392610e8449ff1 (diff) | |
download | gcc-6c2c7775afb37c671db1b8bcc62c52597236489d.tar.gz |
* ipa-inline-analysis.c (do_estimate_edge_time): Return actual
time spent by the inlined sequence.
(do_estimate_edge_growth): Rename to ...
(do_estimate_edge_time): ... this one; return size of inlined
sequence.
* ipa-inline.h (do_estimate_edge_size): New.
(do_estimate_edge_growth): Remove.
(estimate_edge_size): New function.
(estimate_edge_growth): Use it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192185 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ipa-inline.h')
-rw-r--r-- | gcc/ipa-inline.h | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/gcc/ipa-inline.h b/gcc/ipa-inline.h index ec9cf4d13ac..df8b3a7e202 100644 --- a/gcc/ipa-inline.h +++ b/gcc/ipa-inline.h @@ -201,7 +201,7 @@ void estimate_ipcp_clone_size_and_time (struct cgraph_node *, int do_estimate_growth (struct cgraph_node *); void inline_merge_summary (struct cgraph_edge *edge); void inline_update_overall_summary (struct cgraph_node *node); -int do_estimate_edge_growth (struct cgraph_edge *edge); +int do_estimate_edge_size (struct cgraph_edge *edge); int do_estimate_edge_time (struct cgraph_edge *edge); inline_hints do_estimate_edge_hints (struct cgraph_edge *edge); void initialize_growth_caches (void); @@ -245,20 +245,31 @@ estimate_growth (struct cgraph_node *node) } -/* Return estimated callee growth after inlining EDGE. */ +/* Return estimated size of the inline sequence of EDGE. */ static inline int -estimate_edge_growth (struct cgraph_edge *edge) +estimate_edge_size (struct cgraph_edge *edge) { int ret; if ((int)VEC_length (edge_growth_cache_entry, edge_growth_cache) <= edge->uid || !(ret = VEC_index (edge_growth_cache_entry, edge_growth_cache, edge->uid).size)) - return do_estimate_edge_growth (edge); + return do_estimate_edge_size (edge); return ret - (ret > 0); } +/* Return estimated callee growth after inlining EDGE. */ + +static inline int +estimate_edge_growth (struct cgraph_edge *edge) +{ +#ifdef ENABLE_CHECKING + gcc_checking_assert (inline_edge_summary (edge)->call_stmt_size); +#endif + return (estimate_edge_size (edge) + - inline_edge_summary (edge)->call_stmt_size); +} /* Return estimated callee runtime increase after inlning EDGE. */ |