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