[Bug middle-end/77484] [6/7 Regression] Static branch predictor causes ~6-8% regression of SPEC2000 GAP
hubicka at ucw dot cz
gcc-bugzilla@gcc.gnu.org
Fri Jan 6 12:46:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77484
--- Comment #20 from Jan Hubicka <hubicka at ucw dot cz> ---
Hi,
it turns out that Martin added another column to his statistics script which I
have misinterpretted.
https://gcc.opensuse.org/SPEC/CINT/sb-terbium-head-64/recent.html also shows
interesting reaction
to the change. I will update the probabilities to correct values one by one
and let us see
how benchmarks react. Is changing one a day enough for periodic testers to
catch up?
The hitrates on spec2k6 combined with spec v6 is as follows.
It means that indirect call should have 14%, call 67% and polymorphic call
should have oposite outcime and 59% The statistic samples are quite small and
dominated by one use, so we may diverge from those values if it seem to make
sense.
Honza
COMBINED
========
HEURISTICS BRANCHES (REL) BR. HITRATE
HITRATE COVERAGE COVERAGE (REL)
loop guard with recursion 13 0.0% 92.31% 85.06%
/ 85.06% 6672440267 6.67G 0.4%
Fortran loop preheader 42 0.0% 97.62% 97.78%
/ 99.07% 1448718 1.45M 0.0%
loop iv compare 71 0.1% 78.87% 49.26%
/ 63.89% 163168352 163.17M 0.0%
loop exit with recursion 85 0.1% 75.29% 84.89%
/ 86.96% 9873741435 9.87G 0.6%
extra loop exit 98 0.1% 71.43% 31.39%
/ 76.96% 312263024 312.26M 0.0%
recursive call 121 0.1% 64.46% 37.55%
/ 82.78% 531996473 532.00M 0.0%
Fortran repeated allocation/deallocation 392 0.4% 100.00% 100.00%
/ 100.00% 630 630.00 0.0%
guess loop iv compare 402 0.4% 90.05% 95.82%
/ 96.04% 5683151771 5.68G 0.3%
indirect call 425 0.4% 52.00% 14.06%
/ 91.41% 3815332963 3.82G 0.2%
Fortran zero-sized array 549 0.6% 99.64% 100.00%
/ 100.00% 20794317 20.79M 0.0%
const return 651 0.7% 94.93% 84.04%
/ 93.18% 1067774653 1.07G 0.1%
null return 716 0.7% 92.18% 91.83%
/ 93.39% 3421321956 3.42G 0.2%
negative return 734 0.8% 97.14% 64.62%
/ 65.01% 4744886315 4.74G 0.3%
continue 773 0.8% 66.11% 79.71%
/ 87.43% 29089649102 29.09G 1.6%
polymorphic call 803 0.8% 43.59% 59.05%
/ 86.63% 3828555030 3.83G 0.2%
Fortran fail alloc 944 1.0% 100.00% 100.00%
/ 100.00% 167691 167.69K 0.0%
Fortran overflow 1237 1.3% 100.00% 100.00%
/ 100.00% 55197159 55.20M 0.0%
loop guard 1861 1.9% 48.90% 69.86%
/ 84.62% 17979028127 17.98G 1.0%
noreturn call 3769 3.9% 99.95% 100.00%
/ 100.00% 8175053425 8.18G 0.5%
loop exit 5017 5.2% 83.50% 90.01%
/ 91.68% 143815212145 143.82G 8.1%
opcode values positive (on trees) 5763 6.0% 66.23% 60.41%
/ 86.25% 43349211449 43.35G 2.4%
loop iterations 6276 6.6% 99.94% 78.54%
/ 78.54% 662671304506 662.67G 37.3%
early return (on trees) 9512 9.9% 61.02% 58.05%
/ 85.82% 56222551226 56.22G 3.2%
pointer (on trees) 10969 11.5% 63.29% 75.18%
/ 89.33% 23318221976 23.32G 1.3%
opcode values nonequal (on trees) 11633 12.2% 63.23% 74.53%
/ 85.23% 118246028039 118.25G 6.7%
guessed loop iterations 13631 14.2% 96.54% 92.61%
/ 93.12% 417886815060 417.89G 23.5%
call 20747 21.7% 54.47% 67.24%
/ 92.56% 50096613362 50.10G 2.8%
More information about the Gcc-bugs
mailing list