aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2019-10-01 18:58:35 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2019-10-01 16:58:35 +0000
commit0b92cf305dcf34387a8e2564e55ca8948df3b47a (patch)
tree1158f5583f8db80f0e72fac426c41a28d1013694 /gcc/ipa-inline.c
parent7552c36afa1f9058bb39f336ae84f019621885a0 (diff)
downloadgcc-0b92cf305dcf34387a8e2564e55ca8948df3b47a.zip
gcc-0b92cf305dcf34387a8e2564e55ca8948df3b47a.tar.gz
gcc-0b92cf305dcf34387a8e2564e55ca8948df3b47a.tar.bz2
invoke.texi (early-inlining-insns-O2): Document.
* doc/invoke.texi (early-inlining-insns-O2): Document. (early-inlining-insns): Update. * params.def (early-inlining-insns-O2): New bound. (early-inlining-insns): Update docs. * ipa-inline.c (want_early_inline_function_p): Use new bound. * g++.dg/tree-ssa/pr61034.C: Set early-inlining-insns-O2=14. * g++.dg/tree-ssa/pr8781.C: Likewise. * g++.dg/warn/Wstringop-truncation-1.C: Likewise. * gcc.dg/ipa/pr63416.c: likewise. * gcc.dg/vect/pr66142.c: Likewise. * gcc.dg/tree-ssa/ssa-thread-12.c: Mark compure_idf inline. From-SVN: r276416
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r--gcc/ipa-inline.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index b62d280..c8689c7 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -641,6 +641,10 @@ want_early_inline_function_p (struct cgraph_edge *e)
{
int growth = estimate_edge_growth (e);
int n;
+ int early_inlining_insns = opt_for_fn (e->caller->decl, optimize) >= 3
+ ? PARAM_VALUE (PARAM_EARLY_INLINING_INSNS)
+ : PARAM_VALUE (PARAM_EARLY_INLINING_INSNS_O2);
+
if (growth <= PARAM_VALUE (PARAM_MAX_INLINE_INSNS_SIZE))
;
@@ -654,26 +658,28 @@ want_early_inline_function_p (struct cgraph_edge *e)
growth);
want_inline = false;
}
- else if (growth > PARAM_VALUE (PARAM_EARLY_INLINING_INSNS))
+ else if (growth > early_inlining_insns)
{
if (dump_enabled_p ())
dump_printf_loc (MSG_MISSED_OPTIMIZATION, e->call_stmt,
" will not early inline: %C->%C, "
- "growth %i exceeds --param early-inlining-insns\n",
- e->caller, callee,
- growth);
+ "growth %i exceeds --param early-inlining-insns%s\n",
+ e->caller, callee, growth,
+ opt_for_fn (e->caller->decl, optimize) >= 3
+ ? "" : "-O2");
want_inline = false;
}
else if ((n = num_calls (callee)) != 0
- && growth * (n + 1) > PARAM_VALUE (PARAM_EARLY_INLINING_INSNS))
+ && growth * (n + 1) > early_inlining_insns)
{
if (dump_enabled_p ())
dump_printf_loc (MSG_MISSED_OPTIMIZATION, e->call_stmt,
" will not early inline: %C->%C, "
- "growth %i exceeds --param early-inlining-insns "
+ "growth %i exceeds --param early-inlining-insns%s "
"divided by number of calls\n",
- e->caller, callee,
- growth);
+ e->caller, callee, growth,
+ opt_for_fn (e->caller->decl, optimize) >= 3
+ ? "" : "-O2");
want_inline = false;
}
}