https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92924
--- Comment #16 from Martin Liška <marxin at gcc dot gnu.org> --- (In reply to Jan Hubicka from comment #15) > This is frequency scaled by #of executions: > > == Stats for /aux/hubicka/firefox2019-trunktest == > stats for indirect_call: > total: 160451 > invalid: 542 (0.34%) freq:276193364 (33.87%) > tracked values: > 0 values: 134367 times (83.74%) freq: 1338929 (0.16%) > 1 values: 21514 times (13.41%) freq: 264147030 (32.39%) > 2 values: 3151 times (1.96%) freq: 136985793 (16.80%) > 3 values: 866 times (0.54%) freq: 136555223 (16.75%) > 4 values: 11 times (0.01%) freq: 248712 (0.03%) > > stats for topn: > total: 7140 > invalid: 24 (0.34%) freq:2147128 (15.00%) > tracked values: > 0 values: 6776 times (94.90%) freq: 2107083 (14.72%) > 1 values: 242 times (3.39%) freq: 6758801 (47.22%) > 2 values: 79 times (1.11%) freq: 2233704 (15.60%) > 3 values: 19 times (0.27%) freq: 1067609 (7.46%) > 4 values: 0 times (0.00%) freq: 0 (0.00%) > > So this makes invalidation rate quite high. Hm, you are right. Can you please send me the updates Python script? I would be interested in changing N to a higher number. And we may make a hacked version of gcov runtime to print which values are collected for each topn and indirect call and what is result of merging. We can use it to verify that merging works fine. I'll prepare a patch tomorrow and run it on the GCC bootstrap.