I have prototyped this and it looks real good.
Created attachment 250874 [details] Patch
Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on spacecake (MacPro6,1). VMs tested: "BO" at /Volumes/Data/Source/Safari/ToT-Clean/WebKitBuild/Release/jsc "AXE" at /Volumes/Data/Source/Safari/OpenSource/WebKitBuild/Release/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. BO AXE SunSpider: 3d-cube 5.3124+-0.2047 5.2454+-0.0943 might be 1.0128x faster 3d-morph 6.1514+-0.1600 6.1342+-0.1554 3d-raytrace 6.9675+-0.1385 6.8185+-0.2188 might be 1.0219x faster access-binary-trees 2.4368+-0.0947 2.3693+-0.0243 might be 1.0285x faster access-fannkuch 6.2316+-0.3488 6.2107+-0.3249 access-nbody 3.1663+-0.0814 3.0799+-0.0806 might be 1.0280x faster access-nsieve 3.8538+-0.2135 3.6467+-0.1475 might be 1.0568x faster bitops-3bit-bits-in-byte 1.8404+-0.1170 1.8136+-0.0517 might be 1.0148x faster bitops-bits-in-byte 3.7824+-0.1537 ? 3.8103+-0.1519 ? bitops-bitwise-and 2.3906+-0.0847 ? 2.4443+-0.2318 ? might be 1.0225x slower bitops-nsieve-bits 4.0120+-0.1870 3.8978+-0.0876 might be 1.0293x faster controlflow-recursive 2.3546+-0.0645 ? 2.4251+-0.0185 ? might be 1.0300x slower crypto-aes 4.6707+-0.1032 4.4871+-0.2847 might be 1.0409x faster crypto-md5 2.6117+-0.0329 ? 2.6376+-0.1666 ? crypto-sha1 2.8610+-0.0855 2.8102+-0.0328 might be 1.0181x faster date-format-tofte 9.7930+-0.4122 ? 10.1357+-0.0883 ? might be 1.0350x slower date-format-xparb 5.8846+-0.3533 5.4700+-0.2038 might be 1.0758x faster math-cordic 3.4144+-0.0253 ? 3.4543+-0.0928 ? might be 1.0117x slower math-partial-sums 5.6042+-0.2556 5.4873+-0.0688 might be 1.0213x faster math-spectral-norm 2.1588+-0.0400 ? 2.2460+-0.1367 ? might be 1.0404x slower regexp-dna 7.4401+-0.2432 ? 7.4950+-0.3283 ? string-base64 4.6455+-0.1035 4.6212+-0.0405 string-fasta 7.0834+-0.3122 6.8721+-0.2123 might be 1.0307x faster string-tagcloud 10.0217+-0.0255 ? 10.0836+-0.4424 ? string-unpack-code 21.1861+-0.5162 20.8375+-0.6203 might be 1.0167x faster string-validate-input 5.0027+-0.1193 ? 5.0938+-0.1773 ? might be 1.0182x slower <arithmetic> 5.4184+-0.0287 5.3703+-0.0213 might be 1.0090x faster BO AXE LongSpider: 3d-cube 904.3926+-21.4545 ^ 861.3475+-6.4430 ^ definitely 1.0500x faster 3d-morph 1634.8491+-7.0456 1633.5402+-4.4904 3d-raytrace 787.0019+-2.7971 ? 788.5394+-13.9676 ? access-binary-trees 1004.3445+-5.3588 ? 1009.9066+-11.3908 ? access-fannkuch 349.0145+-10.5963 345.5499+-5.5052 might be 1.0100x faster access-nbody 649.4805+-1.0111 ! 655.9157+-1.7641 ! definitely 1.0099x slower access-nsieve 837.2178+-9.0473 837.1707+-10.0336 bitops-3bit-bits-in-byte 49.3583+-0.4966 ? 50.1943+-0.8238 ? might be 1.0169x slower bitops-bits-in-byte 98.2145+-3.8984 ? 99.9626+-1.2433 ? might be 1.0178x slower bitops-nsieve-bits 763.6873+-9.8139 760.6769+-6.3963 controlflow-recursive 531.4977+-2.8876 ^ 522.1580+-1.6424 ^ definitely 1.0179x faster crypto-aes 717.4895+-3.5195 ? 720.6940+-10.9024 ? crypto-md5 589.5162+-2.3055 582.4601+-13.4977 might be 1.0121x faster crypto-sha1 661.1862+-16.4368 655.3258+-4.2036 date-format-tofte 794.0353+-12.7888 ? 812.2611+-26.0680 ? might be 1.0230x slower date-format-xparb 797.8284+-14.1077 ? 799.7114+-37.2043 ? math-cordic 630.8295+-4.1514 630.0887+-2.5887 math-partial-sums 537.9346+-2.6588 ? 542.1467+-6.5583 ? math-spectral-norm 603.6270+-3.2389 602.8115+-3.6672 string-base64 371.3326+-12.7748 ? 382.4376+-5.4110 ? might be 1.0299x slower string-fasta 467.2502+-15.2119 450.2410+-5.6344 might be 1.0378x faster string-tagcloud 232.9247+-7.6140 229.5247+-2.2717 might be 1.0148x faster <geometric> 522.9267+-1.0899 522.0318+-0.9360 might be 1.0017x faster BO AXE V8Spider: crypto 59.8049+-0.8519 59.6380+-0.5543 deltablue 77.8837+-1.2742 ? 79.9221+-1.8790 ? might be 1.0262x slower earley-boyer 43.6544+-0.5165 ? 45.8703+-2.2336 ? might be 1.0508x slower raytrace 34.4373+-1.0763 ? 35.0862+-0.8457 ? might be 1.0188x slower regexp 70.5182+-1.3234 69.2200+-0.8141 might be 1.0188x faster richards 83.4803+-2.1650 ? 83.7681+-1.6380 ? splay 39.3003+-2.6308 38.2538+-0.8822 might be 1.0274x faster <geometric> 55.4822+-0.2034 ? 55.8758+-0.4041 ? might be 1.0071x slower BO AXE Octane: encrypt 0.23680+-0.00355 0.23460+-0.00094 decrypt 4.14548+-0.06261 4.13557+-0.02105 deltablue x2 0.21702+-0.00307 ? 0.21730+-0.00151 ? earley 0.60350+-0.01475 ? 0.60547+-0.00236 ? boyer 6.79201+-0.03350 ! 6.87880+-0.01045 ! definitely 1.0128x slower navier-stokes x2 5.56547+-0.00917 ? 5.57165+-0.03358 ? raytrace x2 1.26205+-0.07013 ? 1.27902+-0.06659 ? might be 1.0135x slower richards x2 0.12353+-0.00263 ? 0.12450+-0.00368 ? splay x2 0.39500+-0.00347 ! 0.41104+-0.00666 ! definitely 1.0406x slower regexp x2 33.12252+-0.37352 33.01513+-0.67381 pdfjs x2 47.41298+-1.22544 47.11950+-0.16379 mandreel x2 56.58420+-0.64600 56.51368+-0.56204 gbemu x2 42.40911+-0.39027 42.25367+-0.25213 closure 0.62118+-0.00516 0.62036+-0.00711 jquery 7.82071+-0.03333 ! 7.90711+-0.04668 ! definitely 1.0110x slower box2d x2 13.54643+-0.04813 ? 13.72254+-0.24410 ? might be 1.0130x slower zlib x2 398.22044+-31.31341 ? 415.25692+-1.77055 ? might be 1.0428x slower typescript x2 885.87708+-27.28859 ? 886.44458+-21.54617 ? <geometric> 7.10305+-0.02210 ! 7.15650+-0.01738 ! definitely 1.0075x slower BO AXE Kraken: ai-astar 356.661+-8.679 352.213+-11.858 might be 1.0126x faster audio-beat-detection 114.928+-2.613 114.609+-2.115 audio-dft 149.980+-2.451 148.105+-4.527 might be 1.0127x faster audio-fft 83.971+-2.826 83.511+-1.147 audio-oscillator 222.603+-8.561 219.808+-0.934 might be 1.0127x faster imaging-darkroom 111.209+-0.554 110.752+-0.894 imaging-desaturate 69.593+-0.858 69.063+-1.258 imaging-gaussian-blur 117.873+-0.783 117.503+-1.226 json-parse-financial 46.727+-1.032 ? 49.478+-4.803 ? might be 1.0589x slower json-stringify-tinderbox 59.842+-0.576 58.777+-0.844 might be 1.0181x faster stanford-crypto-aes 64.979+-3.726 64.101+-0.894 might be 1.0137x faster stanford-crypto-ccm 59.819+-10.008 59.271+-9.840 stanford-crypto-pbkdf2 183.386+-15.966 179.328+-2.747 might be 1.0226x faster stanford-crypto-sha256-iterative 58.809+-2.343 57.741+-0.562 might be 1.0185x faster <arithmetic> 121.456+-1.539 120.304+-1.733 might be 1.0096x faster BO AXE JSRegress: abs-boolean 2.8148+-0.0581 ? 2.8397+-0.1532 ? adapt-to-double-divide 17.6067+-0.3011 17.5671+-0.2994 aliased-arguments-getbyval 1.4095+-0.1380 ? 1.4480+-0.1718 ? might be 1.0273x slower allocate-big-object 2.5697+-0.0448 ? 2.7820+-0.1826 ? might be 1.0826x slower arguments-named-and-reflective 12.3537+-0.5486 12.1307+-0.2705 might be 1.0184x faster arguments-out-of-bounds 15.4832+-0.4528 15.3765+-1.3123 arguments-strict-mode 11.1330+-0.0387 ^ 10.8450+-0.1376 ^ definitely 1.0266x faster arguments 9.7797+-0.1601 ? 9.9943+-0.4190 ? might be 1.0219x slower arity-mismatch-inlining 1.0500+-0.0261 1.0100+-0.0329 might be 1.0396x faster array-access-polymorphic-structure 6.4428+-0.3370 ? 6.7060+-0.2127 ? might be 1.0408x slower array-nonarray-polymorhpic-access 37.4465+-0.9177 36.2528+-2.9532 might be 1.0329x faster array-prototype-every 90.8048+-0.4646 90.3806+-0.6239 array-prototype-forEach 87.9794+-0.5539 ? 88.0450+-1.2445 ? array-prototype-map 100.7972+-2.2734 97.5763+-1.1320 might be 1.0330x faster array-prototype-some 92.2256+-2.5984 90.6516+-0.6609 might be 1.0174x faster array-splice-contiguous 45.6198+-2.2085 43.8127+-0.8394 might be 1.0412x faster array-with-double-add 4.3492+-0.1096 4.3045+-0.0606 might be 1.0104x faster array-with-double-increment 3.4250+-0.0825 3.4003+-0.0290 array-with-double-mul-add 5.4216+-0.2864 5.2970+-0.1427 might be 1.0235x faster array-with-double-sum 3.4872+-0.0792 3.4849+-0.0622 array-with-int32-add-sub 7.2263+-0.2456 ? 7.3370+-0.2539 ? might be 1.0153x slower array-with-int32-or-double-sum 3.6368+-0.1252 3.5980+-0.2351 might be 1.0108x faster ArrayBuffer-DataView-alloc-large-long-lived 33.6624+-0.3875 33.0543+-0.2374 might be 1.0184x faster ArrayBuffer-DataView-alloc-long-lived 14.3377+-0.3203 14.0626+-0.4097 might be 1.0196x faster ArrayBuffer-Int32Array-byteOffset 4.0290+-0.0567 ? 4.0678+-0.0788 ? ArrayBuffer-Int8Array-alloc-large-long-lived 34.7370+-0.6488 34.5241+-0.3996 ArrayBuffer-Int8Array-alloc-long-lived-buffer 23.4542+-0.2930 23.2030+-0.5114 might be 1.0108x faster ArrayBuffer-Int8Array-alloc-long-lived 13.5059+-0.1414 ^ 13.0240+-0.2091 ^ definitely 1.0370x faster ArrayBuffer-Int8Array-alloc 11.2415+-0.2754 11.0846+-0.7867 might be 1.0142x faster asmjs_bool_bug 8.0206+-0.0438 7.9908+-0.1719 assign-custom-setter-polymorphic 3.5152+-0.2711 3.4401+-0.1307 might be 1.0218x faster assign-custom-setter 4.4233+-0.1679 ! 4.7132+-0.0817 ! definitely 1.0655x slower basic-set 9.9030+-0.2166 ? 10.0807+-0.5603 ? might be 1.0179x slower big-int-mul 4.3751+-0.0940 4.3116+-0.1320 might be 1.0147x faster boolean-test 3.2691+-0.0501 3.2653+-0.0569 branch-fold 4.0764+-0.1755 4.0164+-0.1142 might be 1.0149x faster by-val-generic 8.5236+-0.7244 8.0345+-0.3946 might be 1.0609x faster caching-of-property-access-misses 20.2668+-0.4267 20.2538+-0.2373 call-spread-apply 31.7206+-1.0985 31.2189+-0.4828 might be 1.0161x faster call-spread-call 25.8625+-0.5957 25.6970+-0.7513 captured-assignments 0.5720+-0.0288 0.5339+-0.0403 might be 1.0712x faster cast-int-to-double 5.7220+-0.0510 5.6318+-0.0743 might be 1.0160x faster cell-argument 8.6476+-0.2868 8.5615+-0.3369 might be 1.0101x faster cfg-simplify 3.1169+-0.2141 3.0194+-0.0830 might be 1.0323x faster chain-getter-access 10.6987+-0.4503 10.5282+-0.3111 might be 1.0162x faster cmpeq-obj-to-obj-other 12.0027+-0.0747 11.3866+-0.6566 might be 1.0541x faster constant-test 5.3818+-0.0641 5.3483+-0.0686 DataView-custom-properties 38.6641+-0.7881 38.3707+-0.8791 deconstructing-parameters-overridden-by-function 0.6191+-0.0493 ? 0.6602+-0.0372 ? might be 1.0662x slower delay-tear-off-arguments-strictmode 13.6933+-0.0566 ? 14.4861+-1.9398 ? might be 1.0579x slower deltablue-varargs 212.1443+-0.7768 ? 215.3542+-2.6421 ? might be 1.0151x slower destructuring-arguments 16.6625+-0.2504 ? 17.0474+-0.1955 ? might be 1.0231x slower destructuring-swap 5.4918+-0.2611 5.4800+-0.1688 direct-arguments-getbyval 1.4390+-0.0569 1.3622+-0.0644 might be 1.0564x faster div-boolean-double 5.6625+-0.0725 5.6002+-0.0799 might be 1.0111x faster div-boolean 8.3529+-0.1398 8.3517+-0.1626 double-get-by-val-out-of-bounds 4.6891+-0.1252 4.6675+-0.1680 double-pollution-getbyval 9.3887+-0.2051 ? 9.4282+-0.0992 ? double-pollution-putbyoffset 4.4229+-0.1320 ? 4.6747+-0.1773 ? might be 1.0569x slower double-to-int32-typed-array-no-inline 2.5110+-0.0742 ? 2.5178+-0.0884 ? double-to-int32-typed-array 2.1708+-0.0342 ? 2.1896+-0.0223 ? double-to-uint32-typed-array-no-inline 2.5878+-0.0990 2.5852+-0.0957 double-to-uint32-typed-array 2.2595+-0.0695 2.2492+-0.1563 elidable-new-object-dag 41.3300+-0.8578 ? 42.0645+-0.7070 ? might be 1.0178x slower elidable-new-object-roflcopter 45.2447+-0.7553 ? 46.6805+-1.4880 ? might be 1.0317x slower elidable-new-object-then-call 36.8849+-2.8548 35.2172+-0.9325 might be 1.0474x faster elidable-new-object-tree 43.4965+-0.6999 ? 43.8753+-0.9380 ? empty-string-plus-int 5.5972+-0.2293 ? 5.6060+-0.4887 ? emscripten-cube2hash 40.7499+-1.8371 40.1702+-0.3561 might be 1.0144x faster exit-length-on-plain-object 14.0113+-0.2186 13.8025+-0.4554 might be 1.0151x faster external-arguments-getbyval 1.4261+-0.1136 1.4196+-0.1653 external-arguments-putbyval 2.4487+-0.0517 ! 2.6233+-0.0366 ! definitely 1.0713x slower fixed-typed-array-storage-var-index 1.4809+-0.0256 1.4783+-0.0739 fixed-typed-array-storage 1.1640+-0.0622 1.0690+-0.1006 might be 1.0888x faster Float32Array-matrix-mult 4.7658+-0.3065 4.6041+-0.0188 might be 1.0351x faster Float32Array-to-Float64Array-set 53.8843+-0.5783 ? 55.0107+-1.4081 ? might be 1.0209x slower Float64Array-alloc-long-lived 73.0842+-0.2047 72.5352+-1.1640 Float64Array-to-Int16Array-set 72.1237+-0.9158 72.0578+-0.4884 fold-double-to-int 14.8677+-0.3275 14.6769+-0.3358 might be 1.0130x faster fold-get-by-id-to-multi-get-by-offset-rare-int 9.0190+-0.7897 8.8010+-0.3178 might be 1.0248x faster fold-get-by-id-to-multi-get-by-offset 7.6708+-0.3417 7.5024+-0.1541 might be 1.0224x faster fold-multi-get-by-offset-to-get-by-offset 6.4128+-0.9258 ? 7.0507+-0.9764 ? might be 1.0995x slower fold-multi-get-by-offset-to-poly-get-by-offset 7.2812+-0.8662 ? 7.9865+-0.1034 ? might be 1.0969x slower fold-multi-put-by-offset-to-poly-put-by-offset 6.5530+-0.8903 ? 6.7056+-0.7824 ? might be 1.0233x slower fold-multi-put-by-offset-to-put-by-offset 5.0082+-0.8952 4.9532+-0.7296 might be 1.0111x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 10.4145+-0.7938 ? 10.8802+-1.1618 ? might be 1.0447x slower fold-put-by-id-to-multi-put-by-offset 7.2593+-0.4882 7.1056+-0.6513 might be 1.0216x faster fold-put-structure 4.6037+-0.0838 ? 4.7863+-0.8934 ? might be 1.0397x slower for-of-iterate-array-entries 4.8066+-0.1128 ? 4.8085+-0.1991 ? for-of-iterate-array-keys 3.9550+-0.2060 3.8221+-0.1535 might be 1.0348x faster for-of-iterate-array-values 4.0283+-0.1796 ^ 3.6439+-0.1116 ^ definitely 1.1055x faster fround 19.9265+-0.5943 ? 20.0439+-0.6636 ? ftl-library-inlining-dataview 83.0442+-0.9624 ? 85.2243+-8.9668 ? might be 1.0263x slower ftl-library-inlining 71.4195+-1.3749 ? 75.0284+-19.7030 ? might be 1.0505x slower function-dot-apply 2.0714+-0.0776 ? 2.2453+-0.2417 ? might be 1.0840x slower function-test 3.7199+-0.1348 3.6253+-0.2356 might be 1.0261x faster function-with-eval 94.9014+-3.1869 93.6572+-1.0094 might be 1.0133x faster gcse-poly-get-less-obvious 21.6149+-1.2322 ^ 18.9980+-0.2784 ^ definitely 1.1377x faster gcse-poly-get 24.2838+-4.5750 ? 25.5722+-5.6124 ? might be 1.0531x slower gcse 4.5957+-0.1040 4.5242+-0.1953 might be 1.0158x faster get-by-id-bimorphic-check-structure-elimination-simple 2.9407+-0.0248 ? 2.9736+-0.1134 ? might be 1.0112x slower get-by-id-bimorphic-check-structure-elimination 7.0533+-0.0649 ! 7.5961+-0.2276 ! definitely 1.0770x slower get-by-id-chain-from-try-block 7.1542+-0.2034 7.0644+-0.2444 might be 1.0127x faster get-by-id-check-structure-elimination 5.5721+-0.1460 ? 5.6691+-0.1680 ? might be 1.0174x slower get-by-id-proto-or-self 18.0339+-1.6893 ? 18.0582+-0.8109 ? get-by-id-quadmorphic-check-structure-elimination-simple 3.6032+-0.0725 3.5621+-0.1072 might be 1.0115x faster get-by-id-self-or-proto 17.9402+-0.3495 ? 18.4219+-1.3352 ? might be 1.0269x slower get-by-val-out-of-bounds 4.5253+-0.0473 4.4748+-0.0958 might be 1.0113x faster get_callee_monomorphic 3.4402+-0.1624 ? 3.6058+-0.2314 ? might be 1.0481x slower get_callee_polymorphic 3.4346+-0.2860 ? 3.7600+-0.3669 ? might be 1.0947x slower getter-no-activation 4.9061+-0.0476 4.8382+-0.0554 might be 1.0140x faster getter-richards 106.3368+-2.3793 103.0007+-1.1644 might be 1.0324x faster getter 5.9396+-0.0833 ? 5.9548+-0.1079 ? global-var-const-infer-fire-from-opt 1.0635+-0.0991 ? 1.0765+-0.0648 ? might be 1.0122x slower global-var-const-infer 1.1279+-0.0788 ? 1.1580+-0.1641 ? might be 1.0267x slower HashMap-put-get-iterate-keys 28.0142+-0.6381 27.8768+-0.4181 HashMap-put-get-iterate 28.2142+-0.3095 28.1274+-0.2841 HashMap-string-put-get-iterate 27.6838+-0.3113 ? 27.9554+-0.9912 ? hoist-make-rope 12.0707+-1.2891 12.0505+-1.5048 hoist-poly-check-structure-effectful-loop 5.4206+-0.1666 ? 5.5257+-0.2454 ? might be 1.0194x slower hoist-poly-check-structure 3.9943+-0.0845 3.9142+-0.1104 might be 1.0204x faster imul-double-only 8.1747+-0.3473 7.9510+-0.3530 might be 1.0281x faster imul-int-only 9.8508+-0.4407 ? 10.0049+-0.2885 ? might be 1.0156x slower imul-mixed 7.6109+-0.1565 7.5436+-0.2185 in-four-cases 20.1788+-0.3974 19.9685+-0.1683 might be 1.0105x faster in-one-case-false 10.8085+-0.1625 ? 10.8806+-0.1624 ? in-one-case-true 10.8165+-0.1081 ? 10.9340+-0.1164 ? might be 1.0109x slower in-two-cases 11.1406+-0.3142 11.0443+-0.1523 indexed-properties-in-objects 3.1807+-0.1735 ? 3.1893+-0.1043 ? infer-closure-const-then-mov-no-inline 4.1402+-0.0370 3.9672+-0.1996 might be 1.0436x faster infer-closure-const-then-mov 17.7077+-0.8302 17.6288+-0.3209 infer-closure-const-then-put-to-scope-no-inline 12.0037+-0.0973 ? 12.0872+-0.3725 ? infer-closure-const-then-put-to-scope 23.0732+-0.7907 ? 23.5395+-0.6151 ? might be 1.0202x slower infer-closure-const-then-reenter-no-inline 50.9787+-0.2928 ? 51.8077+-2.8530 ? might be 1.0163x slower infer-closure-const-then-reenter 131.9565+-2.1652 130.6250+-2.4607 might be 1.0102x faster infer-constant-global-property 31.8063+-0.6076 ? 32.9803+-4.4425 ? might be 1.0369x slower infer-constant-property 2.9073+-0.0744 ? 2.9390+-0.1046 ? might be 1.0109x slower infer-one-time-closure-ten-vars 12.8087+-0.1805 12.6422+-0.9250 might be 1.0132x faster infer-one-time-closure-two-vars 11.8967+-0.6442 11.8486+-0.3323 infer-one-time-closure 11.7468+-0.1782 ? 11.9232+-0.2712 ? might be 1.0150x slower infer-one-time-deep-closure 21.1288+-0.6738 ? 21.2053+-0.0971 ? inline-arguments-access 4.1879+-0.2007 ? 4.3747+-0.1490 ? might be 1.0446x slower inline-arguments-aliased-access 4.1913+-0.2689 ? 4.6992+-0.4538 ? might be 1.1212x slower inline-arguments-local-escape 4.2306+-0.2128 ? 4.3962+-0.2100 ? might be 1.0392x slower inline-get-scoped-var 4.8300+-0.1073 4.7934+-0.0529 inlined-put-by-id-transition 10.4809+-0.2272 ? 10.6790+-0.9499 ? might be 1.0189x slower int-or-other-abs-then-get-by-val 5.3652+-0.0479 ? 5.3665+-0.2219 ? int-or-other-abs-zero-then-get-by-val 17.8698+-0.3472 17.7800+-0.0988 int-or-other-add-then-get-by-val 4.6860+-0.1790 4.5706+-0.0452 might be 1.0253x faster int-or-other-add 5.7279+-0.0638 ? 5.8004+-0.2287 ? might be 1.0127x slower int-or-other-div-then-get-by-val 4.6070+-0.0962 4.5435+-0.0688 might be 1.0140x faster int-or-other-max-then-get-by-val 4.7268+-0.1286 ? 4.8913+-0.3043 ? might be 1.0348x slower int-or-other-min-then-get-by-val 4.9790+-0.1031 ^ 4.7540+-0.1017 ^ definitely 1.0473x faster int-or-other-mod-then-get-by-val 4.2628+-0.1031 4.1643+-0.2026 might be 1.0236x faster int-or-other-mul-then-get-by-val 4.4700+-0.0833 4.3216+-0.0733 might be 1.0343x faster int-or-other-neg-then-get-by-val 5.0945+-0.2202 4.9592+-0.0382 might be 1.0273x faster int-or-other-neg-zero-then-get-by-val 18.2416+-0.5592 17.7065+-0.4181 might be 1.0302x faster int-or-other-sub-then-get-by-val 4.6973+-0.1234 4.6655+-0.0723 int-or-other-sub 3.8598+-0.2715 3.7228+-0.1555 might be 1.0368x faster int-overflow-local 4.7143+-0.1620 4.6948+-0.1348 Int16Array-alloc-long-lived 49.9990+-0.7955 ? 51.6949+-0.9941 ? might be 1.0339x slower Int16Array-bubble-sort-with-byteLength 21.3203+-1.1449 21.0838+-0.6582 might be 1.0112x faster Int16Array-bubble-sort 21.9567+-2.2643 21.1935+-0.8225 might be 1.0360x faster Int16Array-load-int-mul 1.7230+-0.0440 1.6688+-0.0449 might be 1.0325x faster Int16Array-to-Int32Array-set 57.0495+-0.5401 ? 57.5585+-1.2246 ? Int32Array-alloc-large 21.3757+-0.4047 ? 21.4184+-0.8540 ? Int32Array-alloc-long-lived 56.4711+-0.9052 ? 57.1424+-0.6262 ? might be 1.0119x slower Int32Array-alloc 2.7802+-0.0929 ! 3.0582+-0.1316 ! definitely 1.1000x slower Int32Array-Int8Array-view-alloc 6.9559+-0.1041 ? 7.0066+-0.1811 ? int52-spill 7.0180+-0.1843 6.9558+-0.3789 Int8Array-alloc-long-lived 45.5339+-0.2902 ! 46.6559+-0.4017 ! definitely 1.0246x slower Int8Array-load-with-byteLength 3.6703+-0.1019 ? 3.7048+-0.2318 ? Int8Array-load 3.7167+-0.1097 3.6399+-0.2067 might be 1.0211x faster integer-divide 12.2686+-0.1583 12.2386+-0.2442 integer-modulo 2.5461+-0.1675 2.3604+-0.2080 might be 1.0787x faster large-int-captured 5.4034+-0.0997 ? 5.6616+-0.2855 ? might be 1.0478x slower large-int-neg 17.2428+-0.3136 ? 17.2847+-0.4246 ? large-int 15.8444+-0.0749 ? 16.1617+-0.6098 ? might be 1.0200x slower logical-not 5.0551+-0.2096 4.9691+-0.1296 might be 1.0173x faster lots-of-fields 13.3174+-0.3685 ? 13.4628+-0.4353 ? might be 1.0109x slower make-indexed-storage 3.2976+-0.5759 3.2427+-0.4028 might be 1.0169x faster make-rope-cse 4.1738+-1.2260 3.9447+-0.1648 might be 1.0581x faster marsaglia-larger-ints 41.1466+-0.9740 40.8591+-0.8946 marsaglia-osr-entry 23.2627+-0.3849 23.2353+-0.5706 max-boolean 2.6942+-0.1254 2.6912+-0.0833 method-on-number 19.9265+-0.3582 ^ 18.1041+-0.3347 ^ definitely 1.1007x faster min-boolean 2.7136+-0.1352 ? 2.7311+-0.2204 ? minus-boolean-double 3.3718+-0.1612 3.3435+-0.0267 minus-boolean 2.4975+-0.0694 2.4837+-0.0653 misc-strict-eq 39.0215+-1.0617 38.7501+-1.0687 mod-boolean-double 11.7204+-0.3007 11.6471+-0.3862 mod-boolean 8.4581+-0.3682 8.4072+-0.2778 mul-boolean-double 3.9737+-0.1784 ? 4.0005+-0.2276 ? mul-boolean 3.0344+-0.0278 ? 3.0580+-0.0845 ? neg-boolean 3.3537+-0.1218 ? 3.4313+-0.2416 ? might be 1.0231x slower negative-zero-divide 0.4390+-0.0298 0.4246+-0.0338 might be 1.0341x faster negative-zero-modulo 0.4515+-0.0722 0.4447+-0.0265 might be 1.0152x faster negative-zero-negate 0.4140+-0.0139 0.4110+-0.0262 nested-function-parsing 37.5920+-0.2746 37.1382+-0.3264 might be 1.0122x faster new-array-buffer-dead 2.9965+-0.0792 ? 3.0215+-0.0751 ? new-array-buffer-push 6.1622+-0.1607 ? 6.4418+-0.2028 ? might be 1.0454x slower new-array-dead 12.6097+-1.0899 12.3341+-1.3894 might be 1.0223x faster new-array-push 4.0259+-0.2995 ? 4.1082+-0.4264 ? might be 1.0204x slower number-test 3.2542+-0.0544 3.2458+-0.1223 object-closure-call 5.9286+-0.0473 ? 5.9607+-0.0977 ? object-test 3.3978+-0.2150 ? 3.4005+-0.1291 ? obvious-sink-pathology-taken 133.4529+-2.9501 129.8032+-2.8443 might be 1.0281x faster obvious-sink-pathology 126.8414+-1.8889 123.1696+-6.6834 might be 1.0298x faster obviously-elidable-new-object 34.7593+-1.1735 34.6291+-0.8315 plus-boolean-arith 2.7308+-0.1308 2.6824+-0.0873 might be 1.0180x faster plus-boolean-double 3.4185+-0.1279 3.4108+-0.2337 plus-boolean 2.5561+-0.0163 2.5293+-0.0259 might be 1.0106x faster poly-chain-access-different-prototypes-simple 3.4877+-0.0805 3.4683+-0.0954 poly-chain-access-different-prototypes 2.8695+-0.1216 2.8465+-0.0469 poly-chain-access-simpler 3.5807+-0.3283 3.5659+-0.1352 poly-chain-access 2.8284+-0.0721 2.7985+-0.1076 might be 1.0107x faster poly-stricteq 60.5480+-0.3929 60.3116+-0.2318 polymorphic-array-call 1.7210+-0.2605 ? 1.7466+-0.0459 ? might be 1.0149x slower polymorphic-get-by-id 3.3597+-0.1357 3.2775+-0.1163 might be 1.0251x faster polymorphic-put-by-id 30.3734+-2.5643 29.7443+-2.1774 might be 1.0211x faster polymorphic-structure 15.4373+-0.2169 ? 15.4410+-0.2041 ? polyvariant-monomorphic-get-by-id 9.4014+-0.1655 9.2325+-0.1654 might be 1.0183x faster proto-getter-access 10.4927+-0.1389 ? 10.6310+-0.1891 ? might be 1.0132x slower put-by-id-replace-and-transition 8.7256+-0.1586 ? 9.0667+-0.1995 ? might be 1.0391x slower put-by-id-slightly-polymorphic 3.1274+-0.0883 3.0538+-0.1237 might be 1.0241x faster put-by-id 13.5238+-0.2680 13.0048+-0.2646 might be 1.0399x faster put-by-val-direct 0.7431+-0.0097 ^ 0.5938+-0.0342 ^ definitely 1.2515x faster put-by-val-large-index-blank-indexing-type 5.6142+-0.1878 ? 5.7003+-0.2342 ? might be 1.0153x slower put-by-val-machine-int 2.5745+-0.0741 ? 2.7729+-0.1379 ? might be 1.0771x slower rare-osr-exit-on-local 15.5408+-0.1195 15.4777+-0.1628 register-pressure-from-osr 22.7615+-0.2151 22.6348+-0.6718 setter 5.9764+-0.0596 5.9481+-0.0984 simple-activation-demo 26.9961+-0.3074 ^ 26.0160+-0.1185 ^ definitely 1.0377x faster simple-getter-access 13.6696+-0.5367 13.5219+-0.1977 might be 1.0109x faster simple-poly-call-nested 9.1648+-0.2443 9.0678+-0.2524 might be 1.0107x faster simple-poly-call 1.6288+-0.2101 ? 1.7059+-0.1812 ? might be 1.0473x slower sin-boolean 19.4198+-0.7811 19.3460+-0.6366 sinkable-new-object-dag 69.6763+-0.9612 ! 72.2692+-0.4288 ! definitely 1.0372x slower sinkable-new-object-taken 53.9908+-4.5998 ? 54.2162+-5.0917 ? sinkable-new-object 38.1906+-0.7155 ? 38.5447+-0.9011 ? slow-array-profile-convergence 3.2375+-0.2065 3.0195+-0.1024 might be 1.0722x faster slow-convergence 3.6523+-0.0779 3.5319+-0.1522 might be 1.0341x faster sorting-benchmark 22.6425+-0.5354 22.2411+-0.4376 might be 1.0180x faster sparse-conditional 1.3690+-0.0870 1.3502+-0.1364 might be 1.0140x faster splice-to-remove 17.4984+-0.8705 17.0923+-1.2712 might be 1.0238x faster string-char-code-at 16.7932+-0.0964 16.6844+-0.1554 string-concat-object 2.0745+-0.0937 ? 2.2264+-0.1022 ? might be 1.0732x slower string-concat-pair-object 2.0403+-0.0356 ! 2.2733+-0.1877 ! definitely 1.1142x slower string-concat-pair-simple 11.5300+-0.2977 ? 11.7729+-0.2614 ? might be 1.0211x slower string-concat-simple 11.6546+-0.2020 ! 12.1947+-0.2823 ! definitely 1.0463x slower string-cons-repeat 7.2703+-0.1621 ? 7.5312+-0.2758 ? might be 1.0359x slower string-cons-tower 7.2968+-0.0888 ! 7.5643+-0.0372 ! definitely 1.0367x slower string-equality 18.1639+-0.4136 ? 18.4255+-0.4140 ? might be 1.0144x slower string-get-by-val-big-char 7.4581+-0.2741 ? 7.5136+-0.3198 ? string-get-by-val-out-of-bounds-insane 4.3908+-0.3296 3.8765+-0.2553 might be 1.1327x faster string-get-by-val-out-of-bounds 5.7872+-0.0423 5.7085+-0.1808 might be 1.0138x faster string-get-by-val 3.6000+-0.2677 3.4519+-0.1085 might be 1.0429x faster string-hash 2.3055+-0.1121 ? 2.3130+-0.0957 ? string-long-ident-equality 14.8979+-0.1595 ? 14.9088+-0.2109 ? string-out-of-bounds 15.2498+-0.3209 15.2038+-0.1816 string-repeat-arith 32.4025+-0.1446 ? 32.6853+-0.3497 ? string-sub 64.3193+-2.4941 63.9529+-1.1066 string-test 3.1917+-0.1223 3.1837+-0.1180 string-var-equality 31.4825+-0.2783 31.3152+-0.2516 structure-hoist-over-transitions 2.6018+-0.1002 ? 2.6497+-0.0489 ? might be 1.0184x slower substring-concat-weird 40.2578+-0.8437 ? 40.8912+-0.5790 ? might be 1.0157x slower substring-concat 41.7631+-0.7722 ? 42.3220+-0.4406 ? might be 1.0134x slower substring 47.0643+-0.8086 46.8294+-0.5450 switch-char-constant 3.0044+-0.0773 2.9675+-0.0725 might be 1.0124x faster switch-char 7.1210+-0.0262 7.0292+-0.0712 might be 1.0131x faster switch-constant 8.4805+-0.5671 ? 8.5723+-0.0803 ? might be 1.0108x slower switch-string-basic-big-var 15.6741+-0.1579 15.5470+-0.2624 switch-string-basic-big 14.4418+-0.3975 14.3686+-0.3134 switch-string-basic-var 15.1533+-0.4641 15.0434+-0.2871 switch-string-basic 13.7289+-0.2240 13.5805+-0.1759 might be 1.0109x faster switch-string-big-length-tower-var 20.7231+-0.2961 20.6047+-0.3434 switch-string-length-tower-var 15.5130+-0.2731 15.4240+-0.2845 switch-string-length-tower 13.3013+-0.4077 ? 13.3380+-0.2463 ? switch-string-short 13.1188+-0.1897 ? 13.3082+-0.4225 ? might be 1.0144x slower switch 12.4352+-0.4226 ? 12.9710+-0.1405 ? might be 1.0431x slower tear-off-arguments-simple 3.4771+-0.3934 3.2936+-0.1115 might be 1.0557x faster tear-off-arguments 4.5708+-0.2663 ? 4.7083+-0.0571 ? might be 1.0301x slower temporal-structure 12.9910+-0.2481 12.7654+-0.4187 might be 1.0177x faster tilde-tilde-folding 42.5036+-2.6412 41.7748+-0.8327 might be 1.0174x faster to-int32-boolean 14.4003+-0.2451 14.3705+-0.4932 try-catch-get-by-val-cloned-arguments 13.9913+-0.6377 13.7917+-0.3377 might be 1.0145x faster try-catch-get-by-val-direct-arguments 5.9280+-0.5385 5.8954+-0.1450 try-catch-get-by-val-scoped-arguments 6.7288+-0.2134 ? 6.8700+-0.1871 ? might be 1.0210x slower undefined-property-access 406.0381+-5.5785 404.8080+-1.8144 undefined-test 3.2967+-0.0407 ? 3.3137+-0.1099 ? unprofiled-licm 22.9076+-0.4121 ? 23.1360+-0.2794 ? varargs-call 15.7157+-0.5434 ? 15.7200+-0.2393 ? varargs-construct-inline 21.9393+-0.5694 ? 22.4552+-0.4651 ? might be 1.0235x slower varargs-construct 33.6310+-0.5160 ? 33.9678+-0.4645 ? might be 1.0100x slower varargs-inline 9.2563+-0.3387 ? 9.3724+-0.7592 ? might be 1.0125x slower varargs-strict-mode 10.0715+-0.1949 ? 10.2230+-0.1128 ? might be 1.0150x slower varargs 9.9409+-0.1656 ? 10.2992+-0.5852 ? might be 1.0360x slower weird-inlining-const-prop 2.3953+-0.1086 ? 2.4322+-0.0778 ? might be 1.0154x slower <geometric> 8.8982+-0.0241 8.8882+-0.0243 might be 1.0011x faster BO AXE AsmBench: bigfib.cpp 529.8680+-1.3170 527.3084+-2.5699 cray.c 464.4332+-4.3666 ? 465.7454+-1.8677 ? dry.c 522.3862+-18.5921 511.2756+-16.3415 might be 1.0217x faster FloatMM.c 829.5422+-1.6183 ? 830.7151+-10.3146 ? gcc-loops.cpp 4416.0571+-21.9510 4414.7697+-22.8542 n-body.c 1051.8797+-2.8320 1051.5721+-3.2741 Quicksort.c 472.2245+-5.9797 ? 472.3325+-10.3054 ? stepanov_container.cpp 3934.6675+-17.2783 ? 3943.5222+-18.1979 ? Towers.c 281.8233+-4.4983 ? 282.9013+-0.5190 ? <geometric> 860.7395+-3.4744 859.1751+-4.0191 might be 1.0018x faster BO AXE CompressionBench: huffman 385.8627+-1.3242 383.7420+-2.8097 arithmetic-simple 428.1730+-4.5776 423.6381+-3.5442 might be 1.0107x faster arithmetic-precise 316.8400+-5.0096 314.5815+-7.9833 arithmetic-complex-precise 313.4549+-1.6838 309.4612+-2.7077 might be 1.0129x faster arithmetic-precise-order-0 451.9055+-4.7456 447.8956+-6.4474 arithmetic-precise-order-1 344.3370+-3.2021 ? 344.8810+-4.2263 ? arithmetic-precise-order-2 393.2943+-3.7653 ? 399.0703+-3.1402 ? might be 1.0147x slower arithmetic-simple-order-1 443.4107+-3.2495 ? 448.4453+-6.0606 ? might be 1.0114x slower arithmetic-simple-order-2 505.0058+-8.1018 ? 507.8505+-2.5149 ? lz-string 310.7788+-5.8369 309.5888+-7.1182 <geometric> 384.0859+-0.4046 383.4755+-1.0894 might be 1.0016x faster BO AXE Geomean of preferred means: <scaled-result> 66.8520+-0.0995 66.7673+-0.1557 might be 1.0013x faster
Looks like an Octane regression, no?
(In reply to comment #3) > Looks like an Octane regression, no? Oh, you're right. I also realized that I ran the benchmarks with only MarkedBlock changed, and WeakBlock still at 4kB. Rerunning now, will post once ready!
Okay, here we go again! There are indeed some small slowdowns on Octane and LongSpider. And some speedups on Kraken and CompressionBench. Nothing scary IMO. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on spacecake (MacPro6,1). VMs tested: "BO" at /Volumes/Data/Source/Safari/ToT-Clean/WebKitBuild/Release/jsc "AXE" at /Volumes/Data/Source/Safari/OpenSource/WebKitBuild/Release/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. BO AXE SunSpider: 3d-cube 5.4741+-0.1843 5.3132+-0.0743 might be 1.0303x faster 3d-morph 6.1888+-0.0762 6.0787+-0.1081 might be 1.0181x faster 3d-raytrace 6.7092+-0.1250 6.7036+-0.1978 access-binary-trees 2.3765+-0.0708 ? 2.4100+-0.1203 ? might be 1.0141x slower access-fannkuch 6.1437+-0.1161 6.1231+-0.0444 access-nbody 3.1929+-0.0228 3.0881+-0.1689 might be 1.0340x faster access-nsieve 3.8229+-0.2081 3.6578+-0.0668 might be 1.0451x faster bitops-3bit-bits-in-byte 1.8460+-0.0727 1.8051+-0.0698 might be 1.0227x faster bitops-bits-in-byte 3.6675+-0.0896 ? 3.7225+-0.2566 ? might be 1.0150x slower bitops-bitwise-and 2.3305+-0.0495 ? 2.3790+-0.0734 ? might be 1.0208x slower bitops-nsieve-bits 3.9653+-0.1277 3.9443+-0.1333 controlflow-recursive 2.4592+-0.1438 2.3953+-0.0182 might be 1.0267x faster crypto-aes 4.6289+-0.3583 4.4562+-0.0850 might be 1.0387x faster crypto-md5 2.6910+-0.1181 2.6414+-0.0907 might be 1.0188x faster crypto-sha1 2.8602+-0.0867 2.7927+-0.0703 might be 1.0241x faster date-format-tofte 10.0085+-0.1423 ? 10.2320+-0.2735 ? might be 1.0223x slower date-format-xparb 5.7372+-0.0720 5.5038+-0.4760 might be 1.0424x faster math-cordic 3.3930+-0.0735 3.3528+-0.0804 might be 1.0120x faster math-partial-sums 5.7034+-0.6629 5.4871+-0.1043 might be 1.0394x faster math-spectral-norm 2.1898+-0.0173 2.1550+-0.0759 might be 1.0161x faster regexp-dna 7.3167+-0.0738 ? 7.4305+-0.2971 ? might be 1.0156x slower string-base64 4.7261+-0.3191 4.6645+-0.1319 might be 1.0132x faster string-fasta 7.0090+-0.1081 6.8469+-0.1715 might be 1.0237x faster string-tagcloud 9.9017+-0.1473 9.7538+-0.1465 might be 1.0152x faster string-unpack-code 21.0257+-0.2818 20.7527+-0.3030 might be 1.0132x faster string-validate-input 5.0233+-0.1215 ? 5.1132+-0.3381 ? might be 1.0179x slower <arithmetic> 5.3997+-0.0382 5.3386+-0.0498 might be 1.0114x faster BO AXE LongSpider: 3d-cube 896.0269+-7.0199 872.7719+-21.8086 might be 1.0266x faster 3d-morph 1620.6433+-4.5353 ? 1622.4252+-3.7885 ? 3d-raytrace 782.4073+-3.4452 ? 784.0435+-8.7423 ? access-binary-trees 995.2147+-5.4526 994.9916+-7.1671 access-fannkuch 355.0831+-1.7735 349.1285+-11.1283 might be 1.0171x faster access-nbody 645.8480+-1.7874 ! 653.6118+-5.9621 ! definitely 1.0120x slower access-nsieve 827.0486+-5.2656 823.9493+-5.0607 bitops-3bit-bits-in-byte 49.2617+-0.2073 49.2028+-0.6145 bitops-bits-in-byte 98.0665+-1.5095 97.9528+-1.7409 bitops-nsieve-bits 759.9272+-10.7426 ? 767.3227+-40.7363 ? controlflow-recursive 525.7874+-2.1345 525.4905+-1.0770 crypto-aes 717.9355+-6.5422 716.8865+-5.8339 crypto-md5 596.7657+-8.8157 590.4872+-8.6572 might be 1.0106x faster crypto-sha1 661.0462+-15.1386 652.5642+-9.0912 might be 1.0130x faster date-format-tofte 786.9632+-7.2478 ? 818.2549+-33.9533 ? might be 1.0398x slower date-format-xparb 786.2692+-33.7915 ? 850.1767+-184.0447 ? might be 1.0813x slower math-cordic 627.1616+-3.4214 626.4023+-2.7529 math-partial-sums 537.3233+-3.0201 536.3049+-7.4863 math-spectral-norm 598.3804+-1.5967 ? 603.2363+-6.2826 ? string-base64 363.2280+-0.7895 ! 377.0786+-3.9922 ! definitely 1.0381x slower string-fasta 464.0621+-10.4461 451.4243+-10.1278 might be 1.0280x faster string-tagcloud 230.7266+-1.9197 227.9215+-1.0017 might be 1.0123x faster <geometric> 520.1489+-1.7432 ? 521.6337+-5.4703 ? might be 1.0029x slower BO AXE V8Spider: crypto 59.5106+-0.6563 ? 59.5667+-0.6215 ? deltablue 78.1448+-0.8809 ? 80.1292+-2.7493 ? might be 1.0254x slower earley-boyer 43.0155+-0.7699 ! 45.7155+-1.1074 ! definitely 1.0628x slower raytrace 33.9033+-0.6223 ? 34.9352+-1.4111 ? might be 1.0304x slower regexp 70.2372+-0.5313 ^ 68.3010+-0.6926 ^ definitely 1.0283x faster richards 84.4021+-1.8905 84.2354+-0.9394 splay 37.7021+-1.9639 ? 37.8451+-1.9036 ? <geometric> 54.9612+-0.2947 ? 55.6769+-0.7267 ? might be 1.0130x slower BO AXE Octane: encrypt 0.23496+-0.00315 ? 0.23508+-0.00625 ? decrypt 4.15004+-0.14803 ? 4.20214+-0.13021 ? might be 1.0126x slower deltablue x2 0.21546+-0.00577 ? 0.21616+-0.00179 ? earley 0.59828+-0.00259 ? 0.59998+-0.00337 ? boyer 6.72205+-0.02982 ! 6.82320+-0.05083 ! definitely 1.0150x slower navier-stokes x2 5.52610+-0.01171 5.51212+-0.01243 raytrace x2 1.27420+-0.03142 1.25666+-0.08951 might be 1.0140x faster richards x2 0.12254+-0.00276 ? 0.12295+-0.00250 ? splay x2 0.39381+-0.00476 ? 0.40375+-0.00781 ? might be 1.0252x slower regexp x2 33.05398+-0.83730 32.76362+-0.63422 pdfjs x2 46.66908+-0.27157 ? 46.82159+-0.44746 ? mandreel x2 55.98000+-0.15696 ? 56.03301+-0.31625 ? gbemu x2 41.95008+-0.13824 ! 42.55622+-0.36284 ! definitely 1.0144x slower closure 0.61055+-0.00158 ? 0.61206+-0.00554 ? jquery 7.81796+-0.03983 ? 7.86789+-0.02880 ? box2d x2 13.50487+-0.11417 ? 13.55646+-0.12083 ? zlib x2 411.75140+-2.74567 403.51801+-27.59831 might be 1.0204x faster typescript x2 877.98151+-13.49527 874.86615+-22.26265 <geometric> 7.07742+-0.02215 ? 7.08845+-0.04297 ? might be 1.0016x slower BO AXE Kraken: ai-astar 352.328+-1.790 ? 356.414+-7.684 ? might be 1.0116x slower audio-beat-detection 112.720+-0.820 ? 113.069+-1.824 ? audio-dft 147.960+-2.977 ? 148.936+-2.579 ? audio-fft 82.787+-1.097 82.423+-0.627 audio-oscillator 218.589+-4.241 217.844+-2.658 imaging-darkroom 110.396+-1.325 ? 110.974+-2.554 ? imaging-desaturate 70.104+-4.511 68.739+-0.971 might be 1.0199x faster imaging-gaussian-blur 116.913+-0.677 ? 117.072+-0.185 ? json-parse-financial 46.315+-0.331 ? 47.114+-0.818 ? might be 1.0172x slower json-stringify-tinderbox 59.681+-0.466 ^ 58.284+-0.692 ^ definitely 1.0240x faster stanford-crypto-aes 66.863+-2.276 ^ 63.300+-1.007 ^ definitely 1.0563x faster stanford-crypto-ccm 55.919+-8.809 ? 61.783+-8.291 ? might be 1.1049x slower stanford-crypto-pbkdf2 177.827+-1.129 176.338+-1.580 stanford-crypto-sha256-iterative 57.606+-0.292 ? 57.752+-1.480 ? <arithmetic> 119.715+-0.560 ? 120.003+-0.616 ? might be 1.0024x slower BO AXE JSRegress: abs-boolean 2.8173+-0.0573 ? 2.8281+-0.0669 ? adapt-to-double-divide 17.4714+-0.5094 17.3600+-0.1415 aliased-arguments-getbyval 1.3651+-0.0914 ? 1.4418+-0.1547 ? might be 1.0562x slower allocate-big-object 2.5677+-0.4004 ? 2.8524+-0.0775 ? might be 1.1109x slower arguments-named-and-reflective 12.0286+-0.1296 12.0107+-0.1173 arguments-out-of-bounds 15.0981+-0.5692 14.9612+-0.1565 arguments-strict-mode 10.9950+-0.1875 10.9343+-0.3664 arguments 9.7319+-0.1412 ? 9.8725+-0.3105 ? might be 1.0144x slower arity-mismatch-inlining 1.0148+-0.0285 0.9932+-0.0493 might be 1.0218x faster array-access-polymorphic-structure 6.5537+-0.0889 ? 6.6423+-0.2431 ? might be 1.0135x slower array-nonarray-polymorhpic-access 36.4812+-0.2766 ? 36.6710+-0.3381 ? array-prototype-every 90.1464+-1.2017 ? 91.0908+-4.3909 ? might be 1.0105x slower array-prototype-forEach 87.0969+-0.4316 ? 87.2391+-0.5936 ? array-prototype-map 97.2327+-0.7501 ? 97.8619+-1.4081 ? array-prototype-some 90.7228+-0.4443 ? 90.8922+-4.3676 ? array-splice-contiguous 43.7982+-0.4083 43.0883+-0.7723 might be 1.0165x faster array-with-double-add 4.3928+-0.1850 4.3317+-0.0467 might be 1.0141x faster array-with-double-increment 3.4059+-0.1076 3.4016+-0.0921 array-with-double-mul-add 5.3720+-0.0847 5.2660+-0.0742 might be 1.0201x faster array-with-double-sum 3.4908+-0.0536 3.4796+-0.0272 array-with-int32-add-sub 7.1035+-0.0518 7.0858+-0.0605 array-with-int32-or-double-sum 3.5499+-0.0450 3.5114+-0.0348 might be 1.0110x faster ArrayBuffer-DataView-alloc-large-long-lived 33.0380+-0.3723 32.7570+-0.2811 ArrayBuffer-DataView-alloc-long-lived 13.9694+-0.3211 ? 14.1235+-1.6816 ? might be 1.0110x slower ArrayBuffer-Int32Array-byteOffset 4.0685+-0.0388 ? 4.0912+-0.1803 ? ArrayBuffer-Int8Array-alloc-large-long-lived 33.7691+-0.7439 ? 34.0317+-0.9582 ? ArrayBuffer-Int8Array-alloc-long-lived-buffer 23.3192+-0.6015 ^ 22.3430+-0.2365 ^ definitely 1.0437x faster ArrayBuffer-Int8Array-alloc-long-lived 13.1286+-0.1076 12.8132+-0.2612 might be 1.0246x faster ArrayBuffer-Int8Array-alloc 10.9952+-0.1452 10.8840+-0.3492 might be 1.0102x faster asmjs_bool_bug 8.0540+-0.0611 7.9628+-0.1138 might be 1.0115x faster assign-custom-setter-polymorphic 3.2777+-0.0567 ! 3.5045+-0.1001 ! definitely 1.0692x slower assign-custom-setter 4.4142+-0.1153 ! 4.6940+-0.0890 ! definitely 1.0634x slower basic-set 9.6655+-0.1652 ? 9.8473+-0.5138 ? might be 1.0188x slower big-int-mul 4.3309+-0.0928 4.2706+-0.3047 might be 1.0141x faster boolean-test 3.2960+-0.0656 3.2324+-0.0591 might be 1.0197x faster branch-fold 4.0480+-0.0855 3.9752+-0.1287 might be 1.0183x faster by-val-generic 8.2089+-0.0792 8.1165+-0.2743 might be 1.0114x faster caching-of-property-access-misses 20.1128+-0.1946 19.9376+-0.0978 call-spread-apply 31.7484+-1.2365 31.3485+-0.5705 might be 1.0128x faster call-spread-call 26.0258+-0.4890 ? 26.3915+-1.5904 ? might be 1.0141x slower captured-assignments 0.5976+-0.0065 0.5530+-0.0383 might be 1.0807x faster cast-int-to-double 5.6972+-0.0617 ? 5.7431+-0.1310 ? cell-argument 8.5130+-0.1696 ? 8.5534+-0.1070 ? cfg-simplify 3.0301+-0.0964 2.9847+-0.0897 might be 1.0152x faster chain-getter-access 10.5108+-0.3066 ? 10.5405+-0.2565 ? cmpeq-obj-to-obj-other 11.9147+-0.2273 11.4772+-0.4127 might be 1.0381x faster constant-test 5.4118+-0.1335 5.3048+-0.0510 might be 1.0202x faster DataView-custom-properties 38.3843+-0.8089 38.3523+-0.8347 deconstructing-parameters-overridden-by-function 0.6468+-0.0310 0.6459+-0.0521 delay-tear-off-arguments-strictmode 13.5410+-0.0476 ? 14.0536+-0.5334 ? might be 1.0379x slower deltablue-varargs 212.1865+-3.1401 211.7460+-3.9058 destructuring-arguments 16.5649+-0.3988 ? 17.1586+-0.4368 ? might be 1.0358x slower destructuring-swap 5.5198+-0.0656 5.4362+-0.1157 might be 1.0154x faster direct-arguments-getbyval 1.3742+-0.0989 ? 1.4156+-0.1358 ? might be 1.0301x slower div-boolean-double 5.7558+-0.1490 ^ 5.5532+-0.0336 ^ definitely 1.0365x faster div-boolean 8.3286+-0.0472 ? 8.3409+-0.1118 ? double-get-by-val-out-of-bounds 4.5845+-0.1382 ? 4.6340+-0.1617 ? might be 1.0108x slower double-pollution-getbyval 9.3340+-0.0431 ? 9.4075+-0.1074 ? double-pollution-putbyoffset 4.5351+-0.1725 ? 4.6550+-0.1040 ? might be 1.0264x slower double-to-int32-typed-array-no-inline 2.5447+-0.1881 2.4814+-0.0590 might be 1.0255x faster double-to-int32-typed-array 2.1715+-0.0396 ? 2.1805+-0.0358 ? double-to-uint32-typed-array-no-inline 2.5470+-0.1075 2.5423+-0.0418 double-to-uint32-typed-array 2.2297+-0.0792 2.1932+-0.0864 might be 1.0167x faster elidable-new-object-dag 40.6246+-0.8986 ? 41.7682+-1.4001 ? might be 1.0282x slower elidable-new-object-roflcopter 44.8602+-0.3141 ? 45.6147+-1.2875 ? might be 1.0168x slower elidable-new-object-then-call 37.5990+-3.8216 37.2524+-3.1255 elidable-new-object-tree 43.1744+-0.9558 ? 43.9600+-0.7924 ? might be 1.0182x slower empty-string-plus-int 5.5025+-0.1102 ? 5.5553+-0.0781 ? emscripten-cube2hash 40.3615+-1.0178 39.6577+-0.3411 might be 1.0177x faster exit-length-on-plain-object 14.1387+-1.2262 13.8103+-0.0369 might be 1.0238x faster external-arguments-getbyval 1.3039+-0.1002 ? 1.3472+-0.0736 ? might be 1.0332x slower external-arguments-putbyval 2.4913+-0.0916 ? 2.5905+-0.1063 ? might be 1.0398x slower fixed-typed-array-storage-var-index 1.4556+-0.0177 1.4540+-0.0669 fixed-typed-array-storage 1.1185+-0.0818 1.0825+-0.0782 might be 1.0332x faster Float32Array-matrix-mult 4.7341+-0.1198 4.6537+-0.0626 might be 1.0173x faster Float32Array-to-Float64Array-set 53.6052+-0.5772 ? 54.0518+-0.6441 ? Float64Array-alloc-long-lived 72.4789+-1.2328 72.0123+-0.5497 Float64Array-to-Int16Array-set 71.2603+-0.4558 ? 71.4420+-0.4911 ? fold-double-to-int 14.6328+-0.2249 ? 14.7542+-0.3274 ? fold-get-by-id-to-multi-get-by-offset-rare-int 9.1535+-0.7095 8.7618+-0.0477 might be 1.0447x faster fold-get-by-id-to-multi-get-by-offset 7.8105+-0.3088 7.7589+-0.4128 fold-multi-get-by-offset-to-get-by-offset 6.3712+-0.8382 ? 7.0095+-0.9873 ? might be 1.1002x slower fold-multi-get-by-offset-to-poly-get-by-offset 7.3644+-0.8404 ? 7.6298+-0.4088 ? might be 1.0360x slower fold-multi-put-by-offset-to-poly-put-by-offset 6.4826+-0.8853 ? 6.9571+-0.1106 ? might be 1.0732x slower fold-multi-put-by-offset-to-put-by-offset 5.2495+-0.0464 4.5049+-0.7078 might be 1.1653x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 10.6683+-0.8771 ? 11.2502+-0.3782 ? might be 1.0545x slower fold-put-by-id-to-multi-put-by-offset 7.1254+-0.0556 ? 7.3133+-0.6726 ? might be 1.0264x slower fold-put-structure 5.4416+-0.8582 4.8075+-0.8470 might be 1.1319x faster for-of-iterate-array-entries 4.7729+-0.1068 4.6958+-0.2618 might be 1.0164x faster for-of-iterate-array-keys 4.0034+-0.2424 3.6757+-0.1141 might be 1.0891x faster for-of-iterate-array-values 3.8937+-0.1056 ^ 3.6282+-0.1132 ^ definitely 1.0732x faster fround 20.0186+-0.2731 19.7175+-0.4423 might be 1.0153x faster ftl-library-inlining-dataview 83.7477+-1.8038 ? 90.6600+-8.9810 ? might be 1.0825x slower ftl-library-inlining 70.6351+-0.7401 ? 72.1832+-1.1122 ? might be 1.0219x slower function-dot-apply 2.0648+-0.0382 ? 2.1062+-0.1270 ? might be 1.0200x slower function-test 3.6403+-0.0460 ^ 3.5338+-0.0430 ^ definitely 1.0302x faster function-with-eval 93.3427+-2.8596 92.5827+-0.4242 gcse-poly-get-less-obvious 21.6207+-2.5028 19.3956+-1.1805 might be 1.1147x faster gcse-poly-get 27.1310+-4.4246 ? 28.7548+-1.5098 ? might be 1.0598x slower gcse 4.5309+-0.0590 4.4883+-0.0270 get-by-id-bimorphic-check-structure-elimination-simple 2.9770+-0.1579 2.9257+-0.0480 might be 1.0175x faster get-by-id-bimorphic-check-structure-elimination 6.5565+-0.0848 ? 6.5887+-0.1621 ? get-by-id-chain-from-try-block 7.2294+-0.1946 7.1865+-0.3038 get-by-id-check-structure-elimination 5.3928+-0.2406 5.3906+-0.1726 get-by-id-proto-or-self 17.8199+-0.5784 17.7684+-1.0294 get-by-id-quadmorphic-check-structure-elimination-simple 3.1661+-0.0946 3.1368+-0.0618 get-by-id-self-or-proto 18.3597+-0.9328 18.1061+-0.5259 might be 1.0140x faster get-by-val-out-of-bounds 4.4990+-0.1120 4.4639+-0.1135 get_callee_monomorphic 3.4688+-0.1498 ? 3.6565+-0.1960 ? might be 1.0541x slower get_callee_polymorphic 3.3013+-0.0541 ! 3.6284+-0.0504 ! definitely 1.0991x slower getter-no-activation 4.9109+-0.0306 4.8517+-0.0795 might be 1.0122x faster getter-richards 102.9878+-1.2372 ? 104.5577+-2.9712 ? might be 1.0152x slower getter 5.9382+-0.0760 ? 5.9695+-0.0472 ? global-var-const-infer-fire-from-opt 1.0700+-0.0281 1.0352+-0.0684 might be 1.0336x faster global-var-const-infer 1.0858+-0.1213 1.0720+-0.0711 might be 1.0128x faster HashMap-put-get-iterate-keys 27.8839+-0.4135 27.2962+-0.3388 might be 1.0215x faster HashMap-put-get-iterate 28.6182+-0.7751 27.8047+-0.4335 might be 1.0293x faster HashMap-string-put-get-iterate 27.6917+-0.2785 27.5404+-0.6841 hoist-make-rope 11.0200+-0.3244 ? 11.2953+-2.3763 ? might be 1.0250x slower hoist-poly-check-structure-effectful-loop 5.4310+-0.0835 5.4055+-0.1174 hoist-poly-check-structure 3.9868+-0.1181 3.9358+-0.1066 might be 1.0129x faster imul-double-only 8.0775+-0.2684 7.7969+-0.3092 might be 1.0360x faster imul-int-only 9.9116+-0.7255 9.8957+-0.4589 imul-mixed 7.6181+-0.1527 ? 7.7523+-0.3401 ? might be 1.0176x slower in-four-cases 20.1473+-0.4185 20.0157+-0.1960 in-one-case-false 10.7322+-0.1355 ? 10.7465+-0.1403 ? in-one-case-true 10.7032+-0.0667 ? 10.7517+-0.1030 ? in-two-cases 11.0273+-0.2946 ? 11.0342+-0.2203 ? indexed-properties-in-objects 3.0809+-0.0176 ! 3.1275+-0.0180 ! definitely 1.0151x slower infer-closure-const-then-mov-no-inline 4.1393+-0.0551 4.1042+-0.0589 infer-closure-const-then-mov 17.4025+-0.4067 17.1665+-0.1486 might be 1.0137x faster infer-closure-const-then-put-to-scope-no-inline 12.0134+-0.0410 11.9376+-0.0910 infer-closure-const-then-put-to-scope 23.4002+-0.6147 23.2842+-0.3016 infer-closure-const-then-reenter-no-inline 50.9871+-0.3729 50.9171+-0.2652 infer-closure-const-then-reenter 129.9097+-3.0451 129.5822+-2.5297 infer-constant-global-property 31.3700+-0.1474 ? 31.4330+-0.0938 ? infer-constant-property 2.8718+-0.0715 2.8622+-0.0327 infer-one-time-closure-ten-vars 12.2040+-0.1440 12.1487+-0.1743 infer-one-time-closure-two-vars 11.7974+-0.3117 ? 11.8105+-0.1536 ? infer-one-time-closure 11.7255+-0.2064 11.6390+-0.0938 infer-one-time-deep-closure 20.9298+-0.4066 20.8944+-0.4320 inline-arguments-access 4.0714+-0.1414 ! 4.3562+-0.1397 ! definitely 1.0700x slower inline-arguments-aliased-access 4.1108+-0.1367 ? 4.3333+-0.0963 ? might be 1.0541x slower inline-arguments-local-escape 4.1724+-0.2296 ? 4.4558+-0.1404 ? might be 1.0679x slower inline-get-scoped-var 4.8200+-0.0692 4.8015+-0.1233 inlined-put-by-id-transition 10.4412+-0.3772 ? 10.4562+-0.2974 ? int-or-other-abs-then-get-by-val 5.3710+-0.1303 5.2990+-0.0324 might be 1.0136x faster int-or-other-abs-zero-then-get-by-val 17.6646+-0.4933 ? 17.8472+-0.0919 ? might be 1.0103x slower int-or-other-add-then-get-by-val 4.6703+-0.1531 4.5777+-0.0818 might be 1.0202x faster int-or-other-add 5.6548+-0.2062 ? 5.6938+-0.0689 ? int-or-other-div-then-get-by-val 4.6019+-0.1822 ? 4.6411+-0.4329 ? int-or-other-max-then-get-by-val 4.7576+-0.0875 4.6635+-0.0950 might be 1.0202x faster int-or-other-min-then-get-by-val 4.7950+-0.0652 ? 4.8280+-0.1499 ? int-or-other-mod-then-get-by-val 4.2608+-0.0827 4.1786+-0.0442 might be 1.0197x faster int-or-other-mul-then-get-by-val 4.3338+-0.1009 4.2720+-0.0198 might be 1.0145x faster int-or-other-neg-then-get-by-val 5.0529+-0.0722 4.9435+-0.0490 might be 1.0221x faster int-or-other-neg-zero-then-get-by-val 17.7862+-0.0817 ^ 17.4681+-0.1699 ^ definitely 1.0182x faster int-or-other-sub-then-get-by-val 4.6013+-0.0464 4.5783+-0.0358 int-or-other-sub 3.8552+-0.0807 ? 3.8644+-0.1021 ? int-overflow-local 4.6963+-0.0826 4.6538+-0.0518 Int16Array-alloc-long-lived 49.5667+-0.9004 ? 50.8939+-0.6484 ? might be 1.0268x slower Int16Array-bubble-sort-with-byteLength 21.0464+-0.3567 ? 21.2465+-0.4599 ? Int16Array-bubble-sort 20.8994+-0.6093 ? 21.0225+-0.5020 ? Int16Array-load-int-mul 1.7283+-0.0543 1.7070+-0.0754 might be 1.0125x faster Int16Array-to-Int32Array-set 56.3400+-0.2273 ? 56.8839+-0.4636 ? Int32Array-alloc-large 21.2245+-0.4495 20.9330+-0.6452 might be 1.0139x faster Int32Array-alloc-long-lived 56.2982+-0.5472 ? 56.5391+-0.3841 ? Int32Array-alloc 2.7679+-0.0277 ! 2.9839+-0.0461 ! definitely 1.0781x slower Int32Array-Int8Array-view-alloc 6.9471+-0.0576 ^ 6.6542+-0.1017 ^ definitely 1.0440x faster int52-spill 6.9432+-0.1910 ^ 6.6920+-0.0271 ^ definitely 1.0375x faster Int8Array-alloc-long-lived 45.0732+-0.3031 ? 46.0505+-0.7148 ? might be 1.0217x slower Int8Array-load-with-byteLength 3.5952+-0.0392 3.5914+-0.0318 Int8Array-load 3.6298+-0.0554 3.6076+-0.0177 integer-divide 12.3156+-0.2156 12.2142+-0.2347 integer-modulo 2.4222+-0.0807 2.3640+-0.0327 might be 1.0246x faster large-int-captured 5.3934+-0.2566 ? 5.5870+-0.0683 ? might be 1.0359x slower large-int-neg 17.1082+-0.1851 17.1014+-0.1648 large-int 15.7197+-0.5052 15.6060+-0.0373 logical-not 4.9603+-0.1007 ? 4.9645+-0.1957 ? lots-of-fields 13.1876+-0.3238 13.1483+-0.2779 make-indexed-storage 3.3264+-0.1582 3.2428+-0.2499 might be 1.0258x faster make-rope-cse 3.6890+-0.0689 ! 3.8664+-0.0328 ! definitely 1.0481x slower marsaglia-larger-ints 40.8279+-0.7653 ? 40.9427+-1.3616 ? marsaglia-osr-entry 23.0342+-0.2316 ? 23.3137+-0.6720 ? might be 1.0121x slower max-boolean 2.6765+-0.0445 2.6585+-0.0449 method-on-number 21.3163+-0.3616 ^ 18.8449+-0.1932 ^ definitely 1.1311x faster min-boolean 2.7046+-0.0848 2.6908+-0.0428 minus-boolean-double 3.3260+-0.0397 3.3257+-0.0280 minus-boolean 2.5045+-0.0410 2.4632+-0.0141 might be 1.0168x faster misc-strict-eq 39.7288+-3.6232 38.7145+-0.5035 might be 1.0262x faster mod-boolean-double 11.4541+-0.0701 11.4156+-0.0885 mod-boolean 8.3013+-0.1268 8.2598+-0.1078 mul-boolean-double 3.9931+-0.1228 ? 4.0118+-0.1327 ? mul-boolean 3.0181+-0.0192 ? 3.0339+-0.0742 ? neg-boolean 3.4305+-0.2652 3.3560+-0.0492 might be 1.0222x faster negative-zero-divide 0.4483+-0.0550 0.4157+-0.0302 might be 1.0784x faster negative-zero-modulo 0.4443+-0.0483 0.4244+-0.0387 might be 1.0469x faster negative-zero-negate 0.4110+-0.0128 ? 0.4116+-0.0036 ? nested-function-parsing 37.3802+-0.6709 37.0632+-0.3451 new-array-buffer-dead 3.0529+-0.1426 3.0362+-0.1501 new-array-buffer-push 6.2137+-0.0580 ? 6.3737+-0.2655 ? might be 1.0257x slower new-array-dead 13.1484+-0.7919 12.3544+-0.9014 might be 1.0643x faster new-array-push 4.1795+-0.1827 4.0115+-0.1936 might be 1.0419x faster number-test 3.2422+-0.0632 3.2064+-0.0857 might be 1.0112x faster object-closure-call 5.8789+-0.0927 5.8552+-0.0680 object-test 3.3680+-0.0804 ? 3.3744+-0.1084 ? obvious-sink-pathology-taken 131.4255+-2.9941 129.9743+-1.9509 might be 1.0112x faster obvious-sink-pathology 126.1149+-2.5608 ^ 119.5573+-0.6438 ^ definitely 1.0548x faster obviously-elidable-new-object 34.3278+-0.5971 ? 34.5640+-1.0616 ? plus-boolean-arith 2.6853+-0.1139 ? 2.6875+-0.0941 ? plus-boolean-double 3.3590+-0.1508 3.3259+-0.0418 plus-boolean 2.6171+-0.2176 2.5742+-0.0524 might be 1.0166x faster poly-chain-access-different-prototypes-simple 3.5247+-0.1182 3.4850+-0.0941 might be 1.0114x faster poly-chain-access-different-prototypes 2.8207+-0.0736 ? 2.8214+-0.2006 ? poly-chain-access-simpler 3.5671+-0.2017 3.4351+-0.0362 might be 1.0384x faster poly-chain-access 2.8007+-0.0364 2.7781+-0.0485 poly-stricteq 61.2071+-2.7115 59.8720+-0.3829 might be 1.0223x faster polymorphic-array-call 1.7645+-0.1278 1.5815+-0.1839 might be 1.1157x faster polymorphic-get-by-id 3.3568+-0.1453 3.2971+-0.0477 might be 1.0181x faster polymorphic-put-by-id 29.4958+-2.7162 ? 32.8378+-4.0322 ? might be 1.1133x slower polymorphic-structure 15.4651+-0.2171 15.2858+-0.1136 might be 1.0117x faster polyvariant-monomorphic-get-by-id 9.2629+-0.1430 9.2562+-0.1110 proto-getter-access 10.4825+-0.1400 10.4133+-0.1742 put-by-id-replace-and-transition 8.6725+-0.1942 ! 9.0162+-0.1228 ! definitely 1.0396x slower put-by-id-slightly-polymorphic 3.0731+-0.0717 ? 3.0827+-0.0654 ? put-by-id 13.4495+-0.1352 ^ 12.7334+-0.3053 ^ definitely 1.0562x faster put-by-val-direct 0.7145+-0.0301 ^ 0.5772+-0.0456 ^ definitely 1.2378x faster put-by-val-large-index-blank-indexing-type 5.5316+-0.0864 5.4999+-0.1271 put-by-val-machine-int 2.5960+-0.2044 ? 2.7890+-0.0509 ? might be 1.0743x slower rare-osr-exit-on-local 15.6779+-0.2992 15.4392+-0.3340 might be 1.0155x faster register-pressure-from-osr 22.4682+-0.0666 ? 22.5316+-0.3910 ? setter 5.9602+-0.1138 5.9092+-0.0301 simple-activation-demo 26.0262+-0.1523 ? 26.0435+-0.2490 ? simple-getter-access 13.4822+-0.3565 13.4229+-0.2409 simple-poly-call-nested 9.1272+-0.0285 8.9952+-0.1596 might be 1.0147x faster simple-poly-call 1.7152+-0.1851 1.6317+-0.1704 might be 1.0512x faster sin-boolean 19.3862+-0.4430 ? 19.3925+-0.4326 ? sinkable-new-object-dag 69.7773+-0.8788 ? 70.4230+-1.4410 ? sinkable-new-object-taken 53.7957+-3.1097 51.6145+-0.6473 might be 1.0423x faster sinkable-new-object 38.4156+-0.3413 37.7950+-0.6354 might be 1.0164x faster slow-array-profile-convergence 3.2289+-0.2623 3.0156+-0.0705 might be 1.0707x faster slow-convergence 3.6110+-0.0889 3.4993+-0.0548 might be 1.0319x faster sorting-benchmark 22.1880+-0.3078 ? 22.1953+-0.4527 ? sparse-conditional 1.3318+-0.0408 ? 1.3385+-0.0249 ? splice-to-remove 16.9997+-0.1259 ? 17.0664+-0.7958 ? string-char-code-at 16.8760+-0.4718 16.7810+-0.2823 string-concat-object 2.1128+-0.0866 ? 2.2864+-0.1447 ? might be 1.0822x slower string-concat-pair-object 2.0266+-0.0952 ? 2.1953+-0.1131 ? might be 1.0832x slower string-concat-pair-simple 11.5058+-0.1730 ? 11.7334+-0.3380 ? might be 1.0198x slower string-concat-simple 11.5153+-0.2330 ! 11.9041+-0.0805 ! definitely 1.0338x slower string-cons-repeat 7.1805+-0.1944 ? 7.4359+-0.1953 ? might be 1.0356x slower string-cons-tower 7.5497+-0.7929 ? 7.5546+-0.1218 ? string-equality 18.0311+-0.3264 17.9638+-0.2748 string-get-by-val-big-char 7.3152+-0.1498 ? 7.3909+-0.3282 ? might be 1.0103x slower string-get-by-val-out-of-bounds-insane 4.3008+-0.1739 ^ 3.8478+-0.0324 ^ definitely 1.1177x faster string-get-by-val-out-of-bounds 5.7568+-0.1405 5.7404+-0.2523 string-get-by-val 3.5293+-0.0539 3.5175+-0.0511 string-hash 2.3013+-0.0384 ? 2.3082+-0.1353 ? string-long-ident-equality 14.8398+-0.2164 ? 14.8836+-0.1566 ? string-out-of-bounds 15.0342+-0.2302 ? 15.0417+-0.1176 ? string-repeat-arith 32.2040+-0.2423 ? 32.8857+-0.5649 ? might be 1.0212x slower string-sub 63.4370+-1.5336 ? 64.4935+-3.2115 ? might be 1.0167x slower string-test 3.1982+-0.1091 3.1640+-0.0460 might be 1.0108x faster string-var-equality 31.5248+-0.8485 31.2067+-0.3851 might be 1.0102x faster structure-hoist-over-transitions 2.5969+-0.0586 ? 2.7154+-0.1525 ? might be 1.0456x slower substring-concat-weird 39.5921+-0.5550 ! 40.6042+-0.3287 ! definitely 1.0256x slower substring-concat 41.2426+-0.4264 ? 41.6371+-0.1542 ? substring 46.1357+-0.5102 ? 46.8782+-0.2881 ? might be 1.0161x slower switch-char-constant 2.9758+-0.0623 2.8785+-0.0868 might be 1.0338x faster switch-char 7.1116+-0.0412 7.0833+-0.0712 switch-constant 8.2692+-0.1318 ? 8.7826+-0.4879 ? might be 1.0621x slower switch-string-basic-big-var 15.5387+-0.1576 15.5290+-0.1452 switch-string-basic-big 14.4172+-0.2867 14.3512+-0.3527 switch-string-basic-var 14.9298+-0.1300 14.9040+-0.1965 switch-string-basic 13.6147+-0.2834 13.6004+-0.1485 switch-string-big-length-tower-var 20.5145+-0.2413 20.4825+-0.1239 switch-string-length-tower-var 15.2659+-0.0790 ? 15.2892+-0.1709 ? switch-string-length-tower 13.1251+-0.1435 ? 13.1655+-0.2568 ? switch-string-short 13.2681+-0.1637 13.1350+-0.1014 might be 1.0101x faster switch 12.2690+-0.3444 ? 12.7947+-0.2302 ? might be 1.0429x slower tear-off-arguments-simple 3.2700+-0.1346 ? 3.3992+-0.1609 ? might be 1.0395x slower tear-off-arguments 4.4701+-0.0690 ! 4.7500+-0.0946 ! definitely 1.0626x slower temporal-structure 12.7163+-0.1577 ? 13.0585+-0.2993 ? might be 1.0269x slower tilde-tilde-folding 41.2031+-0.4312 ? 41.4777+-0.5340 ? to-int32-boolean 14.1924+-0.0289 ? 14.2015+-0.1120 ? try-catch-get-by-val-cloned-arguments 13.5616+-0.1399 ? 13.6495+-0.1535 ? try-catch-get-by-val-direct-arguments 5.8331+-0.5825 ? 5.8600+-0.1170 ? try-catch-get-by-val-scoped-arguments 6.5541+-0.1033 ! 6.9445+-0.1112 ! definitely 1.0596x slower undefined-property-access 401.6884+-1.0875 ? 402.6544+-2.5050 ? undefined-test 3.3228+-0.0560 3.3024+-0.0517 unprofiled-licm 22.7434+-0.2922 22.6410+-0.2825 varargs-call 15.5430+-0.1907 ? 15.8254+-0.1857 ? might be 1.0182x slower varargs-construct-inline 21.7926+-0.2747 ? 22.1353+-0.2330 ? might be 1.0157x slower varargs-construct 33.3044+-0.5969 ? 33.8323+-0.4801 ? might be 1.0158x slower varargs-inline 9.0958+-0.1542 ? 9.3664+-0.6676 ? might be 1.0297x slower varargs-strict-mode 10.0267+-0.1306 ? 10.0939+-0.0978 ? varargs 9.9739+-0.0617 ? 10.1614+-0.2728 ? might be 1.0188x slower weird-inlining-const-prop 2.3871+-0.1133 2.3293+-0.1215 might be 1.0248x faster <geometric> 8.8288+-0.0095 8.8148+-0.0140 might be 1.0016x faster BO AXE AsmBench: bigfib.cpp 525.5313+-3.4816 525.2757+-1.8204 cray.c 457.4965+-7.1149 ? 459.4775+-8.1231 ? dry.c 525.8731+-0.6478 524.7295+-4.4246 FloatMM.c 821.3733+-3.8185 ? 821.8294+-3.5370 ? gcc-loops.cpp 4375.7452+-19.6188 ? 4376.5958+-5.9419 ? n-body.c 1044.6186+-1.8362 ? 1044.6456+-2.9744 ? Quicksort.c 468.3198+-9.5765 ? 472.4921+-2.3431 ? stepanov_container.cpp 3911.0515+-32.0606 3896.7554+-21.7627 Towers.c 277.5991+-0.6256 ? 278.0461+-3.3910 ? <geometric> 853.8917+-2.8127 ? 854.7720+-2.2891 ? might be 1.0010x slower BO AXE CompressionBench: huffman 382.8075+-1.0294 380.3639+-1.8449 arithmetic-simple 421.7098+-2.7001 ^ 415.8672+-2.3143 ^ definitely 1.0140x faster arithmetic-precise 314.6785+-3.9754 311.9052+-4.9871 arithmetic-complex-precise 311.7849+-5.5451 ? 318.1120+-31.1546 ? might be 1.0203x slower arithmetic-precise-order-0 447.7043+-11.9623 440.8095+-5.9978 might be 1.0156x faster arithmetic-precise-order-1 343.5971+-6.3971 340.8659+-1.1309 arithmetic-precise-order-2 393.7087+-4.3357 ? 394.1078+-5.2978 ? arithmetic-simple-order-1 438.3688+-3.2791 ? 441.2093+-2.9525 ? arithmetic-simple-order-2 497.8932+-1.2320 ? 501.2341+-4.3816 ? lz-string 304.1849+-3.2537 300.1889+-2.9688 might be 1.0133x faster <geometric> 380.5334+-0.7539 379.2880+-3.5821 might be 1.0033x faster BO AXE Geomean of preferred means: <scaled-result> 66.3411+-0.1200 ? 66.3785+-0.2960 ? might be 1.0006x slower
Seems less scary now. Might even be a sunspider win if you increase --inner and --outer a few notches to get more reliable results.
(In reply to comment #6) > Seems less scary now. Might even be a sunspider win if you increase --inner > and --outer a few notches to get more reliable results. Since you asked... Benchmark report for SunSpider on spacecake (MacPro6,1). VMs tested: "BO" at /Volumes/Data/Source/Safari/ToT-Clean/WebKitBuild/Release/jsc "AXE" at /Volumes/Data/Source/Safari/OpenSource/WebKitBuild/Release/jsc Collected 160 samples per benchmark/VM, with 10 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. BO AXE 3d-cube 5.2763+-0.0285 ^ 5.1306+-0.0273 ^ definitely 1.0284x faster 3d-morph 5.9127+-0.0252 5.8694+-0.0324 3d-raytrace 7.3090+-0.0284 7.2679+-0.0328 access-binary-trees 2.2066+-0.0176 ^ 2.1675+-0.0169 ^ definitely 1.0180x faster access-fannkuch 6.0130+-0.0214 ? 6.0259+-0.0292 ? access-nbody 3.1241+-0.0138 ^ 3.0725+-0.0122 ^ definitely 1.0168x faster access-nsieve 3.8937+-0.0267 3.8921+-0.0266 bitops-3bit-bits-in-byte 1.8469+-0.0070 ^ 1.8258+-0.0081 ^ definitely 1.0115x faster bitops-bits-in-byte 3.8769+-0.0138 3.8706+-0.0146 bitops-bitwise-and 2.3496+-0.0122 2.3284+-0.0117 bitops-nsieve-bits 3.9282+-0.0175 ^ 3.8871+-0.0181 ^ definitely 1.0106x faster controlflow-recursive 2.3825+-0.0091 2.3659+-0.0101 crypto-aes 4.4422+-0.0241 4.4355+-0.0262 crypto-md5 2.6207+-0.0126 2.5999+-0.0140 crypto-sha1 2.8404+-0.0074 ^ 2.8192+-0.0107 ^ definitely 1.0075x faster date-format-tofte 9.5378+-0.0482 ! 9.7746+-0.0682 ! definitely 1.0248x slower date-format-xparb 5.4190+-0.0472 ? 5.4575+-0.0509 ? math-cordic 3.5473+-0.0133 ^ 3.5121+-0.0150 ^ definitely 1.0100x faster math-partial-sums 5.4820+-0.0272 5.4619+-0.0252 math-spectral-norm 2.2231+-0.0094 ^ 2.1820+-0.0088 ^ definitely 1.0188x faster regexp-dna 7.3213+-0.0339 7.3110+-0.0368 string-base64 4.4160+-0.0273 ^ 4.3614+-0.0270 ^ definitely 1.0125x faster string-fasta 6.8656+-0.0337 ^ 6.7067+-0.0244 ^ definitely 1.0237x faster string-tagcloud 9.7803+-0.0446 9.7045+-0.0386 string-unpack-code 20.6646+-0.0526 ^ 20.4468+-0.0447 ^ definitely 1.0107x faster string-validate-input 4.9630+-0.0242 4.9425+-0.0277 <arithmetic> 5.3170+-0.0088 ^ 5.2854+-0.0082 ^ definitely 1.0060x faster Looks like you were right. :-)
Comment on attachment 250874 [details] Patch Well I'm sold. r=me
Landed in <https://trac.webkit.org/r182878>
This was a 4.4% progression (~18MB) on Membuster on both Mavericks and Yosemite.