Hello.

In current stage1 Honza spent a significant amount of time to improve profiling 
infrastructure.
New classes profile_count and profile_probability have been added and we hope 
the profile
is maintained more sensitively among various optimization passes.

My patch series makes adjustments to values of predictors defined in 
predict.def based on
what I measured on SPEC2006 and SPEC2017. For both, -O2 -march=native was used 
and it was
run on a Haswell CPU. Note that numbers should be reproducible on any CPU, as 
coverage mapping
to source files should match.

Compare to previous release (GCC 7.x branch), I made 2 main differences:
1) For GCC 7.x tuning I wrongly used train run to collect numbers -> fixed by 
running train run
with ref size of benchmarks
2) I noticed we have branches that in some cases dominate a predictor. That's 
caused by fact that
we calculate average predictor value based on number of successful branching. 
Imagine a very hot
condition in a loop. Such branch can dominate a predictor. So that I decided to 
calculate statistics
also without branches that have coverage >= 10%. Doing that shows that some 
predictors can be close
to 50%, or value chosen in predict.def is very far from what we have 
considering all branches.
In such cases, I explain why I've chosen to either remove a predictor or adjust 
based on non-dominating
branches.

The email contains of statistics for SPEC2006 suite, SPEC2017 suite and 
combined values based on these.
Apart from that, statistics for each individual benchmark can be also found.

There are numbers for 2 configurations of SPEC2006 and SPEC2017 which were run 
with the series on a Ryzen 5
machine:

+-------------------------------------------+--------+----------+----------+
| 1) ===== CPU2006: -O2 -march=native       |        |          |          |
| Performance Regressions - Execution Time  | Δ (B)  | Baseline | Current  |
| SPEC/SPEC2006/FP/459.GemsFDTD             | 3.78%  | 234.6328 | 243.5055 |
| SPEC/SPEC2006/INT/456.hmmer               | 3.08%  | 312.4193 | 322.0455 |
| SPEC/SPEC2006/FP/482.sphinx3              | 2.26%  | 370.0952 | 378.4484 |
| SPEC/SPEC2006/FP/433.milc                 | 1.95%  | 289.1947 | 294.8295 |
| SPEC/SPEC2006/FP/465.tonto                | 1.70%  | 325.3729 | 330.9081 |
| SPEC/SPEC2006/FP/416.gamess               | 1.63%  | 550.4813 | 559.4563 |
| SPEC/SPEC2006/INT/429.mcf                 | 1.61%  | 245.2728 | 249.2234 |
|                                           |        |          |          |
| Performance Improvements - Execution Time | Δ (B)  | Baseline | Current  |
| SPEC/SPEC2006/FP/436.cactusADM            | -5.94% | 305.2817 | 287.1523 |
| SPEC/SPEC2006/INT/483.xalancbmk           | -2.84% | 200.1121 | 194.4234 |
| SPEC/SPEC2006/INT/401.bzip2               | -1.31% | 378.0334 | 373.0694 |
|                                           |        |          |          |
| 2) ===== CPU2006: -Ofast -march=native    |        |          |          |
| Performance Regressions - Execution Time  | Δ (B)  | Baseline | Current  |
| SPEC/SPEC2006/FP/459.GemsFDTD             | 3.11%  | 210.9732 | 217.5323 |
| SPEC/SPEC2006/INT/429.mcf                 | 1.63%  | 242.1709 | 246.1208 |
| SPEC/SPEC2006/FP/482.sphinx3              | 1.57%  | 270.7089 | 274.9587 |
| SPEC/SPEC2006/INT/400.perlbench           | 1.40%  | 274.1239 | 277.9529 |
| SPEC/SPEC2006/FP/481.wrf                  | 1.33%  | 180.1668 | 182.555  |
|                                           |        |          |          |
| Performance Improvements - Execution Time | Δ (B)  | Baseline | Current  |
| SPEC/SPEC2006/FP/450.soplex               | -4.38% | 214.6197 | 205.2086 |
| SPEC/SPEC2006/FP/436.cactusADM            | -3.24% | 153.1062 | 148.1397 |
| SPEC/SPEC2006/FP/435.gromacs              | -2.94% | 199.6355 | 193.7684 |
| SPEC/SPEC2006/INT/471.omnetpp             | -1.93% | 285.8131 | 280.3005 |
| SPEC/SPEC2006/INT/445.gobmk               | -1.14% | 375.2672 | 370.9727 |
|                                           |        |          |          |
| 3) ===== CPU2017: -O2 -march=native       |        |          |          |
| Performance Regressions - Execution Time  | Δ (B)  | Baseline | Current  |
| SPEC/SPEC2017/INT/557.xz_r                | 2.51%  | 397.0281 | 407.0107 |
| SPEC/SPEC2017/INT/520.omnetpp_r           | 1.69%  | 443.3886 | 450.8843 |
| SPEC/SPEC2017/FP/549.fotonik3d_r          | 1.44%  | 361.6036 | 366.7952 |
| SPEC/SPEC2017/FP/508.namd_r               | 1.07%  | 198.1652 | 200.2947 |
|                                           |        |          |          |
| Performance Improvements - Execution Time | Δ (B)  | Baseline | Current  |
| SPEC/SPEC2017/INT/548.exchange2_r         | -6.78% | 433.2191 | 403.8602 |
| SPEC/SPEC2017/FP/507.cactuBSSN_r          | -1.49% | 223.5739 | 220.2388 |
| SPEC/SPEC2017/FP/511.povray_r             | -1.34% | 483.2885 | 476.8329 |
| SPEC/SPEC2017/INT/500.perlbench_r         | -1.03% | 417.0421 | 412.7557 |
|                                           |        |          |          |
| 4) ===== CPU2017: -Ofast -march=native    |        |          |          |
| Performance Regressions - Execution Time  | Δ (B)  | Baseline | Current  |
| SPEC/SPEC2017/FP/544.nab_r                | 7.67%  | 314.2308 | 338.3466 |
| SPEC/SPEC2017/FP/538.imagick_r            | 7.26%  | 352.263  | 377.8382 |
| SPEC/SPEC2017/FP/526.blender_r            | 1.56%  | 270.6487 | 274.8841 |
| SPEC/SPEC2017/INT/548.exchange2_r         | 1.55%  | 348.1742 | 353.5598 |
| SPEC/SPEC2017/INT/523.xalancbmk_r         | 1.41%  | 298.9601 | 303.1769 |
|                                           |        |          |          |
| Performance Improvements - Execution Time | Δ (B)  | Baseline | Current  |
| SPEC/SPEC2017/INT/505.mcf_r               | -1.14% | 310.5277 | 306.9915 |
| SPEC/SPEC2017/INT/500.perlbench_r         | -1.07% | 413.7797 | 409.3348 |
+-------------------------------------------+--------+----------+----------+

