ipa-visibility.c (can_replace_by_local_alias): Make static, check ASM_OUTPUT_DEF.
authorNathan Sidwell <nathan@acm.org>
Wed, 16 Dec 2015 21:05:39 +0000 (21:05 +0000)
committerNathan Sidwell <nathan@gcc.gnu.org>
Wed, 16 Dec 2015 21:05:39 +0000 (21:05 +0000)
* ipa-visibility.c (can_replace_by_local_alias): Make static,
check ASM_OUTPUT_DEF.
(can_replace_by_local_alias_in_vtable): Make static.
(function_and_variable_visibility): Reformat overlong comment.

From-SVN: r231721

gcc/ChangeLog
gcc/ipa-visibility.c

index a8475b7..95e9656 100644 (file)
@@ -1,3 +1,10 @@
+2015-12-16  Nathan Sidwell  <nathan@acm.org>
+
+       * ipa-visibility.c (can_replace_by_local_alias): Make static,
+       check ASM_OUTPUT_DEF.
+       (can_replace_by_local_alias_in_vtable): Make static.
+       (function_and_variable_visibility): Reformat overlong comment.
+
 2015-12-16  Jeff Law  <law@redhat.com>
 
        * ree.c (add_removable_extension): Use reg_overlap_mentioned_p
index 7ce8266..4b48d6e 100644 (file)
@@ -329,9 +329,13 @@ varpool_node::externally_visible_p (void)
    Local aliases save dynamic linking overhead and enable more optimizations.
  */
 
-bool
+static bool
 can_replace_by_local_alias (symtab_node *node)
 {
+#ifndef ASM_OUTPUT_DEF
+  /* If aliases aren't supported, we can't do replacement.  */
+  return false;
+#endif
   /* Weakrefs have a reason to be non-local.  Be sure we do not replace
      them.  */
   while (node->transparent_alias && node->definition && !node->weakref)
@@ -344,11 +348,11 @@ can_replace_by_local_alias (symtab_node *node)
          && !node->can_be_discarded_p ());
 }
 
-/* Return true if we can replace refernece to NODE by local alias
+/* Return true if we can replace reference to NODE by local alias
    within a virtual table.  Generally we can replace function pointers
    and virtual table pointers.  */
 
-bool
+static bool
 can_replace_by_local_alias_in_vtable (symtab_node *node)
 {
   if (is_a <varpool_node *> (node)
@@ -592,10 +596,11 @@ function_and_variable_visibility (bool whole_program)
       if (!node->local.local)
         node->local.local |= node->local_p ();
 
-      /* If we know that function can not be overwritten by a different semantics
-        and moreover its section can not be discarded, replace all direct calls
-        by calls to an noninterposable alias.  This make dynamic linking
-        cheaper and enable more optimization.
+      /* If we know that function can not be overwritten by a
+        different semantics and moreover its section can not be
+        discarded, replace all direct calls by calls to an
+        noninterposable alias.  This make dynamic linking cheaper and
+        enable more optimization.
 
         TODO: We can also update virtual tables.  */
       if (node->callers