diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-06-16 15:02:34 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2014-06-16 15:02:34 +0000 |
commit | aca3df3b3d31b0d83f536a5d3012b3f550b47ba0 (patch) | |
tree | fcdfc3d0c661e959702bf48ed72c7a09f4b9f923 /gcc/ipa-inline-analysis.c | |
parent | 6ee295d9872f6bf3404fba2df7c7ddafacb2ca24 (diff) |
Revert:
* symtab.c (symtab_node::reset_section): New method.
* cgraph.c (cgraph_node_cannot_be_local_p_1): Accept non-local
for localization.
* cgraph.h (reset_section): Declare.
* ipa-inline-analysis.c (do_estimate_growth): Check for comdat groups;
do not consider comdat locals.
* cgraphclones.c (set_new_clone_decl_and_node_flags): Get section
for new symbol.
* ipa-visiblity.c (cgraph_externally_visible_p): Cleanup.
(update_visibility_by_resolution_info): Consider UNDEF; fix checking;
reset sections of symbols dragged out of the comdats.
(function_and_variable_visibility): Reset sections of localized symbols.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@211710 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ipa-inline-analysis.c')
-rw-r--r-- | gcc/ipa-inline-analysis.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c index 7f9febc5fe8..c50a7227500 100644 --- a/gcc/ipa-inline-analysis.c +++ b/gcc/ipa-inline-analysis.c @@ -3877,7 +3877,7 @@ do_estimate_growth (struct cgraph_node *node) /* COMDAT functions are very often not shared across multiple units since they come from various template instantiations. Take this into account. */ - else if (node->externally_visible && node->get_comdat_group () + else if (DECL_COMDAT (node->decl) && cgraph_can_remove_if_no_direct_calls_p (node)) d.growth -= (info->size * (100 - PARAM_VALUE (PARAM_COMDAT_SHARING_PROBABILITY)) @@ -3928,7 +3928,7 @@ growth_likely_positive (struct cgraph_node *node, int edge_growth ATTRIBUTE_UNUS && (ret = node_growth_cache[node->uid])) return ret > 0; if (!cgraph_will_be_removed_from_program_if_no_direct_calls (node) - && (!node->externally_visible || !node->get_comdat_group () + && (!DECL_COMDAT (node->decl) || !cgraph_can_remove_if_no_direct_calls_p (node))) return true; max_callers = inline_summary (node)->size * 4 / edge_growth + 2; |