WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 148663
[ES6] Implement tail calls in the DFG
https://bugs.webkit.org/show_bug.cgi?id=148663
Summary
[ES6] Implement tail calls in the DFG
Basile Clement
Reported
2015-08-31 17:53:33 PDT
...
Attachments
Patch
(92.68 KB, patch)
2015-09-04 15:04 PDT
,
Basile Clement
no flags
Details
Formatted Diff
Diff
Rebased patch
(97.52 KB, patch)
2015-09-22 21:41 PDT
,
Michael Saboff
no flags
Details
Formatted Diff
Diff
Patch with build fixes
(97.55 KB, patch)
2015-09-23 07:50 PDT
,
Michael Saboff
no flags
Details
Formatted Diff
Diff
Patch with Tail Calls turned off
(90.10 KB, patch)
2015-09-23 14:17 PDT
,
Michael Saboff
fpizlo
: review+
Details
Formatted Diff
Diff
Show Obsolete
(3)
View All
Add attachment
proposed patch, testcase, etc.
Basile Clement
Comment 1
2015-08-31 18:10:24 PDT
***
Bug 148396
has been marked as a duplicate of this bug. ***
Basile Clement
Comment 2
2015-09-04 15:04:37 PDT
Created
attachment 260629
[details]
Patch
Michael Saboff
Comment 3
2015-09-22 21:41:08 PDT
Created
attachment 261795
[details]
Rebased patch
Michael Saboff
Comment 4
2015-09-22 21:44:45 PDT
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
Michael Saboff
Comment 5
2015-09-23 07:50:16 PDT
Created
attachment 261822
[details]
Patch with build fixes
Geoffrey Garen
Comment 6
2015-09-23 10:27:39 PDT
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.
Michael Saboff
Comment 7
2015-09-23 14:17:38 PDT
Created
attachment 261840
[details]
Patch with Tail Calls turned off
Michael Saboff
Comment 8
2015-09-24 14:43:17 PDT
Committed
r190220
: <
http://trac.webkit.org/changeset/190220
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug