aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-ref.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2015-02-27 03:06:48 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2015-02-27 02:06:48 +0000
commit0a7246ee3887147e6934684ecf768ebe929a975e (patch)
tree64340fdd45bcc8e11f6dbe5c80f68a86cce6c1fa /gcc/ipa-ref.c
parentf91f1c1312beaf16da0d12feea1696c91cb5f0a7 (diff)
downloadgcc-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.c20
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;
-}