* ipa-inline.c (inline_small_functions): Account only non-cold
functions.
* doc/invoke.texi (inline-unit-growth): Update documentation.
From-SVN: r209490
+2014-04-17 Jan Hubicka <hubicka@ucw.cz>
+
+ * ipa-inline.c (inline_small_functions): Account only non-cold
+ functions.
+ * doc/invoke.texi (inline-unit-growth): Update documentation.
+
2014-04-17 Pat Haugen <pthaugen@us.ibm.com>
* config/rs6000/rs6000.md (addti3, subti3): New.
@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
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)