[PATCH 0/4] Store multiple values for single value profilers

Martin Liška mliska@suse.cz
Thu Jun 6 08:23:00 GMT 2019


On 6/5/19 3:49 PM, Richard Biener wrote:
> On Tue, Jun 4, 2019 at 10:44 AM Martin Liska <mliska@suse.cz> wrote:
>>
>> Hi.
>>
>> It's becoming more common that a training run happens in parallel environment.
>> That can lead to a not reproducible builds caused by different order of merging
>> of .gcda files. So that I'm suggesting to store up to 4 values for HIST_TYPE_SINGLE_VALUE
>> and HIST_TYPE_INDIR_CALL on disk. If the capacity is exceeded the whole counter is
>> marked as unstable (not reproducible).
>>
>> Patch can bootstrap on x86_64-linux-gnu and survives regression tests.
>>
>> Ready to be installed?
> 
> Thanks for working on this, I hope Honza can review and approve it. 

Yes, he'll do it soon.

> Does this
> solve the issue of profiledbootstrap results being not reproducible?  (if you
> fix genchecksum to not generate different checksums)

Hopefully, but it needs to be tested.

> 
> I suppose this would also apply to a GCC 9 tree?

Yes, it applies smoothly. Would you like to see it backported to 9.2?

Martin

> 
> Thanks,
> Richard.
> 
>> Thanks,
>> Martin
>>
>> marxin (4):
>>   Remove indirect call top N counter type.
>>   Implement N disk counters for single value and indirect call counters.
>>   Dump histograms only if present.
>>   Update a bit dump format.
>>
>>  gcc/doc/invoke.texi       |   3 -
>>  gcc/gcov-counter.def      |   3 -
>>  gcc/gcov-io.h             |   9 +-
>>  gcc/ipa-profile.c         |  13 ++-
>>  gcc/params.def            |   8 --
>>  gcc/profile.c             |   1 -
>>  gcc/tree-profile.c        |  23 +---
>>  gcc/value-prof.c          | 224 ++++++++++++++++----------------------
>>  gcc/value-prof.h          |   4 +-
>>  libgcc/Makefile.in        |  10 +-
>>  libgcc/libgcov-driver.c   |  80 --------------
>>  libgcc/libgcov-merge.c    | 139 +++++++++--------------
>>  libgcc/libgcov-profiler.c | 176 ++----------------------------
>>  libgcc/libgcov-util.c     |  19 ----
>>  libgcc/libgcov.h          |  12 +-
>>  15 files changed, 179 insertions(+), 545 deletions(-)
>>
>> --
>> 2.21.0
>>



More information about the Gcc-patches mailing list