> > Fortunately linker plugin solves the problem here and this is why I want to
> > have it by default.  GCC then can do effectively -fwhole-program for 
> > binaries
> > (since linker knows what will be bound elsewhere) and take advantage of
> > visibility((hidden)) hints for shared libraries same way.  Most of important
> > shared libraries gets visibility ((hidden)) right.
> >
> > It is sad that LTO w/o linker plugin doesn't give that much benefits.
> > Ideas are welcome here.
> 
> Linker feedback will be limited here -- mostly global variable
> aliasing (as I remember only 2/3 spec programs benefit from it), it
> helps  You don't get whole program points-to, whole program mod-ref
> (with context sensitivity), whole program structure layout. The latter
> are the real kickers (in terms of SPEC performance), but promoting LTO
> with those numbers can be misleading as many programs won't get it.

Well, I am speaking of our linker plugin here.  What it does is to pass GCC
resolution information so it knows what symbols are bound externally. Since
typically you link LTO alone or with small non-LTO part, most of symbols are
not bound and thus effecitvely you get -fwhole-program (-fwhole-program just
declare everything static except for main ())

We don't really do whole program points-to or structure layout. Mod-ref is just
simple ipa-reference code. How you get context sensitivity on mod/ref?

Honza
> 
> David
> 
> >
> > Honza
> >> sell lto without -fwhole-program.
> >>
> >> Thanks,
> >>
> >> David
> >>
> >> > Honza
> >> >
> >

Reply via email to