| Summary: | [ES6] Implement tail calls in the DFG | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | Basile Clement <basile_clement> | ||||||||||
| Component: | JavaScriptCore | Assignee: | Michael Saboff <msaboff> | ||||||||||
| Status: | RESOLVED FIXED | ||||||||||||
| Severity: | Normal | CC: | msaboff | ||||||||||
| Priority: | P2 | ||||||||||||
| Version: | WebKit Nightly Build | ||||||||||||
| Hardware: | Unspecified | ||||||||||||
| OS: | Unspecified | ||||||||||||
| Bug Depends on: | 148662 | ||||||||||||
| Bug Blocks: | 148664 | ||||||||||||
| Attachments: |
|
||||||||||||
|
Description
Basile Clement
2015-08-31 17:53:33 PDT
*** Bug 148396 has been marked as a duplicate of this bug. *** Created attachment 260629 [details]
Patch
Created attachment 261795 [details]
Rebased patch
Performance looks neutral.
Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on msaboff-pro (MacPro5,1).
VMs tested:
"Baseline" at /Volumes/Data/src/webkit.baseline/WebKitBuild/Release/JavaScriptCore.framework/Versions/A/Resources/jsc
"DFGTailCall" at /Volumes/Data/src/webkit/WebKitBuild/Release/JavaScriptCore.framework/Versions/A/Resources/jsc
Collected 4 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample measurements.
Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level
timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds.
Baseline DFGTailCall
SunSpider:
3d-cube 7.7888+-0.3978 ? 8.2094+-0.5329 ? might be 1.0540x slower
3d-morph 8.0474+-0.2568 ? 8.1255+-0.2713 ?
3d-raytrace 8.7263+-0.3312 ? 8.8106+-0.3233 ?
access-binary-trees 3.1325+-0.2051 ? 3.2696+-0.3624 ? might be 1.0438x slower
access-fannkuch 8.5892+-0.2342 8.4156+-0.1804 might be 1.0206x faster
access-nbody 4.1957+-0.1718 ? 4.2846+-0.0695 ? might be 1.0212x slower
access-nsieve 4.5762+-0.1689 4.5161+-0.1670 might be 1.0133x faster
bitops-3bit-bits-in-byte 1.7435+-0.1100 ? 1.7438+-0.2322 ?
bitops-bits-in-byte 5.6418+-0.1019 5.5717+-0.0673 might be 1.0126x faster
bitops-bitwise-and 2.8099+-0.1876 ? 2.8205+-0.1363 ?
bitops-nsieve-bits 4.3158+-0.1175 ? 4.3914+-0.2366 ? might be 1.0175x slower
controlflow-recursive 3.4345+-0.1858 ? 3.4379+-0.1225 ?
crypto-aes 6.3780+-0.2457 ? 6.3954+-0.1843 ?
crypto-md5 3.8901+-0.1705 ? 3.9142+-0.1973 ?
crypto-sha1 3.3477+-0.2048 ? 3.3715+-0.1143 ?
date-format-tofte 12.3043+-0.1870 ? 13.1113+-1.0023 ? might be 1.0656x slower
date-format-xparb 7.3878+-0.2446 ? 7.5095+-0.2658 ? might be 1.0165x slower
math-cordic 4.3063+-0.1574 ? 4.3132+-0.0501 ?
math-partial-sums 9.8937+-0.1065 ^ 9.5465+-0.1925 ^ definitely 1.0364x faster
math-spectral-norm 2.9990+-0.1181 ? 3.1037+-0.1738 ? might be 1.0349x slower
regexp-dna 9.9925+-0.5481 9.9820+-0.4612
string-base64 6.5573+-0.1596 ? 6.8555+-0.6031 ? might be 1.0455x slower
string-fasta 9.2047+-0.3852 ? 9.2399+-0.1782 ?
string-tagcloud 12.7942+-0.3663 12.7661+-0.3584
string-unpack-code 26.5804+-0.7743 ? 26.8784+-0.7939 ? might be 1.0112x slower
string-validate-input 6.7125+-0.0339 ? 6.7983+-0.2925 ? might be 1.0128x slower
<arithmetic> 7.1289+-0.0762 ? 7.2070+-0.0679 ? might be 1.0110x slower
Baseline DFGTailCall
LongSpider:
3d-cube 1179.5365+-19.7070 ? 1180.4827+-17.3837 ?
3d-morph 1885.6129+-4.3127 ? 1887.4265+-1.9385 ?
3d-raytrace 1026.8480+-5.0015 1025.7185+-4.2906
access-binary-trees 1413.7698+-19.7762 1411.8890+-9.7762
access-fannkuch 452.7803+-5.3857 444.5068+-20.1574 might be 1.0186x faster
access-nbody 1024.5708+-23.7799 1016.6013+-2.8586
access-nsieve 671.8754+-6.9141 ? 681.2875+-6.8282 ? might be 1.0140x slower
bitops-3bit-bits-in-byte 44.8389+-1.4670 44.2724+-0.3127 might be 1.0128x faster
bitops-bits-in-byte 344.1475+-5.8110 338.9313+-11.5732 might be 1.0154x faster
bitops-nsieve-bits 619.5832+-4.5638 ? 624.4348+-9.4335 ?
controlflow-recursive 754.0759+-16.9099 749.0163+-0.4765
crypto-aes 897.7081+-17.1670 897.2540+-7.6019
crypto-md5 782.5632+-8.9274 ? 786.7239+-10.4105 ?
crypto-sha1 1061.7086+-22.0916 1057.2622+-30.2118
date-format-tofte 978.7759+-26.1332 ? 1033.5573+-100.7544 ? might be 1.0560x slower
date-format-xparb 1071.0712+-56.2105 ? 1241.3810+-273.4755 ? might be 1.1590x slower
hash-map 232.0809+-2.1058 ? 234.3266+-4.9796 ?
math-cordic 751.7740+-116.6195 637.5632+-3.3749 might be 1.1791x faster
math-partial-sums 1143.8297+-30.8765 1131.2697+-4.4174 might be 1.0111x faster
math-spectral-norm 1068.0338+-2.5707 ? 1068.0542+-2.9279 ?
string-base64 535.1267+-5.2008 ? 539.9913+-6.6800 ?
string-fasta 581.4053+-7.3173 ? 582.7686+-2.1562 ?
string-tagcloud 289.2969+-9.1040 ? 292.4290+-9.0782 ? might be 1.0108x slower
<geometric> 672.3446+-5.2878 ? 672.7918+-8.6708 ? might be 1.0007x slower
Baseline DFGTailCall
V8Spider:
crypto 70.9175+-1.1216 ? 71.3063+-2.5127 ?
deltablue 92.8710+-7.1900 ? 93.6901+-3.0011 ?
earley-boyer 64.7821+-2.7145 63.8411+-1.2598 might be 1.0147x faster
raytrace 39.4613+-0.4889 39.4335+-0.9815
regexp 103.6878+-0.8621 ? 104.6589+-0.7060 ?
richards 82.6918+-1.4820 ? 82.9915+-0.7769 ?
splay 51.0956+-1.1482 50.2823+-1.1103 might be 1.0162x faster
<geometric> 68.8949+-0.7162 68.8612+-0.7976 might be 1.0005x faster
Baseline DFGTailCall
Octane:
encrypt 0.30902+-0.00256 0.30648+-0.00525
decrypt 5.73096+-0.05170 ? 5.75263+-0.05052 ?
deltablue x2 0.27214+-0.02245 0.27027+-0.02358
earley 0.52070+-0.00446 ? 0.52751+-0.00866 ? might be 1.0131x slower
boyer 8.77211+-0.08966 ? 8.96322+-0.23356 ? might be 1.0218x slower
navier-stokes x2 6.38042+-0.02555 ? 6.38544+-0.04132 ?
raytrace x2 1.60174+-0.02221 1.58881+-0.00719
richards x2 0.17346+-0.00512 0.17185+-0.00193
splay x2 0.51924+-0.00160 0.51605+-0.00295
regexp x2 38.52270+-1.97708 ? 38.69635+-0.37219 ?
pdfjs x2 59.69286+-0.48333 ? 59.90907+-0.52232 ?
mandreel x2 67.70280+-1.00525 67.32283+-0.48922
gbemu x2 59.11966+-1.51125 57.86253+-1.32638 might be 1.0217x faster
closure 0.92742+-0.00497 ? 0.93870+-0.00683 ? might be 1.0122x slower
jquery 11.79645+-0.05561 ? 11.81784+-0.05196 ?
box2d x2 17.56778+-0.27145 ? 17.73687+-0.56692 ?
zlib x2 565.33777+-43.96923 ? 578.10109+-9.20658 ? might be 1.0226x slower
typescript x2 1065.97498+-22.57863 ? 1078.02136+-28.01936 ? might be 1.0113x slower
<geometric> 9.06409+-0.05747 ? 9.07471+-0.06644 ? might be 1.0012x slower
Baseline DFGTailCall
Kraken:
ai-astar 347.704+-14.200 332.847+-9.157 might be 1.0446x faster
audio-beat-detection 80.502+-0.649 ? 81.819+-2.181 ? might be 1.0164x slower
audio-dft 128.389+-0.882 128.307+-2.787
audio-fft 58.479+-0.236 ? 58.932+-0.949 ?
audio-oscillator 102.686+-1.380 102.256+-0.960
imaging-darkroom 96.129+-0.949 ? 97.856+-0.793 ? might be 1.0180x slower
imaging-desaturate 89.575+-0.306 89.368+-1.482
imaging-gaussian-blur 144.259+-4.262 143.533+-2.267
json-parse-financial 66.805+-1.734 66.434+-0.965
json-stringify-tinderbox 41.045+-1.238 ? 41.607+-1.888 ? might be 1.0137x slower
stanford-crypto-aes 64.130+-3.170 ? 67.014+-4.718 ? might be 1.0450x slower
stanford-crypto-ccm 58.172+-0.715 ? 59.839+-2.825 ? might be 1.0286x slower
stanford-crypto-pbkdf2 140.830+-1.367 ? 142.955+-2.704 ? might be 1.0151x slower
stanford-crypto-sha256-iterative 58.572+-2.557 57.417+-0.902 might be 1.0201x faster
<arithmetic> 105.520+-1.411 105.013+-1.130 might be 1.0048x faster
Baseline DFGTailCall
JSRegress:
abc-forward-loop-equal 55.3311+-0.7160 55.2350+-0.5722
abc-postfix-backward-loop 54.5864+-0.4585 ? 54.6446+-0.4678 ?
abc-simple-backward-loop 54.4604+-1.0095 ? 56.0410+-0.8554 ? might be 1.0290x slower
abc-simple-forward-loop 54.5222+-0.4587 54.4584+-0.4181
abc-skippy-loop 38.2791+-1.5219 38.0302+-1.4265
abs-boolean 3.8292+-0.1438 ? 3.8370+-0.1724 ?
adapt-to-double-divide 16.9408+-0.7455 16.8444+-0.4975
aliased-arguments-getbyval 1.7945+-0.3095 1.6440+-0.1958 might be 1.0916x faster
allocate-big-object 3.8622+-0.2168 ? 3.9012+-0.1266 ? might be 1.0101x slower
arguments-named-and-reflective 14.3739+-0.3705 14.3485+-0.5512
arguments-out-of-bounds 14.2553+-0.1664 ? 14.4144+-0.5341 ? might be 1.0112x slower
arguments-strict-mode 12.3326+-0.5127 12.3292+-0.9000
arguments 10.9042+-0.3589 ? 11.1893+-0.1446 ? might be 1.0261x slower
arity-mismatch-inlining 1.3828+-0.0668 1.3232+-0.0846 might be 1.0451x faster
array-access-polymorphic-structure 9.2903+-0.1527 9.2654+-0.2084
array-nonarray-polymorhpic-access 39.2097+-1.2938 39.0497+-1.7026
array-prototype-every 119.6423+-2.4877 ? 120.5378+-5.1342 ?
array-prototype-forEach 119.5713+-2.5932 116.6915+-2.1569 might be 1.0247x faster
array-prototype-map 129.5639+-1.2711 ? 131.2197+-4.9119 ? might be 1.0128x slower
array-prototype-reduce 111.5253+-2.6502 110.9019+-0.3327
array-prototype-reduceRight 110.5060+-0.8547 ? 111.6653+-2.1224 ? might be 1.0105x slower
array-prototype-some 122.1015+-5.7647 120.9609+-4.4705
array-splice-contiguous 33.3472+-0.9739 33.0060+-0.4786 might be 1.0103x faster
array-with-double-add 5.6218+-0.1554 ? 5.7079+-0.0752 ? might be 1.0153x slower
array-with-double-increment 4.1847+-0.0859 ? 4.1980+-0.2142 ?
array-with-double-mul-add 7.2412+-0.1799 7.2336+-0.1551
array-with-double-sum 4.3486+-0.0993 ? 4.4576+-0.1398 ? might be 1.0251x slower
array-with-int32-add-sub 9.5880+-0.1370 9.3790+-0.2166 might be 1.0223x faster
array-with-int32-or-double-sum 4.5386+-0.1175 ? 4.5667+-0.0827 ?
ArrayBuffer-DataView-alloc-large-long-lived
45.9347+-0.2573 45.5042+-0.9624
ArrayBuffer-DataView-alloc-long-lived 18.0393+-0.1821 ? 18.2972+-0.4053 ? might be 1.0143x slower
ArrayBuffer-Int32Array-byteOffset 5.4985+-0.3491 ? 5.5275+-0.1112 ?
ArrayBuffer-Int8Array-alloc-large-long-lived
45.8167+-0.7418 ? 45.8613+-1.4964 ?
ArrayBuffer-Int8Array-alloc-long-lived-buffer
29.7310+-0.2157 ? 30.2057+-1.1100 ? might be 1.0160x slower
ArrayBuffer-Int8Array-alloc-long-lived 16.8595+-0.2139 ? 17.1170+-0.4591 ? might be 1.0153x slower
ArrayBuffer-Int8Array-alloc 15.0150+-1.3360 14.8759+-0.6938
arrowfunction-call 14.8674+-0.1697 ? 14.9205+-0.1570 ?
asmjs_bool_bug 9.8812+-0.1152 ^ 9.4711+-0.1381 ^ definitely 1.0433x faster
assign-custom-setter-polymorphic 4.2610+-0.1103 ? 4.3608+-0.1292 ? might be 1.0234x slower
assign-custom-setter 6.0833+-0.5655 5.9625+-0.1434 might be 1.0203x faster
basic-set 11.0873+-0.2897 11.0016+-0.3812
big-int-mul 5.8458+-0.0890 5.8340+-0.1729
boolean-test 4.5223+-0.1206 4.5165+-0.1103
branch-fold 4.7630+-0.1098 ? 4.8396+-0.1962 ? might be 1.0161x slower
branch-on-string-as-boolean 22.2302+-1.1751 ? 22.3675+-0.6960 ?
by-val-generic 3.7742+-0.1753 3.7442+-0.1865
call-spread-apply 39.6058+-1.9722 ? 42.1378+-1.0384 ? might be 1.0639x slower
call-spread-call 31.0830+-0.9158 ? 33.2073+-2.8239 ? might be 1.0683x slower
captured-assignments 0.6443+-0.0197 ? 0.6763+-0.0757 ? might be 1.0496x slower
cast-int-to-double 8.5660+-0.1428 ? 8.6931+-0.2015 ? might be 1.0148x slower
cell-argument 8.5723+-0.2849 8.5608+-0.6001
cfg-simplify 3.8461+-0.1771 3.7891+-0.1315 might be 1.0150x faster
chain-getter-access 10.3351+-0.2094 ? 10.3544+-0.2782 ?
cmpeq-obj-to-obj-other 14.6263+-0.3317 ? 15.0491+-0.1156 ? might be 1.0289x slower
constant-test 8.0894+-0.1512 ? 8.1897+-0.2027 ? might be 1.0124x slower
create-lots-of-functions 17.0063+-0.8647 16.6900+-0.4750 might be 1.0190x faster
cse-new-array-buffer 3.2469+-0.2403 ? 3.3925+-0.2495 ? might be 1.0448x slower
cse-new-array 3.5253+-0.2984 3.5229+-0.3579
DataView-custom-properties 54.5881+-2.9577 54.3990+-4.4880
delay-tear-off-arguments-strictmode 19.1149+-0.8998 ! 22.9505+-0.2580 ! definitely 1.2007x slower
deltablue-varargs 286.2195+-20.5402 282.6075+-23.1642 might be 1.0128x faster
destructuring-arguments 242.1696+-8.8550 ? 244.6104+-2.4336 ? might be 1.0101x slower
destructuring-parameters-overridden-by-function
0.7216+-0.1050 ? 0.7905+-0.2391 ? might be 1.0955x slower
destructuring-swap 7.9072+-0.0856 7.8936+-0.1092
direct-arguments-getbyval 1.6138+-0.2423 ? 1.6245+-0.2321 ?
div-boolean-double 5.6387+-0.0889 5.5267+-0.0824 might be 1.0203x faster
div-boolean 10.0410+-0.1872 ? 10.1172+-0.1221 ?
double-get-by-val-out-of-bounds 6.1592+-0.1974 ? 6.1702+-0.0321 ?
double-pollution-getbyval 9.8017+-0.0746 ? 9.8402+-0.2331 ?
double-pollution-putbyoffset 5.6603+-0.0865 ? 5.6922+-0.1155 ?
double-real-use 39.3621+-0.2082 ? 39.6688+-1.1997 ?
double-to-int32-typed-array-no-inline 3.0776+-0.2332 ? 3.1323+-0.1732 ? might be 1.0178x slower
double-to-int32-typed-array 2.9897+-0.1429 2.9708+-0.1274
double-to-uint32-typed-array-no-inline 3.2231+-0.0832 ? 3.2385+-0.1502 ?
double-to-uint32-typed-array 2.8542+-0.0452 ? 2.9752+-0.1217 ? might be 1.0424x slower
elidable-new-object-dag 55.5906+-1.9936 54.9734+-1.5579 might be 1.0112x faster
elidable-new-object-roflcopter 53.5666+-0.6806 ? 53.7802+-1.4664 ?
elidable-new-object-then-call 50.3943+-1.3090 49.8466+-1.5436 might be 1.0110x faster
elidable-new-object-tree 64.3982+-1.1935 ? 65.5256+-0.8401 ? might be 1.0175x slower
empty-string-plus-int 7.6281+-0.1934 7.6116+-0.1635
emscripten-cube2hash 46.2209+-3.3901 45.0978+-0.8445 might be 1.0249x faster
exit-length-on-plain-object 18.4730+-0.2264 ? 18.8950+-0.4024 ? might be 1.0228x slower
external-arguments-getbyval 1.9639+-0.4106 1.7302+-0.1515 might be 1.1351x faster
external-arguments-putbyval 3.2880+-0.0644 3.1769+-0.2403 might be 1.0350x faster
fixed-typed-array-storage-var-index 1.6885+-0.0983 ? 1.7040+-0.0888 ?
fixed-typed-array-storage 1.2508+-0.0230 ? 1.3069+-0.1487 ? might be 1.0449x slower
Float32Array-matrix-mult 6.1191+-0.1136 ? 6.1326+-0.3574 ?
Float32Array-to-Float64Array-set 77.8887+-2.4455 74.8903+-0.7232 might be 1.0400x faster
Float64Array-alloc-long-lived 95.3076+-2.5815 ? 96.0162+-2.7563 ?
Float64Array-to-Int16Array-set 94.4171+-2.8071 ? 94.4580+-0.6487 ?
fold-double-to-int 18.8237+-0.3176 ? 19.1255+-0.4789 ? might be 1.0160x slower
fold-get-by-id-to-multi-get-by-offset-rare-int
12.4022+-0.4526 ? 12.4150+-0.4748 ?
fold-get-by-id-to-multi-get-by-offset 10.3164+-0.5596 ? 10.6585+-0.7682 ? might be 1.0332x slower
fold-multi-get-by-offset-to-get-by-offset
8.8873+-0.6471 ? 9.0765+-0.9486 ? might be 1.0213x slower
fold-multi-get-by-offset-to-poly-get-by-offset
9.8825+-0.0661 9.5205+-0.9849 might be 1.0380x faster
fold-multi-put-by-offset-to-poly-put-by-offset
10.9700+-0.5951 10.8301+-0.4545 might be 1.0129x faster
fold-multi-put-by-offset-to-put-by-offset
8.1747+-0.5973 ? 8.1831+-0.7922 ?
fold-multi-put-by-offset-to-replace-or-transition-put-by-offset
15.4023+-1.1939 15.3929+-0.5734
fold-put-by-id-to-multi-put-by-offset 11.7297+-0.9880 11.7217+-0.5884
fold-put-by-val-with-string-to-multi-put-by-offset
12.6503+-0.6396 ? 12.6620+-1.0933 ?
fold-put-by-val-with-symbol-to-multi-put-by-offset
12.4619+-0.8654 ? 12.5367+-0.8806 ?
fold-put-structure 7.8521+-0.8788 7.7603+-0.0468 might be 1.0118x faster
for-of-iterate-array-entries 15.7335+-0.4452 ? 16.1095+-0.1728 ? might be 1.0239x slower
for-of-iterate-array-keys 4.6548+-0.1678 4.4893+-0.3201 might be 1.0369x faster
for-of-iterate-array-values 4.3502+-0.2964 ? 4.4396+-0.1711 ? might be 1.0206x slower
fround 19.2032+-1.1800 18.9995+-1.1553 might be 1.0107x faster
ftl-library-inlining-dataview 95.7421+-4.4737 ? 99.3726+-5.0023 ? might be 1.0379x slower
ftl-library-inlining 135.9210+-20.4549 ? 136.3967+-21.9537 ?
function-call 14.9718+-0.2811 14.6810+-0.4211 might be 1.0198x faster
function-dot-apply 3.2668+-0.1158 3.1328+-0.1170 might be 1.0428x faster
function-test 4.4569+-0.1912 4.4095+-0.1185 might be 1.0108x faster
function-with-eval 147.0847+-6.2672 144.5777+-0.6269 might be 1.0173x faster
gcse-poly-get-less-obvious 27.9525+-4.2565 ? 30.8727+-0.6242 ? might be 1.1045x slower
gcse-poly-get 31.5898+-6.1060 ? 34.1845+-0.9260 ? might be 1.0821x slower
gcse 6.3725+-0.0239 ? 6.3876+-0.0703 ?
get-by-id-bimorphic-check-structure-elimination-simple
3.2191+-0.1013 ? 3.3238+-0.0478 ? might be 1.0325x slower
get-by-id-bimorphic-check-structure-elimination
8.4140+-0.2181 ? 8.4174+-0.1042 ?
get-by-id-chain-from-try-block 3.4435+-0.1078 ? 3.5331+-0.3209 ? might be 1.0260x slower
get-by-id-check-structure-elimination 7.9521+-0.1357 ? 8.0190+-0.1201 ?
get-by-id-proto-or-self 21.5109+-2.7697 21.2623+-2.7087 might be 1.0117x faster
get-by-id-quadmorphic-check-structure-elimination-simple
3.9139+-0.1307 3.8876+-0.1337
get-by-id-self-or-proto 20.3011+-0.5647 ? 23.4559+-3.9708 ? might be 1.1554x slower
get-by-val-out-of-bounds 5.8170+-0.3137 ? 5.8719+-0.2341 ?
get-by-val-with-string-bimorphic-check-structure-elimination-simple
4.2888+-0.1658 ? 4.3130+-0.0837 ?
get-by-val-with-string-bimorphic-check-structure-elimination
10.2550+-0.2955 10.2402+-0.1130
get-by-val-with-string-chain-from-try-block
3.4482+-0.1826 ? 3.5675+-0.1706 ? might be 1.0346x slower
get-by-val-with-string-check-structure-elimination
9.2450+-0.2220 9.1584+-0.2659
get-by-val-with-string-proto-or-self 21.2010+-3.0854 ? 21.4015+-2.2477 ?
get-by-val-with-string-quadmorphic-check-structure-elimination-simple
4.7819+-0.1609 ! 5.1091+-0.0749 ! definitely 1.0684x slower
get-by-val-with-string-self-or-proto 21.6230+-5.3376 ? 22.6007+-4.6402 ? might be 1.0452x slower
get-by-val-with-symbol-bimorphic-check-structure-elimination-simple
4.8340+-0.1028 4.7760+-0.1180 might be 1.0121x faster
get-by-val-with-symbol-bimorphic-check-structure-elimination
19.4860+-0.6114 ? 19.5811+-0.3196 ?
get-by-val-with-symbol-chain-from-try-block
3.5037+-0.1327 ? 3.7463+-0.1214 ? might be 1.0692x slower
get-by-val-with-symbol-check-structure-elimination
18.2292+-0.4831 ? 18.4967+-0.5844 ? might be 1.0147x slower
get-by-val-with-symbol-proto-or-self 21.9639+-3.2792 ? 23.0912+-4.5837 ? might be 1.0513x slower
get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple
5.7471+-0.1102 ! 6.2165+-0.0358 ! definitely 1.0817x slower
get-by-val-with-symbol-self-or-proto 21.0655+-0.6345 20.5322+-0.5720 might be 1.0260x faster
get_callee_monomorphic 3.6478+-0.2417 ? 3.6890+-0.0435 ? might be 1.0113x slower
get_callee_polymorphic 4.7430+-0.2521 ? 4.7590+-0.1327 ?
getter-no-activation 5.9073+-0.1095 ? 5.9442+-0.0873 ?
getter-prototype 14.2040+-0.3659 14.0000+-0.3442 might be 1.0146x faster
getter-richards 132.1426+-2.6470 ? 135.8157+-2.8346 ? might be 1.0278x slower
getter 7.3760+-0.1092 ? 7.6945+-0.2498 ? might be 1.0432x slower
global-object-access-with-mutating-structure
7.7170+-0.2401 7.5082+-0.2668 might be 1.0278x faster
global-var-const-infer-fire-from-opt 1.3108+-0.2748 ? 1.3379+-0.3203 ? might be 1.0207x slower
global-var-const-infer 1.0718+-0.1524 ? 1.2140+-0.2171 ? might be 1.1327x slower
hard-overflow-check-equal 60.2768+-0.7572 ? 61.0984+-1.8250 ? might be 1.0136x slower
hard-overflow-check 59.6483+-0.3569 ? 59.9224+-0.4754 ?
HashMap-put-get-iterate-keys 34.1113+-0.4437 33.9995+-0.5943
HashMap-put-get-iterate 34.1355+-0.9340 33.3905+-0.4868 might be 1.0223x faster
HashMap-string-put-get-iterate 37.0669+-1.2773 36.3701+-0.5949 might be 1.0192x faster
hoist-make-rope 12.2126+-1.5165 11.8792+-0.5715 might be 1.0281x faster
hoist-poly-check-structure-effectful-loop
6.6980+-0.1821 6.6664+-0.1327
hoist-poly-check-structure 5.1210+-0.1760 5.0850+-0.1320
imul-double-only 8.6913+-1.3197 ? 8.8845+-0.4415 ? might be 1.0222x slower
imul-int-only 10.5109+-0.3401 ? 10.5781+-0.1897 ?
imul-mixed 8.6102+-0.6747 8.4028+-0.8407 might be 1.0247x faster
in-four-cases 25.2070+-0.1720 ? 25.8465+-0.8936 ? might be 1.0254x slower
in-one-case-false 14.8081+-0.1992 ? 14.8638+-0.0296 ?
in-one-case-true 14.6401+-0.3317 ? 14.7158+-0.1886 ?
in-two-cases 15.1991+-0.2348 ? 15.4390+-0.0711 ? might be 1.0158x slower
indexed-properties-in-objects 3.8678+-0.1367 ? 3.8885+-0.1405 ?
infer-closure-const-then-mov-no-inline 4.9021+-0.0678 ? 4.9280+-0.0483 ?
infer-closure-const-then-mov 21.5128+-1.0947 20.7963+-0.7218 might be 1.0345x faster
infer-closure-const-then-put-to-scope-no-inline
15.6231+-0.2940 ! 17.0295+-0.6267 ! definitely 1.0900x slower
infer-closure-const-then-put-to-scope 28.2352+-0.8263 ! 32.1329+-0.4922 ! definitely 1.1380x slower
infer-closure-const-then-reenter-no-inline
70.8542+-0.2554 ! 75.1354+-2.2366 ! definitely 1.0604x slower
infer-closure-const-then-reenter 32.9135+-0.4086 32.9135+-0.5212
infer-constant-global-property 4.8287+-0.0840 4.7628+-0.1317 might be 1.0138x faster
infer-constant-property 3.4333+-0.2909 3.3195+-0.1353 might be 1.0343x faster
infer-one-time-closure-ten-vars 11.2028+-0.3012 ? 11.3585+-0.5621 ? might be 1.0139x slower
infer-one-time-closure-two-vars 10.7540+-0.3383 10.6120+-0.8115 might be 1.0134x faster
infer-one-time-closure 10.4895+-0.4907 ? 10.8303+-0.4115 ? might be 1.0325x slower
infer-one-time-deep-closure 17.9077+-0.6900 ? 18.0877+-0.5364 ? might be 1.0101x slower
inline-arguments-access 5.9421+-0.2075 ? 6.1542+-0.1497 ? might be 1.0357x slower
inline-arguments-aliased-access 6.1534+-0.1523 6.1302+-0.2643
inline-arguments-local-escape 6.0735+-0.1746 6.0570+-0.3213
inline-get-scoped-var 5.7407+-0.1030 ? 5.9384+-0.3851 ? might be 1.0344x slower
inlined-put-by-id-transition 15.9532+-0.7791 15.3768+-0.2710 might be 1.0375x faster
inlined-put-by-val-with-string-transition
67.4059+-2.4243 66.5160+-0.7777 might be 1.0134x faster
inlined-put-by-val-with-symbol-transition
67.4373+-2.0196 66.9291+-0.9971
int-or-other-abs-then-get-by-val 6.5318+-0.0909 ? 6.5790+-0.1331 ?
int-or-other-abs-zero-then-get-by-val 27.0789+-0.5508 ? 27.6973+-1.1670 ? might be 1.0228x slower
int-or-other-add-then-get-by-val 6.1646+-0.1351 6.0771+-0.1093 might be 1.0144x faster
int-or-other-add 8.1415+-0.0814 8.1281+-0.1349
int-or-other-div-then-get-by-val 5.0495+-0.0629 5.0345+-0.1278
int-or-other-max-then-get-by-val 6.1035+-0.5376 ? 6.2316+-0.2590 ? might be 1.0210x slower
int-or-other-min-then-get-by-val 5.1052+-0.0599 ? 5.1372+-0.1979 ?
int-or-other-mod-then-get-by-val 4.9699+-0.1625 4.9383+-0.1477
int-or-other-mul-then-get-by-val 5.0447+-0.0115 ? 5.1116+-0.0877 ? might be 1.0132x slower
int-or-other-neg-then-get-by-val 5.6839+-0.2306 ? 5.7122+-0.1107 ?
int-or-other-neg-zero-then-get-by-val 27.7164+-0.6025 27.6932+-0.7313
int-or-other-sub-then-get-by-val 6.0214+-0.1799 ? 6.0771+-0.2058 ?
int-or-other-sub 5.2634+-0.1966 ? 5.3150+-0.1358 ?
int-overflow-local 6.1353+-0.1491 6.1006+-0.1755
Int16Array-alloc-long-lived 66.2073+-1.3049 ? 66.5265+-1.2735 ?
Int16Array-bubble-sort-with-byteLength 35.9858+-1.0533 35.7953+-0.4857
Int16Array-bubble-sort 35.3242+-1.2012 ? 35.9808+-1.0445 ? might be 1.0186x slower
Int16Array-load-int-mul 1.9994+-0.1733 ? 2.1000+-0.1491 ? might be 1.0503x slower
Int16Array-to-Int32Array-set 73.6180+-0.9164 72.5906+-1.1069 might be 1.0142x faster
Int32Array-alloc-large 33.3827+-0.7128 33.3157+-2.5257
Int32Array-alloc-long-lived 76.1688+-3.7978 ? 76.5027+-1.7783 ?
Int32Array-alloc 4.6697+-0.0848 4.5880+-0.1143 might be 1.0178x faster
Int32Array-Int8Array-view-alloc 9.4282+-0.5009 9.1642+-0.3507 might be 1.0288x faster
int52-spill 7.2183+-0.1218 7.1758+-0.1807
Int8Array-alloc-long-lived 58.7581+-1.8508 ? 58.9814+-0.8686 ?
Int8Array-load-with-byteLength 4.8325+-0.0806 ? 4.8399+-0.1501 ?
Int8Array-load 4.7968+-0.1721 ? 4.9178+-0.0981 ? might be 1.0252x slower
integer-divide 13.6631+-0.1257 ? 13.9529+-0.1645 ? might be 1.0212x slower
integer-modulo 2.8162+-0.2071 2.7487+-0.1480 might be 1.0246x faster
is-boolean-fold-tricky 5.7344+-0.2289 5.6863+-0.1970
is-boolean-fold 3.9841+-0.1264 ? 4.0070+-0.1569 ?
is-function-fold-tricky-internal-function
14.7742+-0.5831 ? 14.8207+-0.4168 ?
is-function-fold-tricky 5.8057+-0.1451 5.7957+-0.1327
is-function-fold 4.0941+-0.0721 4.0938+-0.0530
is-number-fold-tricky 5.6331+-0.1598 ? 5.6734+-0.0653 ?
is-number-fold 4.0234+-0.1640 4.0053+-0.1157
is-object-or-null-fold-functions 4.2267+-0.1374 4.1337+-0.1396 might be 1.0225x faster
is-object-or-null-fold-less-tricky 5.8228+-0.1565 5.7097+-0.0864 might be 1.0198x faster
is-object-or-null-fold-tricky 7.4877+-0.1497 ? 7.5042+-0.0867 ?
is-object-or-null-fold 4.0568+-0.0696 ? 4.0997+-0.0730 ? might be 1.0106x slower
is-object-or-null-trickier-function 5.8865+-0.1021 ? 5.9835+-0.1680 ? might be 1.0165x slower
is-object-or-null-trickier-internal-function
15.6406+-0.8316 15.5267+-0.5724
is-object-or-null-tricky-function 5.9039+-0.0531 5.8745+-0.0728
is-object-or-null-tricky-internal-function
11.5463+-0.1787 ? 11.6710+-0.7717 ? might be 1.0108x slower
is-string-fold-tricky 5.6631+-0.1479 5.6315+-0.1098
is-string-fold 4.0468+-0.1499 3.9515+-0.0553 might be 1.0241x faster
is-undefined-fold-tricky 4.7289+-0.0662 ? 4.7996+-0.1264 ? might be 1.0150x slower
is-undefined-fold 4.0548+-0.1225 3.9915+-0.0972 might be 1.0159x faster
JSONP-negative-0 0.4425+-0.0713 0.4332+-0.0664 might be 1.0214x faster
large-int-captured 6.9828+-0.2342 6.7319+-0.1183 might be 1.0373x faster
large-int-neg 20.1047+-0.5772 20.0015+-0.6694
large-int 17.6391+-0.4768 17.5262+-0.4263
load-varargs-elimination 29.5137+-1.5591 29.2297+-0.4781
logical-not-weird-types 5.0599+-0.1729 5.0198+-0.0754
logical-not 6.5868+-0.0861 6.4501+-0.5672 might be 1.0212x faster
lots-of-fields 16.4277+-0.2450 ? 16.6249+-0.5422 ? might be 1.0120x slower
make-indexed-storage 4.1078+-0.7618 ? 4.1291+-0.4051 ?
make-rope-cse 6.4398+-0.2770 ? 6.5569+-0.1630 ? might be 1.0182x slower
marsaglia-larger-ints 53.4167+-0.1690 53.2972+-0.4304
marsaglia-osr-entry 26.2850+-0.6016 ? 26.7410+-0.6385 ? might be 1.0173x slower
math-with-out-of-bounds-array-values 32.3813+-0.8365 ? 34.0828+-5.3131 ? might be 1.0525x slower
max-boolean 3.3012+-0.1008 ? 3.3303+-0.1056 ?
method-on-number 23.3975+-0.0929 ? 23.5590+-0.6341 ?
min-boolean 3.4427+-0.1099 3.3433+-0.1257 might be 1.0297x faster
minus-boolean-double 4.3688+-0.0881 4.2940+-0.0931 might be 1.0174x faster
minus-boolean 3.3772+-0.0741 3.3699+-0.1824
misc-strict-eq 44.6631+-2.8392 ? 47.1971+-1.5311 ? might be 1.0567x slower
mod-boolean-double 11.9190+-0.2063 ? 11.9370+-0.3105 ?
mod-boolean 9.2039+-0.0843 ? 9.2172+-0.2094 ?
mul-boolean-double 4.8439+-0.0902 ? 4.8993+-0.0573 ? might be 1.0114x slower
mul-boolean 3.5550+-0.1844 ? 3.5851+-0.0918 ?
neg-boolean 4.2474+-0.1149 ? 4.2654+-0.1531 ?
negative-zero-divide 0.6118+-0.1136 0.5510+-0.1062 might be 1.1103x faster
negative-zero-modulo 0.5475+-0.1181 ? 0.6185+-0.1174 ? might be 1.1297x slower
negative-zero-negate 0.6255+-0.1115 0.5689+-0.1256 might be 1.0996x faster
nested-function-parsing 74.6467+-2.0601 73.7341+-1.4711 might be 1.0124x faster
new-array-buffer-dead 144.8440+-3.8024 144.7908+-3.4345
new-array-buffer-push 10.2363+-0.2722 9.9948+-0.3310 might be 1.0242x faster
new-array-dead 18.6015+-1.2916 18.4682+-1.7416
new-array-push 5.5914+-0.2377 ? 5.6494+-0.5091 ? might be 1.0104x slower
no-inline-constructor 50.4978+-0.9453 ? 51.7305+-0.6338 ? might be 1.0244x slower
number-test 4.4879+-0.2070 ? 4.5061+-0.1541 ?
object-closure-call 7.8605+-0.2116 ? 7.9490+-0.3339 ? might be 1.0113x slower
object-get-own-property-symbols-on-large-array
5.4386+-0.3351 5.3590+-0.6780 might be 1.0149x faster
object-test 4.3301+-0.2079 ? 4.3385+-0.0813 ?
obvious-sink-pathology-taken 175.9863+-8.7999 173.3778+-2.1452 might be 1.0150x faster
obvious-sink-pathology 157.4793+-5.4554 157.4117+-3.9609
obviously-elidable-new-object 43.2812+-1.4690 42.8738+-0.6965
plus-boolean-arith 3.3644+-0.0961 ? 3.3932+-0.1049 ?
plus-boolean-double 4.2550+-0.1617 ? 4.3124+-0.1581 ? might be 1.0135x slower
plus-boolean 3.2725+-0.0632 ? 3.2793+-0.1605 ?
poly-chain-access-different-prototypes-simple
5.2083+-0.0962 5.2073+-0.1339
poly-chain-access-different-prototypes 5.3184+-0.1268 5.2488+-0.0928 might be 1.0133x faster
poly-chain-access-simpler 5.1708+-0.0887 ? 5.2316+-0.1331 ? might be 1.0118x slower
poly-chain-access 5.0928+-0.1316 ? 5.1196+-0.0086 ?
poly-stricteq 81.4213+-3.1971 79.1108+-1.1568 might be 1.0292x faster
polymorphic-array-call 2.0444+-0.2422 1.9955+-0.2138 might be 1.0245x faster
polymorphic-get-by-id 4.9067+-0.2040 ? 4.9097+-0.0941 ?
polymorphic-put-by-id 41.6035+-1.2528 41.5458+-0.5121
polymorphic-put-by-val-with-string 42.4899+-0.6129 ? 42.5343+-0.2404 ?
polymorphic-put-by-val-with-symbol 42.3147+-0.2594 ? 46.5060+-11.3465 ? might be 1.0991x slower
polymorphic-structure 23.5127+-0.2157 ? 23.5537+-0.1876 ?
polyvariant-monomorphic-get-by-id 11.5355+-0.4018 11.3075+-0.3300 might be 1.0202x faster
proto-getter-access 10.2637+-0.2251 ? 10.3750+-0.2268 ? might be 1.0108x slower
prototype-access-with-mutating-prototype 7.3411+-0.3848 7.2590+-0.0990 might be 1.0113x faster
put-by-id-replace-and-transition 12.5023+-0.1212 12.4937+-0.2213
put-by-id-slightly-polymorphic 3.5905+-0.1121 ? 3.6587+-0.2151 ? might be 1.0190x slower
put-by-id 18.4805+-0.7760 18.4344+-0.8780
put-by-val-direct 0.5693+-0.0873 ? 0.6091+-0.1054 ? might be 1.0700x slower
put-by-val-large-index-blank-indexing-type
8.5427+-0.4697 8.1695+-0.1381 might be 1.0457x faster
put-by-val-machine-int 3.7180+-0.0983 3.5805+-0.2588 might be 1.0384x faster
put-by-val-with-string-replace-and-transition
19.0206+-0.5815 ? 19.0710+-0.1259 ?
put-by-val-with-string-slightly-polymorphic
4.6475+-0.1167 ? 4.7345+-0.0882 ? might be 1.0187x slower
put-by-val-with-string 19.6821+-0.9161 ? 19.9146+-0.9508 ? might be 1.0118x slower
put-by-val-with-symbol-replace-and-transition
21.4284+-0.2696 21.1508+-0.7331 might be 1.0131x faster
put-by-val-with-symbol-slightly-polymorphic
4.6458+-0.1078 ? 4.7195+-0.0588 ? might be 1.0159x slower
put-by-val-with-symbol 19.4153+-0.1338 ? 19.4875+-0.8700 ?
rare-osr-exit-on-local 16.5329+-0.3339 ? 16.5817+-0.2448 ?
raytrace-with-empty-try-catch 8.7294+-0.4361 ? 8.9993+-0.3829 ? might be 1.0309x slower
raytrace-with-try-catch 15.8220+-0.4933 15.6906+-0.4315
register-pressure-from-osr 27.1371+-0.1783 ? 27.2601+-0.5510 ?
repeat-multi-get-by-offset 29.5069+-0.7213 ? 29.9561+-0.4714 ? might be 1.0152x slower
richards-empty-try-catch 135.2493+-1.8993 ^ 131.4328+-1.5808 ^ definitely 1.0290x faster
richards-try-catch 398.3760+-5.2827 ? 399.9555+-6.0613 ?
setter-prototype 11.2853+-0.1493 11.2393+-0.4252
setter 6.8647+-0.1371 ! 7.1657+-0.1012 ! definitely 1.0438x slower
simple-activation-demo 33.8738+-0.3021 33.6100+-0.9054
simple-getter-access 14.1514+-0.5392 13.8968+-0.1861 might be 1.0183x faster
simple-poly-call-nested 9.2468+-0.1215 ? 9.4760+-0.2060 ? might be 1.0248x slower
simple-poly-call 1.8317+-0.0773 ? 1.9190+-0.0466 ? might be 1.0476x slower
sin-boolean 20.4214+-0.9569 20.3898+-1.0620
singleton-scope 83.7467+-0.2295 ! 87.6097+-0.6702 ! definitely 1.0461x slower
sink-function 13.7983+-1.5190 13.5153+-0.3390 might be 1.0209x faster
sink-huge-activation 19.6956+-0.7550 ? 20.3403+-0.4318 ? might be 1.0327x slower
sinkable-new-object-dag 87.2641+-7.0362 84.0300+-1.8946 might be 1.0385x faster
sinkable-new-object-taken 69.7563+-1.6904 ^ 67.4288+-0.5819 ^ definitely 1.0345x faster
sinkable-new-object 46.8794+-2.1180 ? 47.1642+-0.4903 ?
slow-array-profile-convergence 3.9322+-0.4017 3.8824+-0.3288 might be 1.0128x faster
slow-convergence 3.8404+-0.1443 ? 3.8452+-0.2879 ?
slow-ternaries 33.2897+-1.7131 32.8353+-0.6207 might be 1.0138x faster
sorting-benchmark 25.4269+-0.5424 ? 26.1058+-0.9021 ? might be 1.0267x slower
sparse-conditional 1.7377+-0.1982 1.6875+-0.1693 might be 1.0298x faster
splice-to-remove 19.1738+-0.4681 ? 19.3600+-0.5372 ?
string-char-code-at 20.7411+-0.6499 20.7320+-0.0720
string-concat-object 3.2491+-0.0961 3.2232+-0.1227
string-concat-pair-object 3.1933+-0.2504 ? 3.2966+-0.2580 ? might be 1.0324x slower
string-concat-pair-simple 17.0602+-0.5551 ? 17.1470+-0.4772 ?
string-concat-simple 17.6267+-0.6251 17.5656+-0.6169
string-cons-repeat 11.7784+-0.8071 11.3310+-0.1732 might be 1.0395x faster
string-cons-tower 10.7148+-0.2154 ? 10.8149+-0.1848 ?
string-equality 22.8705+-0.7421 ? 22.9037+-0.6779 ?
string-get-by-val-big-char 10.9009+-0.4933 10.8651+-0.1824
string-get-by-val-out-of-bounds-insane 5.0627+-0.1763 ? 5.1525+-0.1534 ? might be 1.0177x slower
string-get-by-val-out-of-bounds 6.9869+-0.2672 6.9207+-0.2309
string-get-by-val 4.8042+-0.1301 ? 4.8594+-0.0467 ? might be 1.0115x slower
string-hash 2.8319+-0.0942 ? 2.8533+-0.0763 ?
string-long-ident-equality 18.5268+-0.4442 ? 18.5740+-0.3289 ?
string-out-of-bounds 14.7247+-0.3043 ? 14.9757+-0.3358 ? might be 1.0170x slower
string-repeat-arith 43.6411+-1.7096 43.0590+-0.8481 might be 1.0135x faster
string-sub 86.4532+-2.6000 ? 86.7214+-0.9246 ?
string-test 4.4455+-0.1901 ? 4.6250+-0.2083 ? might be 1.0404x slower
string-var-equality 58.4955+-2.6866 ? 58.8772+-1.6097 ?
structure-hoist-over-transitions 3.6075+-0.1288 3.5405+-0.1553 might be 1.0189x faster
substring-concat-weird 57.7360+-0.5074 57.4568+-0.5176
substring-concat 62.4897+-0.2323 ? 63.1217+-1.8261 ? might be 1.0101x slower
substring 69.1993+-0.4395 ? 69.5025+-1.0216 ?
switch-char-constant 3.3950+-0.1479 ? 3.4104+-0.1469 ?
switch-char 7.9372+-0.1402 ? 8.0222+-0.0723 ? might be 1.0107x slower
switch-constant 12.6862+-1.8744 ? 13.7786+-1.7150 ? might be 1.0861x slower
switch-string-basic-big-var 31.5855+-0.5137 31.2365+-0.6899 might be 1.0112x faster
switch-string-basic-big 30.0753+-0.6577 29.4207+-1.7144 might be 1.0222x faster
switch-string-basic-var 31.4505+-2.1584 ? 31.4893+-0.2692 ?
switch-string-basic 20.2057+-1.1552 ? 20.3121+-1.1022 ?
switch-string-big-length-tower-var 27.9063+-0.9241 ? 28.2067+-0.7041 ? might be 1.0108x slower
switch-string-length-tower-var 20.7842+-0.1133 ? 21.0868+-0.4899 ? might be 1.0146x slower
switch-string-length-tower 14.8210+-0.3757 ? 15.4916+-0.5764 ? might be 1.0452x slower
switch-string-short 14.9973+-0.1606 ? 15.2503+-0.2991 ? might be 1.0169x slower
switch 16.6416+-1.9651 16.0685+-1.4995 might be 1.0357x faster
tear-off-arguments-simple 4.6444+-0.2176 4.5443+-0.1119 might be 1.0220x faster
tear-off-arguments 6.3484+-0.3580 ? 6.3619+-0.2894 ?
temporal-structure 16.5682+-0.1402 16.4520+-0.1736
to-int32-boolean 21.0151+-0.2202 ? 21.2387+-0.1276 ? might be 1.0106x slower
try-catch-get-by-val-cloned-arguments 14.9413+-0.4189 ? 14.9724+-0.6329 ?
try-catch-get-by-val-direct-arguments 3.1475+-0.3211 2.9012+-0.0703 might be 1.0849x faster
try-catch-get-by-val-scoped-arguments 7.2106+-0.2139 ? 7.2950+-0.0669 ? might be 1.0117x slower
typed-array-get-set-by-val-profiling 32.1276+-0.6007 ? 32.3626+-0.7705 ?
undefined-property-access 475.2025+-23.5852 ? 476.5773+-18.0517 ?
undefined-test 4.6574+-0.0579 4.6288+-0.2748
unprofiled-licm 23.0513+-0.5322 ? 23.2170+-0.5387 ?
v8-raytrace-with-empty-try-catch 84.2730+-2.8798 83.3123+-1.1732 might be 1.0115x faster
v8-raytrace-with-try-catch 108.3260+-2.6904 ? 110.3037+-6.7058 ? might be 1.0183x slower
varargs-call 18.2652+-0.2078 17.7675+-0.3492 might be 1.0280x faster
varargs-construct-inline 36.2510+-1.3477 36.1662+-1.2083
varargs-construct 29.9048+-0.7633 ? 30.0914+-0.3973 ?
varargs-inline 12.1700+-0.4060 ? 12.6205+-0.4830 ? might be 1.0370x slower
varargs-strict-mode 14.5832+-0.4213 ? 15.0507+-0.2475 ? might be 1.0321x slower
varargs 14.5818+-0.0998 ? 15.0001+-0.3397 ? might be 1.0287x slower
weird-inlining-const-prop 3.2238+-0.1019 3.2028+-0.1487
<geometric> 11.9658+-0.0449 ? 12.0230+-0.0315 ? might be 1.0048x slower
Baseline DFGTailCall
AsmBench:
bigfib.cpp 682.4690+-9.5306 671.5111+-26.5979 might be 1.0163x faster
cray.c 620.7996+-5.1751 ? 623.1867+-6.0961 ?
dry.c 689.9198+-5.3247 661.5596+-77.0830 might be 1.0429x faster
FloatMM.c 920.5358+-2.2218 ? 920.7222+-9.3457 ?
gcc-loops.cpp 5990.1125+-53.0084 ? 5991.0970+-73.5732 ?
n-body.c 1682.6436+-34.7892 1677.5442+-23.4432
Quicksort.c 573.6185+-3.9063 ? 576.9441+-3.5180 ?
stepanov_container.cpp 4882.4313+-79.7461 4848.6896+-62.3039
Towers.c 400.4172+-10.2000 ? 401.3375+-5.2101 ?
<geometric> 1131.5195+-1.5155 1124.3119+-23.0663 might be 1.0064x faster
Baseline DFGTailCall
CompressionBench:
huffman 81.7848+-1.2789 ? 82.2493+-1.3025 ?
arithmetic-simple 431.9166+-1.6176 431.8624+-1.0594
arithmetic-precise 363.1099+-4.1976 ? 366.9726+-6.4481 ? might be 1.0106x slower
arithmetic-complex-precise 361.1843+-3.2740 ? 363.4945+-3.1693 ?
arithmetic-precise-order-0 439.0563+-2.2351 ? 444.6048+-5.6452 ? might be 1.0126x slower
arithmetic-precise-order-1 418.4902+-3.7651 ? 424.4897+-6.7766 ? might be 1.0143x slower
arithmetic-precise-order-2 484.6338+-12.0828 ? 485.5557+-3.6517 ?
arithmetic-simple-order-1 495.1097+-2.8377 ? 496.5613+-0.8212 ?
arithmetic-simple-order-2 555.9335+-9.0049 ? 561.0212+-4.4004 ?
lz-string 423.5854+-21.1522 420.1024+-9.9009
<geometric> 369.9901+-2.6416 ? 372.0395+-1.0220 ? might be 1.0055x slower
Baseline DFGTailCall
Geomean of preferred means:
<scaled-result> 79.4149+-0.1425 ? 79.5270+-0.2639 ? might be 1.0014x slower
Created attachment 261822 [details]
Patch with build fixes
Comment on attachment 261822 [details]
Patch with build fixes
We can't enable this by default until it's implemented in FTL -- that would be a performance regression.
Created attachment 261840 [details]
Patch with Tail Calls turned off
Committed r190220: <http://trac.webkit.org/changeset/190220> |