I'm planning to comment each predictor change in upcoming emails which
contain patches.

Apart from that the patch can bootstrap on ppc64le-redhat-linux and survives 
regression tests.

Martin

Attachment: 2017-per-benchmark.txt.bz2
Description: application/bzip

Attachment: 2006-per-benchmark.txt.bz2
Description: application/bzip

HEURISTICS                               BRANCHES  (REL)  BR. HITRATE           
 HITRATE       COVERAGE COVERAGE  (REL)  predict.def  (REL) HOT branches (>10%)
fp_opcode (on trees)                            1   0.0%      100.00%   99.97% 
/  99.97%         169555  169.56k   0.0%          90%  10.0% 100%:1
noreturn call                                   6   0.0%       66.67%    9.29% 
/  97.36%          15332   15.33k   0.0%         100% -90.7% 89%:1
loop iv compare                                87   0.1%       77.01%   80.39% 
/  80.58%      210991882  210.99M   0.0%                     17%:1
loop guard with recursion                     124   0.1%       89.52%   85.01% 
/  85.01%    97523698253   97.52G   0.9%          85%   0.0% 76%:4
extra loop exit                               163   0.1%       72.39%   86.89% 
/  92.62%     2599164174    2.60G   0.0%          83%   3.9% 68%:1
indirect call                                 510   0.4%       52.94%   48.23% 
/  93.11%    34860084930   34.86G   0.3%          86% -37.8% 83%:3
guess loop iv compare                         596   0.4%       87.08%   94.45% 
/  95.68%    47594135196   47.59G   0.5%          98%  -3.6% 87%:1
polymorphic call                              653   0.5%       60.64%   49.81% 
/  85.95%    10184258333   10.18G   0.1%          59%  -9.2% 12%:1
loop exit with recursion                      725   0.5%       72.83%   85.49% 
/  85.98%   127789677884  127.79G   1.2%          72%  13.5% 65%:4
negative return                               731   0.5%       71.14%   47.90% 
/  86.56%    14611024514   14.61G   0.1%          98% -50.1% 47%:3
const return                                  827   0.6%       52.84%   83.58% 
/  95.50%     7104928950    7.10G   0.1%          69%  14.6% 54%:5
recursive call                                978   0.7%       65.64%   63.51% 
/  87.36%    15734579342   15.73G   0.2%          75% -11.5% 30%:2
null return                                  1361   1.0%       61.94%   86.43% 
/  92.87%    15032249850   15.03G   0.1%          91%  -4.6% 53%:1
loop guard                                   2667   2.0%       54.59%   73.60% 
/  83.90%   245866667771  245.87G   2.4%          66%   7.6% 10%:1
opcode values positive (on trees)            4642   3.4%       59.35%   58.76% 
/  85.69%   378777493600  378.78G   3.6%          64%  -5.2%
loop exit                                    7109   5.3%       76.13%   88.82% 
/  91.15%  1148890223736    1.15T  11.0%          85%   3.8%
loop iterations                              9760   7.3%       99.94%   80.20% 
/  80.20%  1688097819329    1.69T  16.2%                     17%:1
pointer (on trees)                          14022  10.4%       58.54%   72.68% 
/  88.64%   157668907353  157.67G   1.5%          70%   2.7% 10%:1
call                                        22143  16.5%       61.18%   67.34% 
/  86.99%   311353504956  311.35G   3.0%          67%   0.3%
opcode values nonequal (on trees)           23459  17.4%       67.89%   65.94% 
/  83.08%   662814065153  662.81G   6.4%          66%  -0.1%
guessed loop iterations                     32907  24.4%       99.81%   92.55% 
/  92.63%  3684504131107    3.68T  35.3%                    

