diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2018-02-12 10:48:06 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2018-02-12 09:48:06 +0000 |
commit | b9aba9fde536dc3e0293653509f530322ee2753e (patch) | |
tree | 391970e14e69d07fc50d2a3537089c09d6f7aff3 /gcc/ipa-split.c | |
parent | 85c5e2f576fd41e1ab5620cde3c63b3ca6673bea (diff) | |
download | gcc-b9aba9fde536dc3e0293653509f530322ee2753e.zip gcc-b9aba9fde536dc3e0293653509f530322ee2753e.tar.gz gcc-b9aba9fde536dc3e0293653509f530322ee2753e.tar.bz2 |
re PR middle-end/83665 (Big code size regression and some code quality improvement at Jan 2 2018)
PR middle-end/83665
* params.def (inline-min-speedup): Increase from 8 to 15.
(max-inline-insns-auto): Decrease from 40 to 30.
* ipa-split.c (consider_split): Add some buffer for function to
be considered inlining candidate.
* invoke.texi (max-inline-insns-auto, inline-min-speedup): UPdate
default values.
From-SVN: r257582
Diffstat (limited to 'gcc/ipa-split.c')
-rw-r--r-- | gcc/ipa-split.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c index 24b30f6..b03ae029 100644 --- a/gcc/ipa-split.c +++ b/gcc/ipa-split.c @@ -558,10 +558,13 @@ consider_split (struct split_point *current, bitmap non_ssa_vars, " Refused: split size is smaller than call overhead\n"); return; } + /* FIXME: The logic here is not very precise, because inliner does use + inline predicates to reduce function body size. We add 10 to anticipate + that. Next stage1 we should try to be more meaningful here. */ if (current->header_size + call_overhead >= (unsigned int)(DECL_DECLARED_INLINE_P (current_function_decl) ? MAX_INLINE_INSNS_SINGLE - : MAX_INLINE_INSNS_AUTO)) + : MAX_INLINE_INSNS_AUTO) + 10) { if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, @@ -574,7 +577,7 @@ consider_split (struct split_point *current, bitmap non_ssa_vars, Limit this duplication. This is consistent with limit in tree-sra.c FIXME: with LTO we ought to be able to do better! */ if (DECL_ONE_ONLY (current_function_decl) - && current->split_size >= (unsigned int) MAX_INLINE_INSNS_AUTO) + && current->split_size >= (unsigned int) MAX_INLINE_INSNS_AUTO + 10) { if (dump_file && (dump_flags & TDF_DETAILS)) fprintf (dump_file, |