This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Fix IPA profile updates in inlining and ipa-split
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Markus Trippelsdorf <markus at trippelsdorf dot de>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Sat, 18 Nov 2017 19:29:23 +0100
- Subject: Re: Fix IPA profile updates in inlining and ipa-split
- Authentication-results: sourceware.org; auth=none
- References: <20171117233917.GC2901@kam.mff.cuni.cz> <20171118102611.GA367@x4>
> 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