HEURISTICS                               BRANCHES  (REL)  BR. HITRATE           
 HITRATE       COVERAGE COVERAGE  (REL)  predict.def  (REL) HOT branches (>10%)
no prediction                               28954  21.5%       40.35%   33.11% 
/  81.31%  2188332970675    2.19T  21.0%                    
first match                                 50757  37.7%       93.00%   88.31% 
/  89.09%  6652092023444    6.65T  63.8%                    
DS theory                                   54866  40.8%       62.17%   69.81% 
/  85.39%  1590538313906    1.59T  15.2%                    
combined                                   134595 100.0%       69.11%   73.91% 
/  86.89% 10430968318253   10.43T 100.0%                    

 ===== COVERAGE THRESHOLD == 10% =====

HEURISTICS                               BRANCHES  (REL)  BR. HITRATE           
 HITRATE       COVERAGE COVERAGE  (REL)  predict.def  (REL) HOT branches (>10%)
fp_opcode (on trees)                            1   0.0%      100.00%   99.97% 
/  99.97%         169555  169.56k   0.0%          90%  10.0%
noreturn call                                   5   0.0%       80.00%   62.06% 
/  98.17%           1692    1.69k   0.0%         100% -37.9%
loop iv compare                                86   0.1%       76.74%   86.59% 
/  86.82%      175230548  175.23M   0.0%                    
loop guard with recursion                     120   0.1%       89.17%   72.16% 
/  72.17%    23498480299   23.50G   0.2%          85% -12.8%
extra loop exit                               162   0.1%       72.22%   66.89% 
/  84.59%      841523903  841.52M   0.0%          83% -16.1%
indirect call                                 507   0.4%       52.86%   59.42% 
/  84.43%     5998351879    6.00G   0.1%          86% -26.6%
guess loop iv compare                         595   0.4%       87.06%   63.59% 
/  72.78%     6373834696    6.37G   0.1%          98% -34.4%
polymorphic call                              652   0.5%       60.74%   56.30% 
/  84.19%     8995127137    9.00G   0.1%          59%  -2.7%
loop exit with recursion                      721   0.5%       72.68%   77.82% 
/  79.20%    45263271344   45.26G   0.4%          72%   5.8%
negative return                               728   0.5%       71.15%   51.10% 
/  93.41%     7718817446    7.72G   0.1%          98% -46.9%
const return                                  822   0.6%       52.55%   65.22% 
/  91.00%     3285400153    3.29G   0.0%          69%  -3.8%
recursive call                                976   0.7%       65.57%   48.06% 
/  82.01%    11054338004   11.05G   0.1%          75% -26.9%
null return                                  1360   1.0%       61.91%   71.12% 
/  84.83%     7062682174    7.06G   0.1%          91% -19.9%
loop guard                                   2666   2.0%       54.58%   70.68% 
/  82.14%   221068697936  221.07G   2.1%          66%   4.7%
opcode values positive (on trees)            4642   3.4%       59.35%   58.76% 
/  85.69%   378777493600  378.78G   3.6%          64%  -5.2%
loop exit                                    7109   5.3%       76.13%   88.82% 
/  91.15%  1148890223736    1.15T  11.0%          85%   3.8%
loop iterations                              9759   7.3%       99.94%   81.27% 
/  81.27%  1400135529329    1.40T  13.4%                    
pointer (on trees)                          14021  10.4%       58.54%   69.94% 
/  87.69%   141857126826  141.86G   1.4%          70%  -0.1%
call                                        22143  16.5%       61.18%   67.34% 
/  86.99%   311353504956  311.35G   3.0%          67%   0.3%
opcode values nonequal (on trees)           23459  17.4%       67.89%   65.94% 
/  83.08%   662814065153  662.81G   6.4%          66%  -0.1%
guessed loop iterations                     32907  24.4%       99.81%   92.55% 
/  92.63%  3684504131107    3.68T  35.3%                    

HEURISTICS                               BRANCHES  (REL)  BR. HITRATE           
 HITRATE       COVERAGE COVERAGE  (REL)  predict.def  (REL) HOT branches (>10%)
no prediction                               28954  21.5%       40.35%   33.11% 
/  81.31%  2188332970675    2.19T  21.0%                    
first match                                 50757  37.7%       93.00%   88.31% 
/  89.09%  6652092023444    6.65T  63.8%                    
DS theory                                   54866  40.8%       62.17%   69.81% 
/  85.39%  1590538313906    1.59T  15.2%                    
combined                                   134595 100.0%       69.11%   73.91% 
/  86.89% 10430968318253   10.43T 100.0%                    
HEURISTICS                               BRANCHES  (REL)  BR. HITRATE           
 HITRATE       COVERAGE COVERAGE  (REL)  predict.def  (REL) HOT branches (>10%)
fp_opcode (on trees)                            1   0.0%      100.00%   99.97% 
/  99.97%         169555  169.56k   0.0%          90%  10.0% 100%:1
noreturn call                                   4   0.0%       50.00%    2.88% 
/  97.19%          14318   14.32k   0.0%         100% -97.1% 95%:1
loop iv compare                                28   0.0%       85.71%   90.36% 
/  90.42%      142853110  142.85M   0.0%                     78%:7
loop guard with recursion                      60   0.1%       86.67%   85.00% 
/  85.01%    97187655258   97.19G   1.9%          85%   0.0% 76%:4
extra loop exit                                87   0.1%       70.11%   90.57% 
/  95.57%     2304480228    2.30G   0.0%          83%   7.6% 76%:1
guess loop iv compare                         222   0.3%       82.43%   49.49% 
/  67.79%     2939751990    2.94G   0.1%          98% -48.5% 47%:2
loop exit with recursion                      405   0.5%       72.59%   85.81% 
/  86.13%   122008014554  122.01G   2.4%          72%  13.8% 68%:4
negative return                               408   0.5%       70.10%   11.53% 
/  97.37%     4294690284    4.29G   0.1%          98% -86.5% 86%:2
indirect call                                 415   0.5%       51.81%   82.78% 
/  93.30%    13268053185   13.27G   0.3%          86%  -3.2% 63%:1
const return                                  429   0.5%       50.35%   87.87% 
/  95.79%     6093205123    6.09G   0.1%          69%  18.9% 74%:6
polymorphic call                              442   0.6%       64.71%   56.07% 
/  84.59%     5625048806    5.63G   0.1%          59%  -2.9% 43%:3
recursive call                                542   0.7%       66.97%   44.47% 
/  83.19%     6006719153    6.01G   0.1%          75% -30.5% 10%:1
null return                                   977   1.2%       61.62%   91.99% 
/  95.61%    10924810708   10.92G   0.2%          91%   1.0% 73%:1
loop guard                                   1345   1.7%       56.51%   74.99% 
/  81.44%   172002804836  172.00G   3.4%          66%   9.0% 25%:2
opcode values positive (on trees)            2420   3.1%       62.19%   54.73% 
/  85.64%   281436309157  281.44G   5.6%          64%  -9.3%
loop exit                                    4040   5.2%       75.52%   89.04% 
/  90.91%   582174829649  582.17G  11.7%          85%   4.0%
loop iterations                              5616   7.2%       99.98%   83.65% 
/  83.65%   845156713258  845.16G  16.9%                    
pointer (on trees)                           9449  12.1%       57.22%   68.91% 
/  88.62%    89205915254   89.21G   1.8%          70%  -1.1% 11%:1
opcode values nonequal (on trees)           13266  16.9%       68.97%   64.82% 
/  84.68%   258325826516  258.33G   5.2%          66%  -1.2%
call                                        14158  18.1%       63.77%   66.51% 
/  87.25%   208458745217  208.46G   4.2%          67%  -0.5% 10%:1
guessed loop iterations                     18494  23.6%       99.88%   91.98% 
/  91.98%  1706074764271    1.71T  34.2%                    

