From: Jan Hubicka Date: Thu, 17 Apr 2014 18:35:54 +0000 (+0200) Subject: ipa-inline.c (inline_small_functions): Account only non-cold functions. X-Git-Tag: releases/gcc-5.1.0~8050 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5e750dc69f9e2580bed0d45bd0383622cc272b39;p=thirdparty%2Fgcc.git ipa-inline.c (inline_small_functions): Account only non-cold functions. * ipa-inline.c (inline_small_functions): Account only non-cold functions. * doc/invoke.texi (inline-unit-growth): Update documentation. From-SVN: r209490 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 11df5164e0ad..b9874c0c9d50 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2014-04-17 Jan Hubicka + + * ipa-inline.c (inline_small_functions): Account only non-cold + functions. + * doc/invoke.texi (inline-unit-growth): Update documentation. + 2014-04-17 Pat Haugen * config/rs6000/rs6000.md (addti3, subti3): New. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 3fdfeb9571d9..8004da86f4f5 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -9409,7 +9409,8 @@ before applying @option{--param inline-unit-growth}. The default is 10000. @item inline-unit-growth Specifies maximal overall growth of the compilation unit caused by inlining. The default value is 30 which limits unit growth to 1.3 times the original -size. +size. Cold functions (either marked cold via an attribibute or by profile +feedback) are not accounted into the unit size. @item ipcp-unit-growth Specifies maximal overall growth of the compilation unit caused by diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index 83a836a12116..e8f03be397b8 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -1585,7 +1585,10 @@ inline_small_functions (void) struct inline_summary *info = inline_summary (node); struct ipa_dfs_info *dfs = (struct ipa_dfs_info *) node->aux; - if (!DECL_EXTERNAL (node->decl)) + /* Do not account external functions, they will be optimized out + if not inlined. Also only count the non-cold portion of program. */ + if (!DECL_EXTERNAL (node->decl) + && node->frequency != NODE_FREQUENCY_UNLIKELY_EXECUTED) initial_size += info->size; info->growth = estimate_growth (node); if (dfs && dfs->next_cycle)