diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2015-02-27 03:06:48 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2015-02-27 02:06:48 +0000 |
commit | 0a7246ee3887147e6934684ecf768ebe929a975e (patch) | |
tree | 64340fdd45bcc8e11f6dbe5c80f68a86cce6c1fa /gcc/ipa-ref.c | |
parent | f91f1c1312beaf16da0d12feea1696c91cb5f0a7 (diff) | |
download | gcc-0a7246ee3887147e6934684ecf768ebe929a975e.zip gcc-0a7246ee3887147e6934684ecf768ebe929a975e.tar.gz gcc-0a7246ee3887147e6934684ecf768ebe929a975e.tar.bz2 |
re PR bootstrap/65150 (r220875 causes bootstrap failure on x86_64 darwin)
PR bootstrap/65150
* ipa-icf.c (symbol_compare_collection::symbol_compare_colleciton):
Use address_matters_p.
(redirect_all_callers, set_addressable): New functions.
(sem_function::merge): Reorganize and fix merging issues.
(sem_variable::merge): Likewise.
(sem_variable::compare_sections): Remove.
* common.opt (fmerge-all-constants, fmerge-constants): Remove
Optimization flag.
* symtab.c (symtab_node::resolve_alias): When alias has aliases,
redirect them.
(symtab_node::make_decl_local): Set ADDRESSABLE bit when
decl is used.
(address_matters_1): New function.
(symtab_node::address_matters_p): New function.
* cgraph.c (cgraph_edge::verify_corresponds_to_fndecl): Fix
check for merged flag.
* cgraph.h (address_matters_p): Declare.
(symtab_node::address_taken_from_non_vtable_p): Remove.
(symtab_node::address_can_be_compared_p): New method.
(ipa_ref::address_matters_p): Move here from ipa-ref.c; simplify.
* ipa-visibility.c (symtab_node::address_taken_from_non_vtable_p):
Remove.
(comdat_can_be_unshared_p_1) Use address_matters_p.
(update_vtable_references): Fix formating.
* ipa-ref.c (ipa_ref::address_matters_p): Move inline.
* cgraphunit.c (cgraph_node::create_wrapper): Drop UNINLINABLE flag.
* cgraphclones.c: Preserve merged and icf_merged flags.
Co-Authored-By: Martin Liska <mliska@suse.cz>
From-SVN: r221040
Diffstat (limited to 'gcc/ipa-ref.c')
-rw-r--r-- | gcc/ipa-ref.c | 20 |
1 files changed, 0 insertions, 20 deletions
diff --git a/gcc/ipa-ref.c b/gcc/ipa-ref.c index f9af352..91c2f89 100644 --- a/gcc/ipa-ref.c +++ b/gcc/ipa-ref.c @@ -124,23 +124,3 @@ ipa_ref::referred_ref_list (void) { return &referred->ref_list; } - -/* Return true if refernece may be used in address compare. */ -bool -ipa_ref::address_matters_p () -{ - if (use != IPA_REF_ADDR) - return false; - /* Addresses taken from virtual tables are never compared. */ - if (is_a <varpool_node *> (referring) - && DECL_VIRTUAL_P (referring->decl)) - return false; - /* Address of virtual tables and functions is never compared. */ - if (DECL_VIRTUAL_P (referred->decl)) - return false; - /* Address of C++ cdtors is never compared. */ - if (is_a <cgraph_node *> (referred) - && (DECL_CXX_CONSTRUCTOR_P (referred->decl) || DECL_CXX_DESTRUCTOR_P (referred->decl))) - return false; - return true; -} |