HEURISTICS                               BRANCHES  (REL)  BR. HITRATE           
 HITRATE       COVERAGE COVERAGE  (REL)  predict.def  (REL) HOT branches (>10%)
no prediction                               16937  21.6%       39.19%   39.75% 
/  81.37%   889936912032  889.94G  17.8%                    
first match                                 28674  36.6%       92.47%   88.88% 
/  89.41%  3257861669388    3.26T  65.3%                    
DS theory                                   32684  41.7%       62.54%   69.37% 
/  85.50%   839261965939  839.26G  16.8%                    
combined                                    78304 100.0%       68.45%   76.83% 
/  87.32%  4987064608146    4.99T 100.0%                    

 ===== COVERAGE THRESHOLD == 10% =====

HEURISTICS                               BRANCHES  (REL)  BR. HITRATE           
 HITRATE       COVERAGE COVERAGE  (REL)  predict.def  (REL) HOT branches (>10%)
fp_opcode (on trees)                            1   0.0%      100.00%   99.97% 
/  99.97%         169555  169.56k   0.0%          90%  10.0%
noreturn call                                   3   0.0%       66.67%    5.60% 
/  95.72%            678   678.00   0.0%         100% -94.4%
loop iv compare                                21   0.0%       80.95%   73.99% 
/  74.24%       30934006   30.93M   0.0%                    
loop guard with recursion                      56   0.1%       85.71%   71.95% 
/  71.96%    23162437304   23.16G   0.5%          85% -13.0%
extra loop exit                                86   0.1%       69.77%   71.62% 
/  92.72%      546839957  546.84M   0.0%          83% -11.4%
guess loop iv compare                         220   0.3%       82.73%   54.00% 
/  78.71%     1552771353    1.55G   0.0%          98% -44.0%
loop exit with recursion                      401   0.5%       72.32%   77.68% 
/  78.66%    39481608014   39.48G   0.8%          72%   5.7%
negative return                               406   0.5%       70.44%   75.10% 
/  89.12%      595240362  595.24M   0.0%          98% -22.9%
indirect call                                 414   0.5%       51.69%   57.08% 
/  85.30%     4945756572    4.95G   0.1%          86% -28.9%
const return                                  423   0.5%       49.65%   55.49% 
/  85.51%     1606931929    1.61G   0.0%          69% -13.5%
polymorphic call                              439   0.6%       64.46%   41.53% 
/  91.82%     3189952499    3.19G   0.1%          59% -17.5%
recursive call                                541   0.7%       67.10%   46.36% 
/  84.52%     5381178946    5.38G   0.1%          75% -28.6%
null return                                   976   1.2%       61.58%   70.38% 
/  83.77%     2955243032    2.96G   0.1%          91% -20.6%
loop guard                                   1343   1.7%       56.44%   69.15% 
/  77.77%   128679704564  128.68G   2.6%          66%   3.1%
opcode values positive (on trees)            2420   3.1%       62.19%   54.73% 
/  85.64%   281436309157  281.44G   5.6%          64%  -9.3%
loop exit                                    4040   5.2%       75.52%   89.04% 
/  90.91%   582174829649  582.17G  11.7%          85%   4.0%
loop iterations                              5616   7.2%       99.98%   83.65% 
/  83.65%   845156713258  845.16G  16.9%                    
pointer (on trees)                           9448  12.1%       57.22%   67.62% 
/  89.69%    79627977265   79.63G   1.6%          70%  -2.4%
opcode values nonequal (on trees)           13266  16.9%       68.97%   64.82% 
/  84.68%   258325826516  258.33G   5.2%          66%  -1.2%
call                                        14157  18.1%       63.76%   63.45% 
/  86.54%   187217992716  187.22G   3.8%          67%  -3.5%
guessed loop iterations                     18494  23.6%       99.88%   91.98% 
/  91.98%  1706074764271    1.71T  34.2%                    

