From c170d40f35ca1d3b3ee6b152066b0abef9c8c93a Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Fri, 10 Aug 2012 09:52:23 +0200 Subject: re PR middle-end/54146 (Very slow compile with attribute((flatten))) PR middle-end/54146 * ipa-inline-transform.c (inline_call): Add UPDATE_OVERALL_SUMMARY parameter; honnor it. * ipa-inline.c (recursive_inlining): Update call of inline_call. (inline_small_functions): Likewise. (ipa_inline): Likewise. (inline_always_inline_functions): Likewise. (early_inline_small_functions): Likewise. (flatten_function): Do separate update of summary info. * ipa-inline.h (inline_update_overall_summary): Declare. (inline_call): Update. * ipa-inline-analysis.c (inline_merge_summary): Break out updating code to ... (inline_update_overall_summary): Likewise. From-SVN: r190283 --- gcc/ipa-inline.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gcc/ipa-inline.h') diff --git a/gcc/ipa-inline.h b/gcc/ipa-inline.h index 824a6c5..fbd0b99 100644 --- a/gcc/ipa-inline.h +++ b/gcc/ipa-inline.h @@ -173,6 +173,7 @@ void estimate_ipcp_clone_size_and_time (struct cgraph_node *, int *, int *); 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_time (struct cgraph_edge *edge); void initialize_growth_caches (void); @@ -180,7 +181,7 @@ void free_growth_caches (void); void compute_inline_parameters (struct cgraph_node *, bool); /* In ipa-inline-transform.c */ -bool inline_call (struct cgraph_edge *, bool, VEC (cgraph_edge_p, heap) **, int *); +bool inline_call (struct cgraph_edge *, bool, VEC (cgraph_edge_p, heap) **, int *, bool); unsigned int inline_transform (struct cgraph_node *); void clone_inlined_nodes (struct cgraph_edge *e, bool, bool, int *); -- cgit v1.1