2010/11/16 Jan Hubicka <hubi...@ucw.cz>: >> On Mon, Nov 15, 2010 at 5:39 PM, Jan Hubicka <hubi...@ucw.cz> wrote: >> >> > 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. >> >> gcc will eventually, right? > > Sure hope so ;) > We really need to solve scalability with our IPA points-to and make it > compatible with WHOPR. >> >> > Mod-ref is just >> > simple ipa-reference code. How you get context sensitivity on mod/ref? >> >> mod-ref relies on points-to. With context sensitive points-to, you can >> also get CS mod-ref -- basically mod-ref info per callsite. > > Ah sure, I was too focused on our current "mod/ref" :)
Btw, IPA-PTA also performs mod/ref analysis (but of course it is context insensitive). Richard. > Honza >