https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86952
--- Comment #20 from Daniel Borkmann <daniel at iogearbox dot net> --- (In reply to Martin Liška from comment #19) > Ok, I updated the benchmark and push it here: > https://github.com/marxin/microbenchmark-1 > > And I see following on my Haswell machine: Thanks for working on it! Bit strange why some of your numbers are quite fluctuating e.g. in your 'normal' column. What do you use to tune your setup for testing? I've been running the `make prep` part which I added back then, and the numbers I see are quite stable. I ran a quick test this morning with your repo, and here's what I got for the round-robin walk: * Xeon E3-1240 (3.7GHz): # ./test.py normal retpoline retpo+no-JT retpo+JT=20 retpo+JT=40 cases: 8: 0.49 (100%) 2.09 (426%) 0.53 (108%) 0.53 (108%) 0.53 (108%) cases: 16: 0.49 (100%) 2.09 (426%) 0.58 (119%) 0.58 (119%) 0.58 (119%) cases: 32: 0.49 (100%) 2.09 (426%) 0.61 (125%) 2.09 (426%) 0.61 (125%) cases: 64: 0.49 (100%) 2.26 (458%) 0.69 (140%) 2.27 (459%) 2.27 (459%) cases: 128: 0.50 (100%) 2.37 (476%) 0.76 (153%) 2.32 (466%) 2.41 (483%) cases: 256: 0.52 (100%) 2.33 (451%) 0.91 (175%) 2.33 (450%) 2.36 (456%) cases: 1024: 1.05 (100%) 2.54 (242%) 1.08 (103%) 2.59 (246%) 2.54 (242%) cases: 2048: 1.63 (100%) 2.56 (157%) 1.94 (119%) 2.61 (160%) 2.59 (159%) cases: 4096: 2.19 (100%) 3.12 (143%) 3.22 (147%) 3.09 (142%) 3.13 (143%) * Xeon Gold 5120 (2.6GHz): # ./test.py normal retpoline retpo+no-JT retpo+JT=20 retpo+JT=40 cases: 8: 0.70 (100%) 2.98 (425%) 0.75 (107%) 0.75 (107%) 0.75 (107%) cases: 16: 0.70 (100%) 2.98 (425%) 0.82 (117%) 0.82 (117%) 0.82 (117%) cases: 32: 0.70 (100%) 3.01 (430%) 0.87 (124%) 2.98 (426%) 0.87 (124%) cases: 64: 0.70 (100%) 3.52 (501%) 0.94 (134%) 3.52 (501%) 3.52 (501%) cases: 128: 0.71 (100%) 3.51 (495%) 1.07 (151%) 3.50 (495%) 3.50 (494%) cases: 256: 0.76 (100%) 3.14 (414%) 1.27 (167%) 3.14 (414%) 3.14 (414%) cases: 1024: 1.46 (100%) 3.36 (230%) 1.49 (102%) 3.36 (230%) 3.36 (230%) cases: 2048: 2.25 (100%) 3.19 (142%) 2.70 (120%) 3.19 (142%) 3.19 (142%) cases: 4096: 2.90 (100%) 3.74 (129%) 4.48 (155%) 3.73 (129%) 3.72 (129%) Probably makes sense to also add other walk tests aka input distributions for foo{,_no_table,_no_retpol}(<x>) for further comparison if plan would be to disable jump tables entirely.