libgcov: Fix merging of topn [PR92924]
PR tree-optimization/92924 * libgcov-merge.c (merge_topn_values_set): Fix merging.
This commit is contained in:
parent
ad8e2415d6
commit
e3fe0070c1
@ -112,9 +112,11 @@ merge_topn_values_set (gcov_type *counters)
|
||||
for (unsigned i = 0; i < GCOV_TOPN_VALUES; i++)
|
||||
{
|
||||
if (read_counters[2 * i + 1] == 0)
|
||||
return;
|
||||
continue;
|
||||
|
||||
unsigned j;
|
||||
int slot = -1;
|
||||
|
||||
for (j = 0; j < GCOV_TOPN_VALUES; j++)
|
||||
{
|
||||
if (counters[2 * j] == read_counters[2 * i])
|
||||
@ -123,21 +125,26 @@ merge_topn_values_set (gcov_type *counters)
|
||||
break;
|
||||
}
|
||||
else if (counters[2 * j + 1] == 0)
|
||||
{
|
||||
counters[2 * j] += read_counters[2 * i];
|
||||
counters[2 * j + 1] += read_counters[2 * i + 1];
|
||||
break;
|
||||
}
|
||||
slot = j;
|
||||
}
|
||||
|
||||
/* We haven't found a slot, bail out. */
|
||||
if (j == GCOV_TOPN_VALUES)
|
||||
{
|
||||
if (slot > 0)
|
||||
{
|
||||
/* If we found empty slot, add the value. */
|
||||
counters[2 * slot] = read_counters[2 * i];
|
||||
counters[2 * slot + 1] = read_counters[2 * i + 1];
|
||||
}
|
||||
else
|
||||
{
|
||||
/* We haven't found a slot, bail out. */
|
||||
counters[1] = -1;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* The profile merging function for choosing the most common value.
|
||||
It is given an array COUNTERS of N_COUNTERS old counters and it
|
||||
|
Loading…
Reference in New Issue
Block a user