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