https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92924

--- Comment #21 from Martin Liška <marxin at gcc dot gnu.org> ---
(In reply to Jan Hubicka from comment #20)
> And thanks for the gcov-analysis improvemnets. It is quite handy tool now :)

Good to hear.

> and it is interesting to know where the many-target calls are. Clearly there
> is not much to win on walk_tree, but I guess it all depends whether program
> has a clal that is important or not.
> 
> == Stats for firefox-gcda/ ==
> stats for indirect_call:
>   total: 160441 freq: 855229359
>   not executed at all: 134863
>   invalid: 541 (0.34%) freq:283079441 (33.10%)
>   only one target: 20073 (12.51%) freq:212875999 (24.89%)
>   useful values (with not one target):
>     0 values:       86 times (0.05%) freq:    12966679 (1.52%)
>     1 values:     2698 times (1.68%) freq:   266471761 (31.16%)
>     2 values:     2077 times (1.29%) freq:    79089916 (9.25%)
>     3 values:      102 times (0.06%) freq:      745555 (0.09%)
>     4 values:        1 times (0.00%) freq:           8 (0.00%)
>   
> Top 10 invalid counters:
>   freq: 16.51%: [141240244, 0, -1, 0, 0, 0, 0, 0, 0]
>   freq: 1.63%: [13975904, 0, -1, 5684106, 16, 1665101193, 1253058,
> 1825880508, 18401625]
>   freq: 1.14%: [9754922, 0, -1, 0, 0, 0, 0, 0, 0]
>   freq: 1.02%: [8735262, 0, -1, 0, 0, 1236703056, 236175, 0, 0]
>   freq: 1.02%: [8705490, 0, -1, 0, 0, 0, 0, 0, 0]
>   freq: 0.96%: [8202145, 0, -1, 0, 0, 610851079, 9411, 0, 0]
>   freq: 0.82%: [7017709, 0, -1, 0, 0, 0, 0, 0, 0]
>   freq: 0.53%: [4542412, 0, -1, 0, 0, 0, 0, 1111754726, 423371]
>   freq: 0.47%: [4049191, 1442160442, -1, 0, 0, 0, 0, 0, 0]
>   freq: 0.45%: [3874984, 0, -1, 0, 0, 0, 0, 0, 0]
>   
>   
> stats for topn:
>   total: 6620 freq: 16644468
>   not executed at all: 6236
>   invalid: 27 (0.41%) freq:2384107 (14.32%)
>   only one target: 196 (2.96%) freq:3618218 (21.74%)
>   useful values (with not one target):
>     0 values:       32 times (0.48%) freq:     4727351 (28.40%)
>     1 values:       73 times (1.10%) freq:     5762016 (34.62%)
>     2 values:       54 times (0.82%) freq:      138553 (0.83%)
>     3 values:        2 times (0.03%) freq:       14223 (0.09%)
>     4 values:        0 times (0.00%) freq:           0 (0.00%)
>   
> Top 10 invalid counters:
>   freq: 4.81%: [801313, 0, -1, 8, 386462, 0, 0, 0, 0]
>   freq: 3.08%: [512299, 0, -1, 2048, 564657, 8192, 166154, 128, 8816]
>   freq: 2.53%: [421331, 1784, -1, 0, 0, 0, 0, 0, 0]
>   freq: 2.42%: [402980, 16, -1, 0, 0, 0, 0, 0, 0]
>   freq: 0.45%: [75216, 0, -1, 47, 174422, 0, 0, 0, 0]
>   freq: 0.23%: [37551, 0, -1, 0, 0, 0, 0, 0, 0]
>   freq: 0.23%: [37551, 0, -1, 0, 0, 0, 0, 0, 0]
>   freq: 0.17%: [28092, 0, -1, 0, 0, 47, 39898, 0, 0]
>   freq: 0.06%: [9703, 0, -1, 47, 13860, 0, 0, 2, 6264]
>   freq: 0.06%: [9561, 0, -1, 0, 0, 16, 7612, 4, 9640]
> 
> 
> and hacked libgcov build:
> 
> == Stats for firefox-gcda-hacked/ ==
> stats for indirect_call:
>   total: 160441 freq: 851736881
>   not executed at all: 134832
>   invalid: 0 (0.00%) freq:0 (0.00%)
>   only one target: 20051 (12.50%) freq:106338877 (12.48%)
>   useful values (with not one target):
>     0 values:      108 times (0.07%) freq:    15676696 (1.84%)
>     1 values:     2944 times (1.83%) freq:   595969787 (69.97%)
>     2 values:     2307 times (1.44%) freq:   127252058 (14.94%)
>     3 values:      177 times (0.11%) freq:     6339867 (0.74%)
>     4 values:       22 times (0.01%) freq:      159596 (0.02%)
> 
> Top 10 invalid counters:
> Traceback (most recent call last):
>   File "/aux/hubicka/gcov-dump-analysis.py", line 100, in <module>
>     print('  freq: %.2f%%: %s' % (100 * all_invalid[i][0] / sum,
> all_invalid[i]))

It's fixed, pull latest version of the script.

> 
> I guess we do not need rest of the dump.
> It is interesting that 1 useful value target goes up from 34% to 69%, so we
> seem to lose almost half of useful speculation info still.

That's suspicious for 1 useful value.

> 
> I am not sure why the "only one useful target" stat changes significantly.
> Maybe here is some bug in detection of it?

Can you please attach somewhere gcov data for both these runs?
I'm going to take numbers on gcc bootstrap for these 2 variants.

Reply via email to