diff options
author | Jan Hubicka <jh@suse.cz> | 2013-09-02 22:17:10 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2013-09-02 20:17:10 +0000 |
commit | c91061e6b0e1a5ce9484decc9aa208ce00a9af57 (patch) | |
tree | 2a42e8797aec5db5e1df9c0cc6cd3628837a6036 /gcc/ipa-split.c | |
parent | 2fd0985c70240012e8b0b63a9cafe3b241dcddc9 (diff) | |
download | gcc-c91061e6b0e1a5ce9484decc9aa208ce00a9af57.zip gcc-c91061e6b0e1a5ce9484decc9aa208ce00a9af57.tar.gz gcc-c91061e6b0e1a5ce9484decc9aa208ce00a9af57.tar.bz2 |
ipa-split.c (execute_split_functions): Split externally visible functions called once.
* ipa-split.c (execute_split_functions): Split externally visible
functions called once.
* gcc.dg/tree-ssa/fnsplit-1.c: New testcase.
From-SVN: r202185
Diffstat (limited to 'gcc/ipa-split.c')
-rw-r--r-- | gcc/ipa-split.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c index faf7c84..5c3ee4f 100644 --- a/gcc/ipa-split.c +++ b/gcc/ipa-split.c @@ -1537,7 +1537,9 @@ execute_split_functions (void) Note that we are not completely conservative about disqualifying functions called once. It is possible that the caller is called more then once and then inlining would still benefit. */ - if ((!node->callers || !node->callers->next_caller) + if ((!node->callers + /* Local functions called once will be completely inlined most of time. */ + || (!node->callers->next_caller && node->local.local)) && !node->symbol.address_taken && (!flag_lto || !node->symbol.externally_visible)) { |