Re: Fix aliases on AIX

2014-07-09 Thread Jan Hubicka
Hi, actually I forgot one hunk in the tree. This time it makes speculative devirtualuzation to consider node and its alias to be equivalent. This happens in ipa-devirt10 becuase one of targets appears in symbol table and thus is redirected to alias while the second doesn't. * ipa-devir

Re: Fix aliases on AIX

2014-07-09 Thread Jan Hubicka
Hi, this patch fixes the devirt10 and devirt15 failures - the problem was that we did not look into alias target when estimating devirt benefit. Bootstrapped/regtested rs6000-aix, comitted. * ipa-cp.c (devirtualization_time_bonus): Walk through aliases. * ipa-inline-analysis.c (e

Re: Fix aliases on AIX

2014-07-09 Thread Jan Hubicka
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 (workin

Re: Fix aliases on AIX

2014-07-09 Thread Jan Hubicka
Hi, this is the first part of patch I comitted, changing the output machinery. It has fix for the ifunc "attribute". Honza Index: ChangeLog === --- ChangeLog (revision 212393) +++ ChangeLog (working copy) @@ -1,3 +1,14 @@ +2014-

Re: Fix aliases on AIX

2014-07-09 Thread David Edelsohn
On Wed, Jul 9, 2014 at 12:50 AM, Jan Hubicka wrote: >> With the patch, GCC on AIX now responds that "ifunc" is supported. >> The C and C++ attr-ifunc testcases now run and fail. > > This is unexpected. I am testing version of the patch with > > if (lookup_attribute ("ifunc", DECL_ATTRIBUTES (n-

Re: Fix aliases on AIX

2014-07-08 Thread Jan Hubicka
> With the patch, GCC on AIX now responds that "ifunc" is supported. > The C and C++ attr-ifunc testcases now run and fail. This is unexpected. I am testing version of the patch with if (lookup_attribute ("ifunc", DECL_ATTRIBUTES (n->decl))) return false; added to beggining of rs6000_decl

Re: Fix aliases on AIX

2014-07-08 Thread Jan Hubicka
> The problem with devirt-10 and devirt-15 is the excellent kludge for > aliases on AIX can produce multiple symbols. > > ipa-prop: Discovered a virtual call to a known target (void > wxBufferedDC::InitCommon(wxDCBase*)/3 -> virtual void > wxDCBase::_ZN8wxDCBase18SetLayoutDirectionEi.localalias.6(

Re: Fix aliases on AIX

2014-07-08 Thread David Edelsohn
The problem with devirt-10 and devirt-15 is the excellent kludge for aliases on AIX can produce multiple symbols. ipa-prop: Discovered a virtual call to a known target (void wxBufferedDC::InitCommon(wxDCBase*)/3 -> virtual void wxDCBase::_ZN8wxDCBase18SetLayoutDirectionEi.localalias.6(int)/36), fo

Re: Fix aliases on AIX

2014-07-08 Thread David Edelsohn
On Mon, Jul 7, 2014 at 4:09 PM, Jan Hubicka wrote: > Hi, > AIX as' .set pseudoop has somewhat unexpected behaviour. It seems to be > implemented by syntactically replacin all appereances of the alias by > its target (that can be an expressoin) but it is still possible to globalize > the alias by

Fix aliases on AIX

2014-07-07 Thread Jan Hubicka
Hi, AIX as' .set pseudoop has somewhat unexpected behaviour. It seems to be implemented by syntactically replacin all appereances of the alias by its target (that can be an expressoin) but it is still possible to globalize the alias by .globl operation. This breaks the assumption we make about al