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;