PR tree-optimize/49373 (IPA-PTA regression)

Jan Hubicka hubicka@ucw.cz
Thu Jun 23 13:14:00 GMT 2011


> > 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



More information about the Gcc-patches mailing list