From 2daffc47991e582d910b576e41891a7e91524575 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Tue, 21 Aug 2012 08:54:01 +0200 Subject: re PR fortran/48636 (Enable more inlining with -O2 and higher) PR fortran/48636 * ipa-inline.c (want_inline_small_function_p): Take loop_iterations hint. (edge_badness): Likewise. * ipa-inline.h (inline_hints_vals): Add INLINE_HINT_loop_iterations. (inline_summary): Add loop_iterations. * ipa-inline-analysis.c: Include tree-scalar-evolution.h. (dump_inline_hints): Dump loop_iterations. (reset_inline_summary): Free loop_iterations. (inline_node_duplication_hook): Update loop_iterations. (dump_inline_summary): Dump loop_iterations. (will_be_nonconstant_expr_predicate): New function. (estimate_function_body_sizes): Analyze loops. (estimate_node_size_and_time): Set hint loop_iterations. (inline_merge_summary): Merge loop iterations. (inline_read_section): Stream in loop_iterations. (inline_write_summary): Stream out loop_iterations. From-SVN: r190556 --- gcc/ipa-inline.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'gcc/ipa-inline.c') diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index 55d9a52..a1d703a 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -480,7 +480,8 @@ want_inline_small_function_p (struct cgraph_edge *e, bool report) hints suggests that inlining given function is very profitable. */ else if (DECL_DECLARED_INLINE_P (callee->symbol.decl) && growth >= MAX_INLINE_INSNS_SINGLE - && !(hints & INLINE_HINT_indirect_call)) + && !(hints & (INLINE_HINT_indirect_call + | INLINE_HINT_loop_iterations))) { e->inline_failed = CIF_MAX_INLINE_INSNS_SINGLE_LIMIT; want_inline = false; @@ -863,7 +864,8 @@ edge_badness (struct cgraph_edge *edge, bool dump) if (dump) fprintf (dump_file, "Badness overflow\n"); } - if (hints & INLINE_HINT_indirect_call) + if (hints & (INLINE_HINT_indirect_call + | INLINE_HINT_loop_iterations)) badness /= 8; if (dump) { -- cgit v1.1