summaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2014-04-17 20:35:54 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2014-04-17 18:35:54 +0000
commit5e750dc69f9e2580bed0d45bd0383622cc272b39 (patch)
treed9d58ac41ea36e27fed4e20250e6280a4154de93 /gcc/ipa-inline.c
parent32337f1014e18221050f034723d3b75f2b08c908 (diff)
downloadgcc-5e750dc69f9e2580bed0d45bd0383622cc272b39.tar.gz
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
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r--gcc/ipa-inline.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index 83a836a1211..e8f03be397b 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)