On 1/21/21 7:45 PM, Jan Hubicka wrote:
For this reason we merge by computing average, which is stable over reordering the indices....
Looking at the implementation, we merge by using minimum value: /* Time profiles are merged so that minimum from all valid (greater than zero) is stored. There could be a fork that creates new counters. To have the profile stable, we chosen to pick the smallest function visit time. */ void __gcov_merge_time_profile (gcov_type *counters, unsigned n_counters) { unsigned int i; gcov_type value; for (i = 0; i < n_counters; i++) { value = gcov_get_counter_target (); if (value && (!counters[i] || value < counters[i])) counters[i] = value; } } #endif /* L_gcov_merge_time_profile */ Martin