> > Ok, but please change the IPA inline gate to honor flag_no_inline > > (thus, (optimize && !flag_no_inline) || flag_lto || flag_wpa). > OK. Actually it won't work, since results of inline-analysis are used by most of other IPA passes (i.e. ipa-cp and ipa-sra for cloning decisions, etc.). As we chatted about shortly on the summit, perhaps it would make sense to declare the jump-functions and ipa-inline analysis to be independent analysis passes (aka ipa-pta). One computing jump functions and other deciding on size/time estimates. But definitely incrementally.
Honza > > > > Thanks for working on this, I'll look to some followup cleanups > > for PTA. Now, when it works on LTRANS units we have to do > > some adjustments (like not disable it in opts.c ;)) - do we know > > Yep, I decided that it can go as a followup. Thanks for working on this! > BTW the PTA solving time seems rather high now not only for libjava, but > also for tramp3d and other bigger units I tested. > > > whether a function is only called from within a ltrans unit somehow? > > When you look at the cgraph, the flags are set as at WPA time. > I.e. if function is local to program it has externally_visible 0 > and then you have used_from_other_partition/in_other_partition flags > saying how the other ltrans partitions behave to your function. > > If you decide to ignore cgraph (that is probably not coolest idea), > you have the usual PUBLIC flag that is set for all objects used cross > ltrans boundary (since they are now hidden public symbols). > > You also have the address taken shipped from WPA info, so you know if other > units reads/writes the objects or also take its address that probably comes > handy. > > Honza