> On 2017.11.03 at 16:48 +0100, Jan Hubicka wrote: > > this is updated patch which I have comitted after profiledbootstrapping > > x86-64 > > Unfortunately, compiling tramp3d-v4.cpp is 6-7% slower after this patch. > This happens with an LTO/PGO bootstrapped gcc using --enable-checking=release.
our periodic testers has also picked up the change and there is no compile time regression reported for tramp3d. https://gcc.opensuse.org/gcc-old/c++bench-czerny/tramp3d/ so I would conclude that it is regression in LTO+PGO bootstrap. I am fixing one checking bug that may cause it (where we mix local and global profiles) so perhaps it will go away afterwards. The patch has changed a lot of details because I had to merge FDO and non-FDO paths everywhere and also decide on code that seemed buggy and did not translate fluently into new API. Looking at today results there are no significant perofrmance implications of this patch on x86-64 nor Itanium but there are significant code size reductions which I am not quite sure where they come from https://gcc.opensuse.org/gcc-old/c++bench-czerny/ My overall plan is the following 1) Fix checking enabled fallout of the cfg patch 2) finish conversion by dropping frequencies from callgraph 3) audit code for bugs and profile updating insanities. Situation is not bad - we have fewer insanties than GCC 7 on tramp3d -Ofast build but it is worse than before conversion, so I may have dragged in some bugs (again numbers are not fully comparable) 4) do full retunning of inliner metrics and FDO params in stage 3. This stage1 we got a lot of changes that affects IPA metrics - the conversion to sreals, context sensitive time estimates, new profile maintenance. Also FDO metrics will hopefully become more realistic as we had fixed many instances of dropped proifles. So hope to get those 7% back for sure :) I will also try to oprofile to see if I spot something obvious if today fixes will not cover this regression. Honza