Hi,
this is the last part enabling local aliases that seems to work now.
I think we can go ahead and try to enable section GC and SUPPORTS_ONE_ONLY.

Honza

Index: ChangeLog
===================================================================
--- ChangeLog   (revision 212395)
+++ ChangeLog   (working copy)
@@ -1,5 +1,10 @@
 2014-07-08  Jan Hubicka  <hubi...@ucw.cz>
 
+       * ipa-visibility.c (function_and_variable_visibility): Remove
+       temporary hack disabling local aliases on AIX.
+
+2014-07-08  Jan Hubicka  <hubi...@ucw.cz>
+
        * ipa-cp.c (devirtualization_time_bonus): Walk through aliases.
        * ipa-inline-analysis.c (estimate_edge_devirt_benefit): Likewise.
 
Index: ipa-visibility.c
===================================================================
--- ipa-visibility.c    (revision 212393)
+++ ipa-visibility.c    (working copy)
@@ -567,9 +567,6 @@ function_and_variable_visibility (bool w
 
         TODO: We can also update virtual tables.  */
       if (node->callers 
-          /* FIXME: currently this optimization breaks on AIX.  Disable it for 
targets
-             without comdat support for now.  */
-         && SUPPORTS_ONE_ONLY
          && can_replace_by_local_alias (node))
        {
          struct cgraph_node *alias = cgraph (symtab_nonoverwritable_alias 
(node));
@@ -672,10 +669,7 @@ function_and_variable_visibility (bool w
 
       /* Update virtual tables to point to local aliases where possible.  */
       if (DECL_VIRTUAL_P (vnode->decl)
-         && !DECL_EXTERNAL (vnode->decl)
-         /* FIXME: currently this optimization breaks on AIX.  Disable it for 
targets
-            without comdat support for now.  */
-         && SUPPORTS_ONE_ONLY)
+         && !DECL_EXTERNAL (vnode->decl))
        {
          int i;
          struct ipa_ref *ref;

Reply via email to