diff options
author | hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-08-02 16:58:33 +0000 |
---|---|---|
committer | hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-08-02 16:58:33 +0000 |
commit | f8bfd7f74a9ade93babb76eb86ead5b9e9ffe91e (patch) | |
tree | d7b9cce913a50eb193504126c582c39d052a604e /gcc/ipa-split.c | |
parent | c33994bea00461d5c408a64fc11f601831a7c74c (diff) | |
download | gcc-f8bfd7f74a9ade93babb76eb86ead5b9e9ffe91e.tar.gz |
Add free inline summary pass after pass_early_local_passes
PR middle-end/53321
PR middle-end/53865
* ipa-inline-analysis.c (inline_free_summary): Return if
inline_edge_summary_vec is NULL.
* ipa-split.c (execute_split_functions): Check if a function
is inlinable only if inline_edge_summary_vec != NULL.
* ipa.c (symtab_remove_unreachable_nodes): Restore
cgraph_propagate_frequency call when something was changed.
(free_inline_summary): New function.
(pass_ipa_free_inline_summary): New pass.
* passes.c (init_optimization_passes): Add
pass_ipa_free_inline_summary before pass_ipa_tree_profile.
* timevar.def (TV_IPA_FREE_INLINE_SUMMARY): New.
* tree-pass.h (pass_ipa_free_inline_summary): New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190090 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ipa-split.c')
-rw-r--r-- | gcc/ipa-split.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c index d6aad8977e9..7155f9965a7 100644 --- a/gcc/ipa-split.c +++ b/gcc/ipa-split.c @@ -1397,7 +1397,7 @@ execute_split_functions (void) } /* This can be relaxed; function might become inlinable after splitting away the uninlinable part. */ - if (!inline_summary (node)->inlinable) + if (inline_edge_summary_vec && !inline_summary (node)->inlinable) { if (dump_file) fprintf (dump_file, "Not splitting: not inlinable.\n"); |