This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fix IPA profile updates in inlining and ipa-split


> On 2017.11.18 at 00:39 +0100, Jan Hubicka wrote:
> > Hi,
> > this patch fixes remaining IPA profile updating issues I am aware of.  With
> > this change there is 1 profile mismatch after inlining for tramp3d -Ofast
> > and 112 of them in .optimized dump which is about 10 times less than before.
> > I did not inspect them all but they seems mostly justified and not very
> > important.
> > 
> > First patch adds new profile quality stage when global profile is 0 but not
> > known precisely.  This is useful for bb partitioning where we do not want to
> > move adjusted 0 to cold sections.
> > 
> > Second the patch adds little infrastructure for turning IPA info to local
> > info (profile_count::combine_with_ipa_count) and commonizes all places that
> > do this kind of operation.
> > 
> > Finally it fixes profile updating bug in ipa-split where entry and return
> > blocks got wrong profile.
> > 
> > Bootstrapped/regtested x86_64-linux. I am profilebootstrapping overnight
> > and plan to commit tomorrow.
> 
> This fixes the tramp3d compile time regression with LTO/PGO bootstrapped
> gcc, that I have reported earlier. 
> In fact gcc-8 now compiles tramp3d-v4 ~8.5% faster than gcc-7.
> 
> The patch also fixes PR83037 and PR83039.

Thanks, I will commit it soonish (my overnight profiledbootstrap with lto
died on disk space and I was on hike).

I still plan to check for more profile updating errors and do re-tunning of
inliner next, it is good to know there are fewer issues to look at. :)

Honza

> 
> -- 
> Markus


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]