Hi, this patch fixes heurstics in ipa-split that disables splitting for functions called once (which may need revisiting anyway). When function has alias, the other uses may come through that alias.
Bootstrapped/regtested x86_64. PR ipa/63566 * ipa-split.c (execute_split_functions): Split if function has aliases. Index: ipa-split.c =================================================================== --- ipa-split.c (revision 220509) +++ ipa-split.c (working copy) @@ -1736,6 +1736,7 @@ execute_split_functions (void) /* Local functions called once will be completely inlined most of time. */ || (!node->callers->next_caller && node->local.local)) && !node->address_taken + && !node->has_aliases_p () && (!flag_lto || !node->externally_visible)) { if (dump_file)