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, 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