HEURISTICS                               BRANCHES  (REL)  BR. HITRATE           
 HITRATE       COVERAGE COVERAGE  (REL)  predict.def  (REL) HOT branches (>10%)
no prediction                               16937  21.6%       39.19%   39.75% 
/  81.37%   889936912032  889.94G  17.8%                    
first match                                 28674  36.6%       92.47%   88.88% 
/  89.41%  3257861669388    3.26T  65.3%                    
DS theory                                   32684  41.7%       62.54%   69.37% 
/  85.50%   839261965939  839.26G  16.8%                    
combined                                    78304 100.0%       68.45%   76.83% 
/  87.32%  4987064608146    4.99T 100.0%                    
HEURISTICS                               BRANCHES  (REL)  BR. HITRATE           
 HITRATE       COVERAGE COVERAGE  (REL)  predict.def  (REL) HOT branches (>10%)
noreturn call                                   2   0.0%      100.00%   99.80% 
/  99.80%           1014    1.01k   0.0%         100%  -0.2% 100%:1
loop iv compare                                59   0.1%       72.88%   59.48% 
/  59.95%       68138772   68.14M   0.0%                     82%:3
loop guard with recursion                      64   0.1%       92.19%   86.13% 
/  86.35%      336042995  336.04M   0.0%          85%   1.1% 39%:2
extra loop exit                                76   0.1%       75.00%   58.11% 
/  69.50%      294683946  294.68M   0.0%          83% -24.9% 69%:2
indirect call                                  95   0.2%       57.89%   27.00% 
/  92.99%    21592031745   21.59G   0.4%          86% -59.0% 95%:2
polymorphic call                              211   0.4%       52.13%   42.09% 
/  87.63%     4559209527    4.56G   0.1%          59% -16.9% 63%:3
loop exit with recursion                      320   0.6%       73.12%   78.78% 
/  82.88%     5781663330    5.78G   0.1%          72%   6.8% 32%:3
negative return                               323   0.6%       72.45%   63.05% 
/  82.06%    10316334230   10.32G   0.2%          98% -35.0% 78%:5
guess loop iv compare                         374   0.7%       89.84%   97.41% 
/  97.51%    44654383206   44.65G   0.8%          98%  -0.6% 92%:1
null return                                   384   0.7%       62.76%   71.66% 
/  85.59%     4107439142    4.11G   0.1%          91% -19.3% 28%:2
const return                                  398   0.7%       55.53%   57.74% 
/  93.78%     1011723827    1.01G   0.0%          69% -11.3% 58%:2
recursive call                                436   0.8%       63.99%   75.27% 
/  89.93%     9727860189    9.73G   0.2%          75%   0.3% 48%:2
loop guard                                   1322   2.3%       52.65%   70.36% 
/  89.63%    73863862935   73.86G   1.4%          66%   4.4% 44%:2
opcode values positive (on trees)            2222   3.9%       56.26%   70.43% 
/  85.83%    97341184443   97.34G   1.8%          64%   6.4%
loop exit                                    3069   5.5%       76.93%   88.59% 
/  91.39%   566715394087  566.72G  10.4%          85%   3.6%
loop iterations                              4144   7.4%       99.88%   76.75% 
/  76.75%   842941106071  842.94G  15.5%                     46%:2
pointer (on trees)                           4573   8.1%       61.27%   77.58% 
/  88.67%    68462992099   68.46G   1.3%          70%   7.6% 23%:1
call                                         7985  14.2%       56.61%   69.01% 
/  86.45%   102894759739  102.89G   1.9%          67%   2.0%
opcode values nonequal (on trees)           10193  18.1%       66.48%   66.65% 
/  82.05%   404488238637  404.49G   7.4%          66%   0.6%
guessed loop iterations                     14413  25.6%       99.74%   93.04% 
/  93.19%  1978429366836    1.98T  36.3%                    

HEURISTICS                               BRANCHES  (REL)  BR. HITRATE           
 HITRATE       COVERAGE COVERAGE  (REL)  predict.def  (REL) HOT branches (>10%)
no prediction                               12017  21.3%       41.97%   28.56% 
/  81.27%  1298396058643    1.30T  23.9%                     11%:1
first match                                 22083  39.2%       93.69%   87.77% 
/  88.79%  3394230354056    3.39T  62.3%                    
DS theory                                   22182  39.4%       61.63%   70.30% 
/  85.26%   751276347967  751.28G  13.8%                    
combined                                    56291 100.0%       70.02%   71.23% 
/  86.51%  5443903710107    5.44T 100.0%                    

 ===== COVERAGE THRESHOLD == 10% =====

HEURISTICS                               BRANCHES  (REL)  BR. HITRATE           
 HITRATE       COVERAGE COVERAGE  (REL)  predict.def  (REL) HOT branches (>10%)
noreturn call                                   1   0.0%      100.00%   50.00% 
/  50.00%              2     2.00   0.0%         100% -50.0%
loop iv compare                                56   0.1%       73.21%   80.70% 
/  81.58%       12101759   12.10M   0.0%                    
loop guard with recursion                      62   0.1%       91.94%   86.43% 
/  86.79%      204613423  204.61M   0.0%          85%   1.4%
extra loop exit                                74   0.1%       74.32%   47.18% 
/  83.86%       91517959   91.52M   0.0%          83% -35.8%
indirect call                                  93   0.2%       58.06%   70.44% 
/  80.36%     1052595307    1.05G   0.0%          86% -15.6%
polymorphic call                              208   0.4%       51.92%   36.67% 
/  90.91%     1668212873    1.67G   0.0%          59% -22.3%
loop exit with recursion                      317   0.6%       72.87%   78.43% 
/  84.42%     3949926524    3.95G   0.1%          72%   6.4%
negative return                               318   0.6%       72.64%   88.38% 
/  93.21%     2259767195    2.26G   0.0%          98%  -9.6%
guess loop iv compare                         373   0.7%       89.81%   75.66% 
/  77.06%     3434082706    3.43G   0.1%          98% -22.3%
null return                                   382   0.7%       62.57%   72.54% 
/  91.82%     2968314759    2.97G   0.1%          91% -18.5%
const return                                  396   0.7%       55.56%   84.97% 
/  91.03%      425889042  425.89M   0.0%          69%  16.0%
recursive call                                434   0.8%       63.82%   52.34% 
/  80.60%     5047618851    5.05G   0.1%          75% -22.7%
loop guard                                   1320   2.3%       52.65%   65.86% 
/  81.79%    41342679266   41.34G   0.8%          66%  -0.1%
opcode values positive (on trees)            2222   3.9%       56.26%   70.43% 
/  85.83%    97341184443   97.34G   1.8%          64%   6.4%
loop exit                                    3069   5.5%       76.93%   88.59% 
/  91.39%   566715394087  566.72G  10.4%          85%   3.6%
loop iterations                              4142   7.4%       99.88%   78.21% 
/  78.21%   458991386071  458.99G   8.4%                    
pointer (on trees)                           4572   8.1%       61.26%   71.69% 
/  86.11%    52651211572   52.65G   1.0%          70%   1.7%
call                                         7985  14.2%       56.61%   69.01% 
/  86.45%   102894759739  102.89G   1.9%          67%   2.0%
opcode values nonequal (on trees)           10193  18.1%       66.48%   66.65% 
/  82.05%   404488238637  404.49G   7.4%          66%   0.6%
guessed loop iterations                     14413  25.6%       99.74%   93.04% 
/  93.19%  1978429366836    1.98T  36.3%                    

HEURISTICS                               BRANCHES  (REL)  BR. HITRATE           
 HITRATE       COVERAGE COVERAGE  (REL)  predict.def  (REL) HOT branches (>10%)
no prediction                               12016  21.3%       41.98%   29.49% 
/  81.49%  1162005681171    1.16T  21.3%                    
first match                                 22083  39.2%       93.69%   87.77% 
/  88.79%  3394230354056    3.39T  62.3%                    
DS theory                                   22182  39.4%       61.63%   70.30% 
/  85.26%   751276347967  751.28G  13.8%                    
combined                                    56291 100.0%       70.02%   71.23% 
/  86.51%  5443903710107    5.44T 100.0%                    

Reply via email to