RESOLVED FIXED 136869
Do all closed variable access through the local lexical object
https://bugs.webkit.org/show_bug.cgi?id=136869
Summary Do all closed variable access through the local lexical object
Oliver Hunt
Reported 2014-09-16 14:39:33 PDT
Do all closed variable access through the local lexical object
Attachments
Patch (40.62 KB, patch)
2014-09-16 14:39 PDT, Oliver Hunt
no flags
Patch (40.80 KB, patch)
2014-09-19 10:49 PDT, Oliver Hunt
no flags
Archive of layout-test-results from webkit-ews-11 for mac-mountainlion-wk2 (576.91 KB, application/zip)
2014-09-19 12:35 PDT, Build Bot
no flags
Archive of layout-test-results from webkit-ews-04 for mac-mountainlion (680.31 KB, application/zip)
2014-09-19 15:14 PDT, Build Bot
no flags
Patch (41.99 KB, patch)
2014-09-19 16:57 PDT, Oliver Hunt
no flags
WIP - passes jsc tests, progresses jsc only benchmarks, etc (101.42 KB, patch)
2014-09-26 13:17 PDT, Oliver Hunt
no flags
WIP - passes all tests, rebaselined to ToT, but still regresses perf in a few places (106.47 KB, patch)
2014-09-30 10:50 PDT, Oliver Hunt
no flags
Patch (117.11 KB, patch)
2014-10-01 12:14 PDT, Oliver Hunt
fpizlo: review+
Oliver Hunt
Comment 1 2014-09-16 14:39:45 PDT
Oliver Hunt
Comment 2 2014-09-16 14:42:01 PDT
Initial work, performs all variable reads/writes through the local lexical environment. Doesn't use a single allocation for the environment, isn't writing declared functions through the scope chain. Is annihilating performance - quake tests are ~2.5x slower, simple activation is something like 10x. I'm not sure switching to a single allocation will be enough to compensate for that sort of insanity.
Oliver Hunt
Comment 3 2014-09-19 10:49:56 PDT
Created attachment 238378 [details] Patch fixed dumb handling of put_to_scope
WebKit Commit Bot
Comment 4 2014-09-19 10:52:30 PDT
Attachment 238378 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/llint/LLIntData.cpp:146: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5] Total errors found: 1 in 9 files If any of these errors are false positives, please file a bug against check-webkit-style.
Geoffrey Garen
Comment 5 2014-09-19 11:15:35 PDT
Comment on attachment 238378 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=238378&action=review What's the performance result of this new patch? > Source/JavaScriptCore/bytecode/CodeBlock.cpp:1973 > + if (pc[5].u.operand) { > + instructions[i + 5] = 0; > + break; > + } It looks like you're saying that, if we have a non-local access, we must initialize the structure to null. Why do we need to do this? Why didn't we need to do this before? Why don't we need to this this for local accesses?
Oliver Hunt
Comment 6 2014-09-19 11:54:38 PDT
Comment on attachment 238378 [details] Patch (whoops didn't mean it for review - perf still awful :) )
Oliver Hunt
Comment 7 2014-09-19 11:56:43 PDT
(In reply to comment #5) > (From update of attachment 238378 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=238378&action=review > > What's the performance result of this new patch? > > > Source/JavaScriptCore/bytecode/CodeBlock.cpp:1973 > > + if (pc[5].u.operand) { > > + instructions[i + 5] = 0; > > + break; > > + } > > It looks like you're saying that, if we have a non-local access, we must initialize the structure to null. > > Why do we need to do this? > > Why didn't we need to do this before? > > Why don't we need to this this for local accesses? The structure isn't used for local access, but we use the slot to signify a local access - if we don't clear it the GC then tries to mark what it believes must be a structure* but is actually a bool. That leads to badness. We didn't need to do this before because we always set this to a correct structure or null.
Build Bot
Comment 8 2014-09-19 12:35:10 PDT
Comment on attachment 238378 [details] Patch Attachment 238378 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/4567908147527680 New failing tests: inspector-protocol/debugger/setBreakpoint-options-exception.html js/dom/inc-const-valueOf.html css3/viewport-percentage-lengths/viewport-percentage-lengths-anonymous-block.html inspector-protocol/debugger/didSampleProbe-multiple-probes.html js/dom/const.html css3/viewport-percentage-lengths/viewport-percentage-lengths-resize.html inspector-protocol/debugger/searchInContent-linebreaks.html css3/viewport-percentage-lengths/viewport-percentage-lengths-relative-font-size.html inspector-protocol/debugger/setBreakpoint-actions.html css3/viewport-percentage-lengths/viewport-percentage-lengths-percent-size-child.html inspector-protocol/console/console-message.html
Build Bot
Comment 9 2014-09-19 12:35:13 PDT
Created attachment 238383 [details] Archive of layout-test-results from webkit-ews-11 for mac-mountainlion-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: webkit-ews-11 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Build Bot
Comment 10 2014-09-19 15:14:28 PDT
Comment on attachment 238378 [details] Patch Attachment 238378 [details] did not pass mac-ews (mac): Output: http://webkit-queues.appspot.com/results/6151593586065408 New failing tests: inspector-protocol/debugger/setBreakpoint-options-exception.html js/dom/inc-const-valueOf.html css3/viewport-percentage-lengths/viewport-percentage-lengths-anonymous-block.html inspector-protocol/debugger/didSampleProbe-multiple-probes.html inspector-protocol/debugger/hit-breakpoint-from-console.html js/dom/const.html css3/viewport-percentage-lengths/viewport-percentage-lengths-resize.html inspector-protocol/debugger/searchInContent-linebreaks.html css3/viewport-percentage-lengths/viewport-percentage-lengths-relative-font-size.html inspector-protocol/debugger/setBreakpoint-actions.html css3/viewport-percentage-lengths/viewport-percentage-lengths-percent-size-child.html inspector-protocol/console/console-message.html inspector-protocol/debugger/setBreakpoint.html
Build Bot
Comment 11 2014-09-19 15:14:31 PDT
Created attachment 238391 [details] Archive of layout-test-results from webkit-ews-04 for mac-mountainlion The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: webkit-ews-04 Port: mac-mountainlion Platform: Mac OS X 10.8.5
Oliver Hunt
Comment 12 2014-09-19 16:57:56 PDT
Created attachment 238398 [details] Patch now with correct-ish const behaviour.
Oliver Hunt
Comment 13 2014-09-26 13:15:17 PDT
Getting there: trunk new SunSpider: 3d-cube 6.5831+-0.1777 ? 6.6930+-0.2715 ? might be 1.0167x slower 3d-morph 8.4622+-0.5763 8.3586+-0.4125 might be 1.0124x faster 3d-raytrace 8.4960+-0.8554 8.2167+-0.1770 might be 1.0340x faster access-binary-trees 2.4766+-0.2238 ? 2.5593+-0.2228 ? might be 1.0334x slower access-fannkuch 8.0583+-0.4594 ? 8.1275+-0.2988 ? access-nbody 3.9548+-0.1834 ? 3.9980+-0.2238 ? might be 1.0109x slower access-nsieve 5.0636+-0.1504 ? 5.3058+-0.2260 ? might be 1.0478x slower bitops-3bit-bits-in-byte 1.7398+-0.1479 1.7037+-0.1235 might be 1.0212x faster bitops-bits-in-byte 5.6075+-0.2461 ? 5.6858+-0.1548 ? might be 1.0140x slower bitops-bitwise-and 2.7920+-0.1718 2.7211+-0.2045 might be 1.0260x faster bitops-nsieve-bits 5.0073+-0.2889 ? 5.0095+-0.2361 ? controlflow-recursive 2.6053+-0.1724 ? 2.7364+-0.1839 ? might be 1.0503x slower crypto-aes 5.6257+-0.7609 5.3441+-0.1170 might be 1.0527x faster crypto-md5 3.1347+-0.1420 3.1290+-0.2339 crypto-sha1 3.1318+-0.2464 ? 3.1663+-0.2528 ? might be 1.0110x slower date-format-tofte 11.5990+-0.3327 ! 12.0987+-0.0925 ! definitely 1.0431x slower date-format-xparb 6.9165+-0.3145 6.6412+-0.3418 might be 1.0414x faster math-cordic 4.0718+-0.0392 3.9652+-0.1455 might be 1.0269x faster math-partial-sums 9.3080+-0.7729 8.7882+-0.2186 might be 1.0592x faster math-spectral-norm 2.7661+-0.2420 2.7000+-0.1566 might be 1.0245x faster regexp-dna 9.8392+-0.6835 ? 9.9645+-0.2355 ? might be 1.0127x slower string-base64 5.5485+-0.1918 ? 5.6600+-0.3263 ? might be 1.0201x slower string-fasta 9.0470+-0.4458 8.9326+-0.0295 might be 1.0128x faster string-tagcloud 13.7442+-0.1191 13.5806+-0.5803 might be 1.0120x faster string-unpack-code 29.4589+-1.4138 29.3412+-1.0438 string-validate-input 6.5427+-0.0435 ? 6.6766+-0.4380 ? might be 1.0205x slower <arithmetic> * 6.9839+-0.0707 6.9655+-0.0448 might be 1.0026x faster <geometric> 5.6758+-0.0578 5.6685+-0.0333 might be 1.0013x faster <harmonic> 4.7436+-0.0826 4.7422+-0.0578 might be 1.0003x faster trunk new LongSpider: 3d-cube 1115.2137+-9.1448 ? 1128.4586+-22.0743 ? might be 1.0119x slower 3d-morph 1876.0035+-18.0815 1864.1858+-2.4562 3d-raytrace 1101.5542+-17.3604 ? 1107.3085+-12.8265 ? access-binary-trees 1407.7999+-8.1577 ? 1419.7498+-13.3597 ? access-fannkuch 449.4797+-17.0694 446.1082+-21.2365 access-nbody 1041.6500+-3.3914 1041.4412+-2.4449 access-nsieve 1400.3293+-9.7507 1400.2641+-5.2063 bitops-3bit-bits-in-byte 49.8457+-0.7492 49.8263+-0.7765 bitops-bits-in-byte 326.7853+-11.1215 325.0287+-10.1818 bitops-nsieve-bits 1035.5785+-3.4531 ^ 988.1630+-3.8508 ^ definitely 1.0480x faster controlflow-recursive 716.3319+-6.2611 ? 716.3374+-2.0269 ? crypto-aes 944.1306+-8.4069 939.1065+-2.7868 crypto-md5 808.7806+-4.2647 ? 809.2936+-5.7620 ? crypto-sha1 991.1830+-1.9757 ? 999.1599+-6.2133 ? date-format-tofte 1004.8005+-28.8214 ? 1046.4180+-21.8961 ? might be 1.0414x slower date-format-xparb 968.9442+-32.1412 961.1215+-26.9764 math-cordic 669.5610+-1.6789 ? 670.1751+-1.6054 ? math-partial-sums 1038.5549+-3.9752 ? 1043.6967+-7.0542 ? math-spectral-norm 1075.3821+-8.5496 ? 1077.1320+-10.8602 ? string-base64 491.3812+-2.7716 489.1403+-0.7960 string-fasta 588.2443+-16.8580 578.4473+-2.6189 might be 1.0169x faster string-tagcloud 312.6832+-2.4466 306.4709+-4.4822 might be 1.0203x faster <arithmetic> 882.4644+-2.7709 882.1379+-1.3363 might be 1.0004x faster <geometric> * 738.7421+-2.0411 737.4220+-1.5765 might be 1.0018x faster <harmonic> 457.5162+-3.0522 456.2728+-2.6500 might be 1.0027x faster trunk new V8Spider: crypto 82.2231+-1.2427 ^ 71.5285+-0.7756 ^ definitely 1.1495x faster deltablue 111.8444+-0.7116 111.4160+-1.6115 earley-boyer 62.2648+-1.4425 61.7458+-0.7081 raytrace 42.6268+-2.0692 41.6777+-1.5981 might be 1.0228x faster regexp 86.0444+-0.6564 85.9825+-0.7686 richards 120.5156+-4.2304 ? 124.2405+-3.6949 ? might be 1.0309x slower splay 43.6022+-1.2629 ? 43.8838+-1.9424 ? <arithmetic> 78.4459+-0.6855 77.2107+-0.8530 might be 1.0160x faster <geometric> * 72.9818+-0.6473 71.5596+-0.9034 might be 1.0199x faster <harmonic> 67.6315+-0.7661 66.2687+-1.1090 might be 1.0206x faster trunk new Octane: encrypt 0.32919+-0.00088 0.32829+-0.00452 decrypt 5.94733+-0.04650 ? 5.95294+-0.08160 ? deltablue x2 0.28585+-0.00386 0.28492+-0.00848 earley 1.03817+-0.01706 1.02532+-0.02288 might be 1.0125x faster boyer 8.65140+-0.08995 ? 8.66254+-0.14109 ? navier-stokes x2 6.38120+-0.00199 ? 6.42797+-0.07170 ? raytrace x2 2.22852+-0.03256 ? 2.23079+-0.02601 ? richards x2 0.17804+-0.00404 0.17782+-0.00648 splay x2 0.55333+-0.00589 ? 0.55583+-0.00094 ? regexp x2 47.54781+-0.16358 ! 48.21833+-0.50462 ! definitely 1.0141x slower pdfjs x2 73.95415+-0.52756 ? 74.05404+-0.66266 ? mandreel x2 74.30811+-0.94519 ? 74.62871+-1.01549 ? gbemu x2 60.62467+-0.63673 ! 65.08309+-0.54328 ! definitely 1.0735x slower closure 0.76129+-0.00346 ^ 0.75328+-0.00281 ^ definitely 1.0106x faster jquery 9.38395+-0.01580 ! 9.58200+-0.07902 ! definitely 1.0211x slower box2d x2 20.33280+-0.33139 20.22942+-0.33759 zlib x2 651.63468+-76.29622 ? 652.06681+-75.82649 ? typescript x2 1112.48578+-6.48749 ^ 1080.84705+-9.25136 ^ definitely 1.0293x faster <arithmetic> 137.57137+-4.90182 135.86380+-5.36608 might be 1.0126x faster <geometric> * 10.02977+-0.07174 ? 10.07270+-0.07125 ? might be 1.0043x slower <harmonic> 1.03469+-0.00985 1.03296+-0.01972 might be 1.0017x faster trunk new Kraken: ai-astar 462.973+-14.984 ? 468.247+-12.571 ? might be 1.0114x slower audio-beat-detection 149.861+-1.281 ? 150.162+-3.451 ? audio-dft 211.999+-0.412 ^ 209.957+-1.464 ^ definitely 1.0097x faster audio-fft 108.151+-0.800 ? 108.221+-2.046 ? audio-oscillator 314.353+-4.803 313.669+-2.783 imaging-darkroom 243.110+-0.626 ? 243.292+-1.658 ? imaging-desaturate 94.783+-0.484 ? 94.893+-0.995 ? imaging-gaussian-blur 155.828+-1.327 ? 157.653+-3.242 ? might be 1.0117x slower json-parse-financial 65.110+-0.903 ! 68.601+-1.765 ! definitely 1.0536x slower json-stringify-tinderbox 90.795+-7.626 87.885+-1.678 might be 1.0331x faster stanford-crypto-aes 85.882+-3.821 85.659+-1.667 stanford-crypto-ccm 73.668+-11.379 ? 77.755+-11.846 ? might be 1.0555x slower stanford-crypto-pbkdf2 231.800+-0.750 ? 233.606+-3.015 ? stanford-crypto-sha256-iterative 71.497+-0.829 ? 72.351+-1.386 ? might be 1.0120x slower <arithmetic> * 168.558+-1.419 ? 169.425+-0.919 ? might be 1.0051x slower <geometric> 139.971+-2.158 ? 141.045+-1.393 ? might be 1.0077x slower <harmonic> 119.602+-2.796 ? 121.043+-1.963 ? might be 1.0120x slower trunk new JSRegress: ArrayBuffer-DataView-alloc-large-long-lived 96.3231+-2.1111 95.4300+-1.2801 ArrayBuffer-DataView-alloc-long-lived 25.8523+-0.3848 ? 26.6305+-2.3002 ? might be 1.0301x slower ArrayBuffer-Int32Array-byteOffset 4.5000+-0.1687 ? 4.6724+-0.1477 ? might be 1.0383x slower ArrayBuffer-Int8Array-alloc-large-long-lived 99.8165+-0.5690 99.1079+-1.8575 ArrayBuffer-Int8Array-alloc-long-lived-buffer 42.1527+-1.9165 40.9700+-0.9829 might be 1.0289x faster ArrayBuffer-Int8Array-alloc-long-lived 25.1815+-1.4728 ? 25.1973+-0.6562 ? ArrayBuffer-Int8Array-alloc 22.1994+-0.2305 ? 23.9191+-1.8871 ? might be 1.0775x slower DataView-custom-properties 102.9626+-1.4341 102.0170+-0.7587 Float32Array-matrix-mult 5.8983+-0.4595 5.7465+-0.2019 might be 1.0264x faster Float32Array-to-Float64Array-set 77.8256+-1.8068 77.2762+-1.5971 Float64Array-alloc-long-lived 87.1673+-1.0175 87.1143+-0.7150 Float64Array-to-Int16Array-set 93.2047+-2.2343 ? 93.4600+-0.6259 ? HashMap-put-get-iterate-keys 34.9577+-0.4952 ? 34.9827+-1.1771 ? HashMap-put-get-iterate 34.3861+-0.8570 ? 34.4991+-1.2394 ? HashMap-string-put-get-iterate 39.0083+-1.0295 38.9553+-2.1005 Int16Array-alloc-long-lived 61.5854+-0.7484 60.9652+-0.7969 might be 1.0102x faster Int16Array-bubble-sort-with-byteLength 39.1044+-1.1140 ? 39.9411+-1.2428 ? might be 1.0214x slower Int16Array-bubble-sort 38.3181+-0.2901 ? 39.3561+-1.2312 ? might be 1.0271x slower Int16Array-load-int-mul 1.8860+-0.1609 1.8227+-0.1140 might be 1.0348x faster Int16Array-to-Int32Array-set 76.8943+-3.1162 ? 77.1275+-2.5676 ? Int32Array-Int8Array-view-alloc 12.1113+-0.3056 ? 12.3152+-0.7957 ? might be 1.0168x slower Int32Array-alloc-large 36.7415+-1.4709 36.5608+-1.3040 Int32Array-alloc-long-lived 68.5901+-1.0806 68.5807+-0.7470 Int32Array-alloc 4.0016+-0.1230 ? 4.0312+-0.3620 ? Int8Array-alloc-long-lived 55.6004+-1.3095 55.2764+-0.8600 Int8Array-load-with-byteLength 4.6536+-0.0295 ? 4.6576+-0.1057 ? Int8Array-load 4.5872+-0.0524 ? 4.6000+-0.0858 ? abs-boolean 3.6297+-0.1432 ? 3.6451+-0.0977 ? adapt-to-double-divide 18.2473+-0.8462 17.8862+-0.7848 might be 1.0202x faster aliased-arguments-getbyval 1.0671+-0.1270 ? 1.0852+-0.1280 ? might be 1.0169x slower allocate-big-object 3.0390+-0.2137 ? 3.2673+-0.5758 ? might be 1.0751x slower arity-mismatch-inlining 0.9651+-0.1043 ? 1.0043+-0.0679 ? might be 1.0405x slower array-access-polymorphic-structure 8.8950+-0.5360 8.8070+-0.3318 array-nonarray-polymorhpic-access 51.3222+-1.2678 ? 52.2993+-1.0376 ? might be 1.0190x slower array-prototype-every 102.0532+-4.4841 99.5626+-2.1934 might be 1.0250x faster array-prototype-forEach 100.3277+-2.9111 ? 101.0574+-5.0482 ? array-prototype-map 124.2255+-4.5038 ? 124.7147+-2.7377 ? array-prototype-some 100.6591+-1.7756 98.8412+-2.1709 might be 1.0184x faster array-splice-contiguous 57.7095+-1.7089 ? 58.2322+-1.2894 ? array-with-double-add 5.7574+-0.2375 5.7222+-0.1560 array-with-double-increment 5.3092+-0.0678 ^ 4.0213+-0.1020 ^ definitely 1.3203x faster array-with-double-mul-add 7.4147+-0.1747 6.9760+-0.5075 might be 1.0629x faster array-with-double-sum 5.4860+-0.1663 ^ 4.2265+-0.1148 ^ definitely 1.2980x faster array-with-int32-add-sub 10.0468+-0.1681 10.0451+-0.1902 array-with-int32-or-double-sum 5.5323+-0.1614 ^ 4.3475+-0.1252 ^ definitely 1.2725x faster asmjs_bool_bug 8.7563+-0.0824 ? 8.7730+-0.2996 ? assign-custom-setter-polymorphic 4.3048+-0.4372 4.3022+-0.1762 assign-custom-setter 6.5165+-1.0573 5.7444+-0.1788 might be 1.1344x faster basic-set 13.6500+-0.5017 ? 13.9428+-1.0375 ? might be 1.0214x slower big-int-mul 6.3073+-0.0888 ^ 5.7023+-0.1623 ^ definitely 1.1061x faster boolean-test 4.1055+-0.1238 ? 4.1356+-0.0851 ? branch-fold 4.5148+-0.1394 ? 4.5520+-0.1090 ? by-val-generic 10.5801+-0.8108 ? 10.8841+-0.1816 ? might be 1.0287x slower call-spread-apply 18.1485+-1.0988 16.8668+-0.4843 might be 1.0760x faster call-spread-call 7.8897+-0.2348 7.4687+-0.2252 might be 1.0564x faster captured-assignments 0.5775+-0.1134 0.5745+-0.1160 cast-int-to-double 8.0908+-0.1259 ? 8.0965+-0.2065 ? cell-argument 10.0329+-0.3145 9.9075+-0.6846 might be 1.0127x faster cfg-simplify 3.5285+-0.0680 3.4700+-0.0985 might be 1.0169x faster chain-getter-access 12.7510+-0.3211 12.5332+-0.4407 might be 1.0174x faster cmpeq-obj-to-obj-other 12.0731+-0.1444 11.9660+-0.3741 constant-test 7.7147+-0.1775 7.5865+-0.1082 might be 1.0169x faster delay-tear-off-arguments-strictmode 3.2924+-0.2403 ? 3.3028+-0.1002 ? destructuring-arguments 7.8797+-0.2793 7.7270+-0.1728 might be 1.0198x faster destructuring-swap 7.7220+-0.2817 7.6637+-0.1329 direct-arguments-getbyval 1.0682+-0.1293 ? 1.1610+-0.0344 ? might be 1.0868x slower div-boolean-double 5.4090+-0.0768 ? 5.4347+-0.0582 ? div-boolean 10.1900+-1.0174 9.8658+-0.1787 might be 1.0329x faster double-get-by-val-out-of-bounds 5.5109+-0.2415 ? 5.6030+-0.2241 ? might be 1.0167x slower double-pollution-getbyval 9.6093+-0.0900 ? 9.8392+-0.2250 ? might be 1.0239x slower double-pollution-putbyoffset 5.3180+-0.2963 5.3160+-0.2243 double-to-int32-typed-array-no-inline 2.6940+-0.1485 ? 2.7416+-0.0504 ? might be 1.0177x slower double-to-int32-typed-array 2.3230+-0.1581 2.3212+-0.1542 double-to-uint32-typed-array-no-inline 2.6810+-0.1434 2.6657+-0.1637 double-to-uint32-typed-array 2.4536+-0.1149 ? 2.5308+-0.0751 ? might be 1.0315x slower empty-string-plus-int 8.9819+-0.1069 ? 9.2714+-0.2913 ? might be 1.0322x slower emscripten-cube2hash 48.0847+-1.7371 46.3077+-0.1417 might be 1.0384x faster external-arguments-getbyval 1.7885+-0.0668 ? 1.8610+-0.1368 ? might be 1.0405x slower external-arguments-putbyval 2.4565+-0.1236 ? 2.4950+-0.0940 ? might be 1.0157x slower fixed-typed-array-storage-var-index 1.4158+-0.1080 ? 1.4692+-0.1642 ? might be 1.0377x slower fixed-typed-array-storage 1.0585+-0.0837 1.0024+-0.0660 might be 1.0559x faster fold-double-to-int 18.3644+-0.6183 ? 18.5140+-0.4753 ? fold-get-by-id-to-multi-get-by-offset-rare-int 23.4003+-2.1738 ? 25.5282+-4.7209 ? might be 1.0909x slower fold-get-by-id-to-multi-get-by-offset 22.7805+-1.0411 ? 23.8630+-3.2552 ? might be 1.0475x slower fold-multi-get-by-offset-to-get-by-offset 15.5200+-0.4093 15.3650+-0.4838 might be 1.0101x faster fold-multi-get-by-offset-to-poly-get-by-offset 15.8572+-0.5235 15.8423+-0.6452 fold-multi-put-by-offset-to-poly-put-by-offset 16.3254+-0.7642 ? 16.5710+-0.6488 ? might be 1.0150x slower fold-multi-put-by-offset-to-put-by-offset 15.2444+-0.7485 15.1572+-0.6804 fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 20.2938+-1.3319 20.1758+-0.6960 fold-put-by-id-to-multi-put-by-offset 26.5216+-3.9199 ? 26.6257+-1.8730 ? fold-put-structure 14.9695+-0.1563 14.8265+-0.1234 for-of-iterate-array-entries 7.3966+-0.1071 ! 7.7647+-0.1814 ! definitely 1.0498x slower for-of-iterate-array-keys 3.6517+-0.1399 3.5905+-0.3672 might be 1.0170x faster for-of-iterate-array-values 3.1245+-0.2005 2.9680+-0.3201 might be 1.0527x faster fround 22.1049+-0.5668 ? 22.9566+-0.9949 ? might be 1.0385x slower ftl-library-inlining-dataview 101.5339+-5.9573 92.9108+-5.4875 might be 1.0928x faster ftl-library-inlining 102.9000+-1.3286 ^ 100.2765+-0.8393 ^ definitely 1.0262x faster function-dot-apply 2.2635+-0.4501 2.2006+-0.1381 might be 1.0286x faster function-test 4.6037+-0.0887 4.6033+-0.4625 function-with-eval 83.1436+-3.2480 ^ 75.9734+-1.6093 ^ definitely 1.0944x faster gcse-poly-get-less-obvious 25.0947+-0.3538 24.6570+-0.6157 might be 1.0178x faster gcse-poly-get 24.8865+-0.4910 24.7108+-0.3687 gcse 6.4426+-0.0777 6.4410+-0.1287 get-by-id-bimorphic-check-structure-elimination-simple 3.2086+-0.1246 ? 3.3055+-0.3037 ? might be 1.0302x slower get-by-id-bimorphic-check-structure-elimination 8.0546+-0.3940 ? 8.2998+-0.4120 ? might be 1.0304x slower get-by-id-chain-from-try-block 6.9770+-0.1833 ! 15.6876+-0.7551 ! definitely 2.2485x slower get-by-id-check-structure-elimination 7.5323+-0.3057 7.4353+-0.1228 might be 1.0130x faster get-by-id-proto-or-self 24.4953+-3.1179 22.0028+-0.5513 might be 1.1133x faster get-by-id-quadmorphic-check-structure-elimination-simple 3.8157+-0.2055 ? 3.8615+-0.0654 ? might be 1.0120x slower get-by-id-self-or-proto 24.3384+-0.9276 22.7166+-1.5055 might be 1.0714x faster get-by-val-out-of-bounds 5.4510+-0.0558 ? 5.4603+-0.1823 ? get_callee_monomorphic 4.9068+-0.2698 4.8579+-0.4715 might be 1.0101x faster get_callee_polymorphic 4.1535+-0.0552 4.1132+-0.1601 getter-no-activation 5.6725+-0.0339 ? 5.6747+-0.0493 ? getter-richards 171.4846+-11.4664 169.2729+-10.4960 might be 1.0131x faster getter 6.3890+-0.1603 ? 6.5099+-0.3169 ? might be 1.0189x slower global-var-const-infer-fire-from-opt 1.1889+-0.1020 1.1722+-0.2260 might be 1.0142x faster global-var-const-infer 1.1235+-0.1112 0.9630+-0.0918 might be 1.1666x faster hoist-make-rope 14.2095+-2.3673 ? 14.3226+-1.8815 ? hoist-poly-check-structure-effectful-loop 6.4543+-0.2628 6.4287+-0.1696 hoist-poly-check-structure 4.8732+-0.0302 4.8382+-0.2482 imul-double-only 10.0211+-1.1597 ? 10.2737+-2.1651 ? might be 1.0252x slower imul-int-only 12.7151+-0.7199 12.0753+-0.9731 might be 1.0530x faster imul-mixed 10.0916+-0.9905 9.8337+-0.8394 might be 1.0262x faster in-four-cases 24.0830+-0.4118 ! 26.8447+-0.5746 ! definitely 1.1147x slower in-one-case-false 12.8676+-0.1359 ! 15.1060+-0.5081 ! definitely 1.1740x slower in-one-case-true 12.9622+-0.2347 ! 14.9085+-0.2527 ! definitely 1.1502x slower in-two-cases 13.2499+-0.0916 ! 15.3542+-0.2414 ! definitely 1.1588x slower indexed-properties-in-objects 3.7455+-0.1233 3.6815+-0.0942 might be 1.0174x faster infer-closure-const-then-mov-no-inline 4.2895+-0.1640 ? 4.3852+-0.1468 ? might be 1.0223x slower infer-closure-const-then-mov 24.4436+-0.2226 ? 24.8204+-0.4852 ? might be 1.0154x slower infer-closure-const-then-put-to-scope-no-inline 15.1420+-0.3706 14.9277+-0.3291 might be 1.0144x faster infer-closure-const-then-put-to-scope 27.9920+-0.2383 ? 28.0573+-0.3292 ? infer-closure-const-then-reenter-no-inline 65.3909+-1.6937 64.6133+-0.7748 might be 1.0120x faster infer-closure-const-then-reenter 28.0624+-0.8324 27.9370+-0.5351 infer-constant-global-property 4.5945+-0.1533 ? 4.6071+-0.1239 ? infer-constant-property 3.1650+-0.1375 3.0947+-0.0835 might be 1.0227x faster infer-one-time-closure-ten-vars 14.7390+-0.4337 14.5485+-0.5271 might be 1.0131x faster infer-one-time-closure-two-vars 14.4742+-0.4512 14.4015+-0.9172 infer-one-time-closure 14.0286+-0.6796 ? 14.1026+-0.2509 ? infer-one-time-deep-closure 24.4132+-0.4883 ? 25.2418+-1.2493 ? might be 1.0339x slower inline-arguments-access 2.0644+-0.1510 2.0504+-0.1407 inline-arguments-aliased-access 2.2595+-0.1285 ? 2.2772+-0.1595 ? inline-arguments-local-escape 16.2642+-0.3936 15.9981+-0.5263 might be 1.0166x faster inline-get-scoped-var 5.6449+-0.4056 5.5308+-0.1832 might be 1.0206x faster inlined-put-by-id-transition 13.0715+-0.4892 12.9933+-0.1798 int-or-other-abs-then-get-by-val 6.7018+-0.1128 ? 6.8647+-0.3891 ? might be 1.0243x slower int-or-other-abs-zero-then-get-by-val 26.8300+-0.7498 ? 26.8833+-0.3559 ? int-or-other-add-then-get-by-val 5.7943+-0.0834 ? 5.7970+-0.0944 ? int-or-other-add 7.7078+-0.2908 ? 7.8168+-0.2283 ? might be 1.0141x slower int-or-other-div-then-get-by-val 5.0109+-0.2264 4.9843+-0.0961 int-or-other-max-then-get-by-val 6.4915+-0.5361 6.4287+-0.3641 int-or-other-min-then-get-by-val 5.1611+-0.0820 5.1392+-0.0772 int-or-other-mod-then-get-by-val 4.9919+-0.0648 ? 5.0179+-0.0488 ? int-or-other-mul-then-get-by-val 4.8843+-0.0419 ? 4.9385+-0.0672 ? might be 1.0111x slower int-or-other-neg-then-get-by-val 6.1907+-0.1183 6.0319+-0.1374 might be 1.0263x faster int-or-other-neg-zero-then-get-by-val 26.7320+-0.1232 26.6183+-0.6308 int-or-other-sub-then-get-by-val 5.8051+-0.2946 5.7825+-0.0978 int-or-other-sub 4.9672+-0.0549 ? 4.9925+-0.1702 ? int-overflow-local 5.6273+-0.1328 ? 5.6918+-0.0938 ? might be 1.0115x slower int52-spill 9.5370+-0.1818 ? 9.5427+-0.2453 ? integer-divide 14.5269+-0.2667 14.4574+-0.5346 integer-modulo 2.6409+-0.0899 ? 2.7095+-0.1359 ? might be 1.0260x slower large-int-captured 9.0463+-0.4690 8.8754+-0.2207 might be 1.0193x faster large-int-neg 20.8408+-0.7343 20.6835+-0.3558 large-int 18.7789+-0.2895 18.3922+-0.2979 might be 1.0210x faster logical-not 6.1301+-0.2049 ? 6.4140+-0.3102 ? might be 1.0463x slower lots-of-fields 13.8925+-0.3386 13.8195+-0.6452 make-indexed-storage 4.0585+-0.3986 3.9557+-0.1810 might be 1.0260x faster make-rope-cse 5.6769+-0.3190 ? 5.7313+-0.1443 ? marsaglia-larger-ints 52.7910+-1.4239 52.7769+-1.2627 marsaglia-osr-entry 28.2747+-0.7108 27.8625+-0.9393 might be 1.0148x faster max-boolean 3.4178+-0.6286 3.1863+-0.1485 might be 1.0727x faster method-on-number 23.1014+-0.4372 22.9315+-0.4511 min-boolean 3.1112+-0.1258 ? 3.2175+-0.1563 ? might be 1.0342x slower minus-boolean-double 4.1011+-0.0744 4.0299+-0.0434 might be 1.0177x faster minus-boolean 3.2479+-0.3468 3.1413+-0.1042 might be 1.0339x faster misc-strict-eq 54.5507+-0.5462 54.3152+-0.9860 mod-boolean-double 11.6792+-0.1569 ? 11.7282+-0.2662 ? mod-boolean 8.8770+-0.1744 ? 8.9669+-0.4268 ? might be 1.0101x slower mul-boolean-double 4.7873+-0.1640 4.7634+-0.1688 mul-boolean 3.3674+-0.1172 3.3401+-0.1028 neg-boolean 4.2021+-0.1067 4.1771+-0.0611 negative-zero-divide 0.4540+-0.0985 ? 0.4552+-0.0838 ? negative-zero-modulo 0.3867+-0.0302 ? 0.4001+-0.0333 ? might be 1.0346x slower negative-zero-negate 0.4235+-0.0991 0.3904+-0.0926 might be 1.0846x faster nested-function-parsing 33.5504+-0.3686 33.4075+-0.1590 new-array-buffer-dead 3.6609+-0.1365 ? 3.6843+-0.2111 ? new-array-buffer-push 9.2642+-0.1181 ? 9.3521+-0.1441 ? new-array-dead 15.2005+-0.6041 ? 15.2479+-1.1319 ? new-array-push 6.4792+-0.1856 6.3951+-0.1784 might be 1.0132x faster number-test 4.0525+-0.0737 3.9981+-0.0871 might be 1.0136x faster object-closure-call 8.0940+-0.3902 7.9763+-0.2346 might be 1.0148x faster object-test 4.1730+-0.0990 ? 4.2365+-0.0468 ? might be 1.0152x slower plus-boolean-arith 3.2040+-0.0993 ? 3.2292+-0.0966 ? plus-boolean-double 4.0802+-0.1158 ? 4.1053+-0.1690 ? plus-boolean 3.0788+-0.0575 ? 3.0858+-0.1381 ? poly-chain-access-different-prototypes-simple 3.7367+-0.0390 3.7330+-0.0596 poly-chain-access-different-prototypes 3.1423+-0.1856 ? 3.1467+-0.1499 ? poly-chain-access-simpler 3.7350+-0.1143 ? 3.7779+-0.1255 ? might be 1.0115x slower poly-chain-access 2.9308+-0.4260 ? 3.1788+-0.8686 ? might be 1.0846x slower poly-stricteq 67.8632+-0.8192 67.4833+-0.1782 polymorphic-array-call 2.3395+-0.1838 2.1553+-0.2588 might be 1.0855x faster polymorphic-get-by-id 4.0545+-0.1345 4.0300+-0.1220 polymorphic-put-by-id 64.9861+-33.4241 ? 79.4718+-33.3256 ? might be 1.2229x slower polymorphic-structure 22.1936+-1.7747 22.1533+-1.7899 polyvariant-monomorphic-get-by-id 11.3966+-0.1459 ? 11.4235+-0.5467 ? proto-getter-access 12.8620+-0.3882 12.7621+-0.2775 put-by-id-replace-and-transition 10.9548+-0.5440 ? 11.0190+-0.4469 ? put-by-id-slightly-polymorphic 3.4095+-0.1152 ? 3.4102+-0.1639 ? put-by-id 17.7377+-0.2172 ? 18.0115+-0.3618 ? might be 1.0154x slower put-by-val-direct 0.7931+-0.2252 0.7202+-0.1362 might be 1.1012x faster put-by-val-large-index-blank-indexing-type 8.8326+-0.1489 ? 9.0140+-0.0589 ? might be 1.0205x slower put-by-val-machine-int 3.0628+-0.2438 ? 3.0645+-0.2507 ? rare-osr-exit-on-local 17.8762+-0.1754 ! 18.3328+-0.1496 ! definitely 1.0255x slower register-pressure-from-osr 26.6710+-0.2764 26.5098+-0.3132 setter 6.4762+-0.3917 6.3505+-0.1331 might be 1.0198x faster simple-activation-demo 29.4216+-0.2772 ! 36.1766+-0.5220 ! definitely 1.2296x slower simple-getter-access 18.1370+-0.3527 ? 18.3854+-0.5047 ? might be 1.0137x slower simple-poly-call-nested 21.4819+-0.2659 ? 21.5319+-0.2515 ? simple-poly-call 1.4722+-0.1029 ? 1.5213+-0.1434 ? might be 1.0333x slower sin-boolean 24.1538+-3.3539 ? 26.0154+-1.2038 ? might be 1.0771x slower slow-array-profile-convergence 3.7523+-0.2891 3.6850+-0.2979 might be 1.0183x faster slow-convergence 4.5027+-0.4171 4.4257+-0.2911 might be 1.0174x faster sparse-conditional 1.4066+-0.0874 ? 1.4129+-0.0637 ? splice-to-remove 20.6062+-0.7010 ? 20.8152+-0.3831 ? might be 1.0101x slower string-char-code-at 19.9677+-0.2114 19.8031+-0.3635 string-concat-object 2.6831+-0.3979 ? 2.7549+-0.2265 ? might be 1.0268x slower string-concat-pair-object 2.6206+-0.2508 2.5940+-0.3127 might be 1.0103x faster string-concat-pair-simple 15.2766+-0.4133 ? 15.4123+-0.2538 ? string-concat-simple 15.8495+-0.8062 15.7387+-0.4264 string-cons-repeat 10.3113+-0.3260 ? 10.4130+-0.3831 ? string-cons-tower 9.5518+-0.4667 9.4879+-0.6375 string-equality 22.0485+-0.6696 ? 22.1232+-0.2392 ? string-get-by-val-big-char 11.1558+-0.4746 11.1460+-0.2121 string-get-by-val-out-of-bounds-insane 5.0622+-0.1606 ? 5.1835+-0.7162 ? might be 1.0240x slower string-get-by-val-out-of-bounds 6.0705+-0.1435 6.0602+-0.0861 string-get-by-val 4.6732+-0.1048 4.6657+-0.1262 string-hash 2.7368+-0.1921 ? 2.8369+-0.6210 ? might be 1.0366x slower string-long-ident-equality 18.1400+-0.3845 18.1063+-0.1279 string-repeat-arith 40.0750+-0.3643 ? 40.7059+-0.5917 ? might be 1.0157x slower string-sub 77.2094+-1.1414 ? 80.2283+-1.9680 ? might be 1.0391x slower string-test 3.9481+-0.0298 ! 4.0569+-0.0532 ! definitely 1.0276x slower string-var-equality 43.8590+-0.3445 43.5211+-0.5472 structure-hoist-over-transitions 3.2635+-0.2003 ? 3.2872+-0.2394 ? substring-concat-weird 54.6429+-2.6798 53.5683+-1.0351 might be 1.0201x faster substring-concat 56.4485+-0.5954 55.3657+-0.7605 might be 1.0196x faster substring 64.2574+-2.2763 62.8377+-2.1780 might be 1.0226x faster switch-char-constant 3.1913+-0.0772 3.1463+-0.0755 might be 1.0143x faster switch-char 8.3558+-0.0956 ^ 8.0818+-0.1066 ^ definitely 1.0339x faster switch-constant 9.6635+-0.2579 ? 9.8797+-0.3871 ? might be 1.0224x slower switch-string-basic-big-var 21.7982+-0.6233 20.5110+-1.4992 might be 1.0628x faster switch-string-basic-big 22.9238+-2.8693 ? 23.3780+-1.6152 ? might be 1.0198x slower switch-string-basic-var 27.3795+-2.0094 25.8011+-0.8527 might be 1.0612x faster switch-string-basic 26.7157+-2.3153 26.3767+-3.2824 might be 1.0129x faster switch-string-big-length-tower-var 25.2234+-0.4440 ? 25.4326+-0.6334 ? switch-string-length-tower-var 19.7588+-0.1111 ? 19.7742+-0.2566 ? switch-string-length-tower 14.8682+-0.5266 14.7795+-0.4844 switch-string-short 15.0306+-0.8837 14.6819+-0.2755 might be 1.0237x faster switch 13.6552+-0.1055 13.4808+-0.1842 might be 1.0129x faster tear-off-arguments-simple 2.2212+-0.2047 2.2021+-0.2013 tear-off-arguments 3.3960+-0.1689 ? 3.4814+-0.4835 ? might be 1.0251x slower temporal-structure 17.7609+-1.4133 17.1624+-0.3671 might be 1.0349x faster to-int32-boolean 21.0178+-0.2178 20.7344+-0.1212 might be 1.0137x faster undefined-test 4.1890+-0.2233 4.1232+-0.1419 might be 1.0159x faster unprofiled-licm 26.9737+-0.7757 ? 27.2398+-0.6682 ? weird-inlining-const-prop 2.4214+-0.0492 2.3540+-0.2081 might be 1.0286x faster <arithmetic> 18.9634+-0.1087 ? 18.9751+-0.1562 ? might be 1.0006x slower <geometric> * 9.7248+-0.0489 ? 9.7295+-0.0334 ? might be 1.0005x slower <harmonic> 4.9862+-0.1555 4.9521+-0.0845 might be 1.0069x faster trunk new AsmBench: FloatMM.c 954.9219+-2.6045 952.6478+-3.2549 Quicksort.c 570.5150+-4.2223 567.0496+-10.1042 Towers.c 412.9584+-6.0426 407.2017+-3.1329 might be 1.0141x faster bigfib.cpp 676.8460+-3.3216 675.2370+-6.6636 cray.c 682.7697+-12.0984 675.5878+-6.1158 might be 1.0106x faster dry.c 652.2833+-12.8077 ? 657.1885+-8.4637 ? gcc-loops.cpp 6260.9487+-5.3451 6255.6738+-15.4319 n-body.c 1665.5918+-5.6235 1663.8870+-3.8437 stepanov_container.cpp 4917.6925+-47.4505 ? 4928.5721+-37.2530 ? <arithmetic> 1866.0586+-7.5345 1864.7828+-4.2620 might be 1.0007x faster <geometric> * 1148.5213+-5.0519 1145.0027+-0.7815 might be 1.0031x faster <harmonic> 844.2303+-4.0583 839.8728+-1.6643 might be 1.0052x faster trunk new CompressionBench: huffman 672.8792+-29.6578 665.1431+-4.0142 might be 1.0116x faster arithmetic-simple 583.9593+-2.9476 ? 587.2658+-1.0082 ? arithmetic-precise 434.6574+-5.5918 ? 439.9083+-6.5845 ? might be 1.0121x slower arithmetic-complex-precise 432.2463+-1.8862 ? 435.0661+-5.9896 ? arithmetic-precise-order-0 623.7480+-11.2307 623.6305+-10.4591 arithmetic-precise-order-1 477.5748+-4.6420 ? 481.9074+-9.9008 ? arithmetic-precise-order-2 537.4606+-6.1880 537.4379+-9.6046 arithmetic-simple-order-1 594.4314+-2.1478 ? 597.3037+-3.5914 ? arithmetic-simple-order-2 669.8738+-3.9069 ? 670.3810+-9.5131 ? lz-string 437.1680+-7.6451 ? 438.4885+-10.8510 ? <arithmetic> 546.3999+-3.9983 ? 547.6532+-0.9452 ? might be 1.0023x slower <geometric> * 538.6627+-3.3985 ? 540.2833+-1.3053 ? might be 1.0030x slower <harmonic> 530.9447+-2.9006 ? 532.9070+-1.6773 ? might be 1.0037x slower trunk new All benchmarks: <arithmetic> 140.1393+-0.5699 140.0063+-0.5229 might be 1.0010x faster <geometric> 17.0747+-0.0722 ? 17.0816+-0.0437 ? might be 1.0004x slower <harmonic> 4.3588+-0.0904 4.3383+-0.0536 might be 1.0047x faster trunk new Geomean of preferred means: <scaled-result> 88.6941+-0.1949 88.5361+-0.2095 might be 1.0018x faster
Oliver Hunt
Comment 14 2014-09-26 13:17:14 PDT
Created attachment 238728 [details] WIP - passes jsc tests, progresses jsc only benchmarks, etc I suspect this still hoses the inspector to some extent, but progress!
Oliver Hunt
Comment 15 2014-09-26 13:24:27 PDT
Hmmm, i think i screwed up benchmarks, so i suspect they're a lie. sigh.
Oliver Hunt
Comment 16 2014-09-26 13:47:47 PDT
Actual numbers: 3036/3036 Generating benchmark report at /Volumes/Data/git/WebKit/trunk_new_SunSpiderLongSpiderV8SpiderOctaneKrakenJSRegressAsmBenchCompressionBench_Eggplant_20140926_1344_report.txt And raw data at /Volumes/Data/git/WebKit/trunk_new_SunSpiderLongSpiderV8SpiderOctaneKrakenJSRegressAsmBenchCompressionBench_Eggplant_20140926_1344.json Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on Eggplant (MacPro5,1). VMs tested: "trunk" at /Volumes/Data/git/WebKit/OpenSourceTrunk/WebKitBuild/Release/jsc "new" at /Volumes/Data/git/WebKit/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. trunk new SunSpider: 3d-cube 6.7443+-0.1294 6.6111+-0.0979 might be 1.0202x faster 3d-morph 8.1974+-0.2451 8.1368+-0.2034 3d-raytrace 8.6035+-0.6073 8.3565+-0.2501 might be 1.0296x faster access-binary-trees 2.5215+-0.1807 2.4868+-0.1287 might be 1.0139x faster access-fannkuch 7.9585+-0.0833 ? 8.2219+-0.3215 ? might be 1.0331x slower access-nbody 3.9390+-0.0916 ? 4.0127+-0.1610 ? might be 1.0187x slower access-nsieve 5.0423+-0.1755 ? 5.3387+-0.1850 ? might be 1.0588x slower bitops-3bit-bits-in-byte 1.7369+-0.0681 1.7108+-0.0779 might be 1.0152x faster bitops-bits-in-byte 5.5807+-0.1797 ? 5.6055+-0.1145 ? bitops-bitwise-and 2.7057+-0.2966 ? 2.7642+-0.0518 ? might be 1.0216x slower bitops-nsieve-bits 5.1221+-0.1101 ? 5.1998+-0.3648 ? might be 1.0152x slower controlflow-recursive 2.5780+-0.1130 ? 2.7060+-0.2898 ? might be 1.0496x slower crypto-aes 5.3763+-0.2993 ? 5.4786+-0.4077 ? might be 1.0190x slower crypto-md5 3.2275+-0.2105 3.1948+-0.1299 might be 1.0103x faster crypto-sha1 3.1719+-0.0610 ? 3.2495+-0.2915 ? might be 1.0245x slower date-format-tofte 11.7034+-0.2435 ! 12.4322+-0.4612 ! definitely 1.0623x slower date-format-xparb 6.7194+-0.2569 ? 6.7233+-0.4601 ? math-cordic 4.0045+-0.1178 ? 4.0076+-0.0875 ? math-partial-sums 8.8754+-0.4168 ? 8.8982+-0.2683 ? math-spectral-norm 2.7220+-0.1536 ? 2.7385+-0.1109 ? regexp-dna 9.9587+-0.3243 ? 10.3217+-1.1160 ? might be 1.0364x slower string-base64 5.5658+-0.2440 ? 5.5855+-0.3147 ? string-fasta 8.7911+-0.3253 ? 8.8351+-0.1678 ? string-tagcloud 13.7953+-0.6171 13.5016+-0.3716 might be 1.0218x faster string-unpack-code 28.3790+-0.4929 ? 28.7291+-0.4518 ? might be 1.0123x slower string-validate-input 6.6625+-0.2774 6.6150+-0.3190 <arithmetic> * 6.9109+-0.0209 ? 6.9793+-0.1352 ? might be 1.0099x slower <geometric> 5.6433+-0.0290 ? 5.6961+-0.1139 ? might be 1.0094x slower <harmonic> 4.7276+-0.0384 ? 4.7676+-0.0988 ? might be 1.0085x slower trunk new LongSpider: 3d-cube 1113.7415+-9.7698 1109.5758+-7.6159 3d-morph 1867.0195+-2.7925 1866.0338+-2.1326 3d-raytrace 1106.8409+-15.2043 ? 1115.4459+-32.4520 ? access-binary-trees 1414.0502+-10.7701 ? 1419.0424+-24.4713 ? access-fannkuch 441.0638+-19.9062 ? 454.7960+-2.6420 ? might be 1.0311x slower access-nbody 1043.0300+-4.0359 ? 1043.2612+-2.7018 ? access-nsieve 1400.9887+-4.6072 ? 1403.0087+-3.7063 ? bitops-3bit-bits-in-byte 50.1689+-1.0781 50.0762+-0.5952 bitops-bits-in-byte 326.5693+-4.4745 325.7364+-5.0850 bitops-nsieve-bits 1035.7405+-2.3900 ^ 988.5452+-2.4266 ^ definitely 1.0477x faster controlflow-recursive 714.5597+-4.2516 ? 715.5975+-7.2799 ? crypto-aes 939.2919+-9.3686 ? 941.5253+-9.0607 ? crypto-md5 811.6188+-5.9284 ? 818.5581+-9.7848 ? crypto-sha1 985.8463+-22.2390 ? 995.0198+-5.5647 ? date-format-tofte 1001.6179+-9.2395 ! 1109.9208+-30.1300 ! definitely 1.1081x slower date-format-xparb 963.4570+-12.7345 ? 976.1456+-8.8584 ? might be 1.0132x slower math-cordic 670.0289+-1.8824 ? 672.1494+-2.2344 ? math-partial-sums 1040.2380+-2.6450 1039.3071+-5.9638 math-spectral-norm 1078.2944+-7.1063 1075.9610+-2.0130 string-base64 491.7759+-2.9266 490.7382+-4.9238 string-fasta 587.3597+-6.3628 584.8358+-7.5132 string-tagcloud 313.3773+-2.9903 311.1636+-1.4138 <arithmetic> 881.6672+-2.4378 ! 886.6565+-0.9684 ! definitely 1.0057x slower <geometric> * 738.0870+-3.2967 ? 741.8655+-1.1586 ? might be 1.0051x slower <harmonic> 458.3116+-5.2330 ? 459.1627+-2.6326 ? might be 1.0019x slower trunk new V8Spider: crypto 80.2921+-9.9146 70.8467+-0.9298 might be 1.1333x faster deltablue 112.5527+-1.5564 112.1467+-0.8717 earley-boyer 64.2410+-3.4059 61.9985+-0.5378 might be 1.0362x faster raytrace 41.3625+-1.4983 ? 42.5961+-2.0669 ? might be 1.0298x slower regexp 86.4158+-1.2322 ? 87.1363+-0.7558 ? richards 125.0211+-1.6206 121.1271+-3.5634 might be 1.0321x faster splay 43.2493+-1.2176 ? 44.5338+-2.5463 ? might be 1.0297x slower <arithmetic> 79.0192+-1.6113 77.1979+-0.6576 might be 1.0236x faster <geometric> * 73.1339+-1.6045 71.8179+-0.9716 might be 1.0183x faster <harmonic> 67.4033+-1.3650 66.7602+-1.3704 might be 1.0096x faster trunk new Octane: encrypt 0.33006+-0.00116 0.32790+-0.00333 decrypt 5.94068+-0.06110 5.93788+-0.06397 deltablue x2 0.28468+-0.00653 0.28306+-0.00475 earley 1.04182+-0.01653 1.03210+-0.02206 boyer 8.59990+-0.18730 ? 8.66593+-0.08979 ? navier-stokes x2 6.40207+-0.01695 6.39632+-0.03441 raytrace x2 2.23051+-0.05907 ? 2.23461+-0.05916 ? richards x2 0.17445+-0.00354 ? 0.17707+-0.00811 ? might be 1.0150x slower splay x2 0.54877+-0.00996 ? 0.55403+-0.00232 ? regexp x2 47.90684+-0.52211 ? 48.50630+-0.70661 ? might be 1.0125x slower pdfjs x2 73.72484+-0.44070 73.44644+-0.26363 mandreel x2 74.33462+-1.01277 73.86322+-0.77229 gbemu x2 61.74007+-1.49945 ! 65.62931+-1.61277 ! definitely 1.0630x slower closure 0.76488+-0.00869 0.75872+-0.00652 jquery 9.36705+-0.10355 ! 9.64641+-0.16241 ! definitely 1.0298x slower box2d x2 20.37187+-0.36504 20.32874+-0.21676 zlib x2 674.93504+-5.27127 655.15851+-78.30317 might be 1.0302x faster typescript x2 1117.33649+-18.24108 ^ 1084.47083+-14.02619 ^ definitely 1.0303x faster <arithmetic> 139.53416+-0.94907 136.28219+-4.35716 might be 1.0239x faster <geometric> * 10.05561+-0.05474 ? 10.07266+-0.10931 ? might be 1.0017x slower <harmonic> 1.02510+-0.00774 ? 1.02962+-0.01819 ? might be 1.0044x slower trunk new Kraken: ai-astar 468.807+-16.236 467.590+-13.003 audio-beat-detection 152.300+-4.454 149.006+-3.258 might be 1.0221x faster audio-dft 210.682+-2.292 ? 210.986+-4.889 ? audio-fft 108.023+-0.866 107.561+-0.716 audio-oscillator 313.635+-0.864 312.218+-2.199 imaging-darkroom 243.414+-0.569 243.286+-0.704 imaging-desaturate 94.767+-1.023 ? 94.965+-0.832 ? imaging-gaussian-blur 157.467+-6.050 155.642+-1.871 might be 1.0117x faster json-parse-financial 66.330+-2.550 ? 67.199+-0.808 ? might be 1.0131x slower json-stringify-tinderbox 92.033+-8.395 88.973+-2.024 might be 1.0344x faster stanford-crypto-aes 86.912+-5.236 84.685+-0.869 might be 1.0263x faster stanford-crypto-ccm 80.071+-12.848 ? 86.040+-3.715 ? might be 1.0746x slower stanford-crypto-pbkdf2 233.448+-1.763 233.192+-1.700 stanford-crypto-sha256-iterative 72.031+-1.243 ? 72.266+-1.185 ? <arithmetic> * 169.994+-1.159 169.543+-0.680 might be 1.0027x faster <geometric> 141.687+-1.754 141.596+-0.538 might be 1.0006x faster <harmonic> 121.583+-2.365 ? 121.903+-0.508 ? might be 1.0026x slower trunk new JSRegress: ArrayBuffer-DataView-alloc-large-long-lived 97.3572+-3.4359 95.8818+-1.0624 might be 1.0154x faster ArrayBuffer-DataView-alloc-long-lived 25.9559+-0.8006 ? 26.0463+-0.6025 ? ArrayBuffer-Int32Array-byteOffset 4.5400+-0.1272 4.4485+-0.1261 might be 1.0206x faster ArrayBuffer-Int8Array-alloc-large-long-lived 100.7927+-0.8229 99.6646+-0.5733 might be 1.0113x faster ArrayBuffer-Int8Array-alloc-long-lived-buffer 42.3745+-1.7445 42.2577+-1.6292 ArrayBuffer-Int8Array-alloc-long-lived 24.8950+-0.9191 ? 24.9928+-0.5238 ? ArrayBuffer-Int8Array-alloc 22.3423+-0.3737 ! 25.0068+-2.0731 ! definitely 1.1193x slower DataView-custom-properties 102.4981+-1.1684 102.4083+-1.4638 Float32Array-matrix-mult 6.0122+-0.4811 5.7880+-0.0957 might be 1.0387x faster Float32Array-to-Float64Array-set 76.9008+-1.6195 75.6057+-0.6338 might be 1.0171x faster Float64Array-alloc-long-lived 86.6112+-0.8535 ? 86.9607+-1.4570 ? Float64Array-to-Int16Array-set 92.4695+-0.9213 ? 93.1053+-0.7701 ? HashMap-put-get-iterate-keys 35.2932+-0.9851 34.7232+-0.5224 might be 1.0164x faster HashMap-put-get-iterate 34.8567+-1.2014 34.6005+-0.9756 HashMap-string-put-get-iterate 39.3088+-0.9379 ? 39.3920+-1.6893 ? Int16Array-alloc-long-lived 61.3763+-1.2997 61.3468+-1.0823 Int16Array-bubble-sort-with-byteLength 39.3535+-0.8651 ? 40.0010+-0.6835 ? might be 1.0165x slower Int16Array-bubble-sort 38.8199+-1.4020 38.3281+-0.0893 might be 1.0128x faster Int16Array-load-int-mul 1.8150+-0.0767 1.7565+-0.0029 might be 1.0333x faster Int16Array-to-Int32Array-set 77.9678+-4.5355 73.1669+-2.0373 might be 1.0656x faster Int32Array-Int8Array-view-alloc 12.0813+-0.3311 12.0428+-0.1900 Int32Array-alloc-large 36.5181+-0.9699 36.3277+-2.0073 Int32Array-alloc-long-lived 68.7080+-0.8471 68.4210+-0.4964 Int32Array-alloc 4.0140+-0.1558 3.9153+-0.0716 might be 1.0252x faster Int8Array-alloc-long-lived 55.1988+-0.1708 55.1520+-0.2853 Int8Array-load-with-byteLength 4.6535+-0.1590 ? 4.7478+-0.0435 ? might be 1.0203x slower Int8Array-load 4.7151+-0.0821 4.6475+-0.1486 might be 1.0146x faster abs-boolean 3.6160+-0.1836 ? 3.8028+-0.5335 ? might be 1.0516x slower adapt-to-double-divide 17.9895+-0.4338 ? 18.4615+-0.5426 ? might be 1.0262x slower aliased-arguments-getbyval 1.0355+-0.1234 1.0140+-0.0393 might be 1.0211x faster allocate-big-object 3.2209+-0.4179 ? 3.2352+-0.6196 ? arity-mismatch-inlining 1.0099+-0.1330 ? 1.0356+-0.0625 ? might be 1.0254x slower array-access-polymorphic-structure 10.3007+-4.1776 8.9683+-0.3016 might be 1.1486x faster array-nonarray-polymorhpic-access 51.1737+-0.1504 ? 51.2394+-1.1952 ? array-prototype-every 102.2097+-3.9338 101.0085+-2.3434 might be 1.0119x faster array-prototype-forEach 101.3698+-3.2733 99.6078+-1.5957 might be 1.0177x faster array-prototype-map 133.2789+-34.1160 123.4522+-1.3388 might be 1.0796x faster array-prototype-some 99.8805+-1.8827 ? 100.3207+-2.7715 ? array-splice-contiguous 58.4470+-1.6021 58.0992+-2.4043 array-with-double-add 5.9401+-0.4552 5.8544+-0.3303 might be 1.0146x faster array-with-double-increment 5.2840+-0.1719 ^ 4.0134+-0.1031 ^ definitely 1.3166x faster array-with-double-mul-add 7.2445+-0.1023 ^ 6.7217+-0.1284 ^ definitely 1.0778x faster array-with-double-sum 5.4913+-0.0407 ^ 4.2823+-0.0505 ^ definitely 1.2823x faster array-with-int32-add-sub 10.0712+-0.4625 ? 10.0951+-0.1611 ? array-with-int32-or-double-sum 5.5071+-0.1888 ^ 4.3101+-0.0911 ^ definitely 1.2777x faster asmjs_bool_bug 8.8948+-0.4059 8.7845+-0.1602 might be 1.0126x faster assign-custom-setter-polymorphic 4.1990+-0.1401 ? 4.2360+-0.1328 ? assign-custom-setter 5.7325+-0.1395 ? 5.8755+-0.3219 ? might be 1.0249x slower basic-set 13.6956+-0.5616 13.5609+-0.8640 big-int-mul 6.3853+-0.2110 ^ 5.8409+-0.0467 ^ definitely 1.0932x faster boolean-test 4.0449+-0.1181 ? 4.1285+-0.1637 ? might be 1.0207x slower branch-fold 4.4426+-0.0982 ? 4.5140+-0.1048 ? might be 1.0161x slower by-val-generic 10.7855+-0.4182 10.7130+-0.4000 call-spread-apply 17.9584+-0.5803 17.3420+-0.4535 might be 1.0355x faster call-spread-call 7.7302+-0.1244 7.4745+-0.1442 might be 1.0342x faster captured-assignments 0.5753+-0.1145 ? 0.6055+-0.1235 ? might be 1.0524x slower cast-int-to-double 8.0884+-0.2722 ? 8.0911+-0.2574 ? cell-argument 9.9874+-0.7593 ? 10.1677+-0.5442 ? might be 1.0181x slower cfg-simplify 3.5567+-0.1136 3.4822+-0.1551 might be 1.0214x faster chain-getter-access 12.7144+-0.2858 ? 12.8967+-0.4228 ? might be 1.0143x slower cmpeq-obj-to-obj-other 12.0253+-0.2430 11.7778+-0.4023 might be 1.0210x faster constant-test 7.3985+-0.3109 ? 7.6592+-0.3309 ? might be 1.0352x slower delay-tear-off-arguments-strictmode 3.2477+-0.2264 ? 3.2679+-0.0784 ? destructuring-arguments 7.8487+-0.4360 7.7769+-0.1531 destructuring-swap 7.6842+-0.2032 ? 7.7325+-0.2279 ? direct-arguments-getbyval 1.0828+-0.1724 ? 1.1212+-0.0695 ? might be 1.0355x slower div-boolean-double 5.5296+-0.2239 ? 5.7900+-0.7613 ? might be 1.0471x slower div-boolean 9.8400+-0.1154 ? 9.8826+-0.3421 ? double-get-by-val-out-of-bounds 5.6375+-0.1685 5.5463+-0.2140 might be 1.0164x faster double-pollution-getbyval 9.6550+-0.1647 9.6263+-0.2135 double-pollution-putbyoffset 5.2811+-0.1239 5.2794+-0.1128 double-to-int32-typed-array-no-inline 2.6899+-0.2765 ? 2.7589+-0.1016 ? might be 1.0256x slower double-to-int32-typed-array 2.2664+-0.1439 ? 2.3492+-0.1241 ? might be 1.0365x slower double-to-uint32-typed-array-no-inline 2.7425+-0.2533 2.7144+-0.1416 might be 1.0104x faster double-to-uint32-typed-array 2.4970+-0.1628 ? 2.5082+-0.4685 ? empty-string-plus-int 9.2317+-0.4830 9.1475+-0.3804 emscripten-cube2hash 47.4935+-1.7367 47.1340+-0.6532 external-arguments-getbyval 1.8715+-0.1933 1.7976+-0.1269 might be 1.0411x faster external-arguments-putbyval 2.5135+-0.2392 2.5004+-0.1099 fixed-typed-array-storage-var-index 1.4930+-0.1519 1.4496+-0.1783 might be 1.0300x faster fixed-typed-array-storage 1.0734+-0.1025 1.0547+-0.1091 might be 1.0178x faster fold-double-to-int 18.5867+-0.2272 ? 18.6744+-0.3128 ? fold-get-by-id-to-multi-get-by-offset-rare-int 23.6448+-0.8949 ? 23.7630+-2.3937 ? fold-get-by-id-to-multi-get-by-offset 24.2097+-4.1580 23.5735+-3.5596 might be 1.0270x faster fold-multi-get-by-offset-to-get-by-offset 15.1644+-0.3032 ? 15.6575+-0.6008 ? might be 1.0325x slower fold-multi-get-by-offset-to-poly-get-by-offset 15.7700+-0.4367 ? 15.8715+-0.5219 ? fold-multi-put-by-offset-to-poly-put-by-offset 16.4360+-0.4945 ? 16.6545+-0.5775 ? might be 1.0133x slower fold-multi-put-by-offset-to-put-by-offset 15.6589+-0.9471 14.9768+-0.2524 might be 1.0455x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 20.6778+-1.9222 20.1003+-0.8254 might be 1.0287x faster fold-put-by-id-to-multi-put-by-offset 26.7046+-2.5338 25.4840+-2.1567 might be 1.0479x faster fold-put-structure 14.9184+-0.2645 ? 15.0969+-0.0805 ? might be 1.0120x slower for-of-iterate-array-entries 7.6389+-0.9460 ? 7.7510+-0.3536 ? might be 1.0147x slower for-of-iterate-array-keys 3.7406+-0.0562 3.7153+-0.1698 for-of-iterate-array-values 3.0871+-0.2406 ? 3.1315+-0.1479 ? might be 1.0144x slower fround 22.5454+-1.2545 22.3790+-1.1325 ftl-library-inlining-dataview 100.1414+-3.2091 94.7607+-6.4193 might be 1.0568x faster ftl-library-inlining 102.8000+-0.3419 ^ 101.2690+-0.8875 ^ definitely 1.0151x faster function-dot-apply 2.1699+-0.2255 2.0370+-0.0879 might be 1.0653x faster function-test 4.6501+-0.1041 4.5907+-0.1714 might be 1.0129x faster function-with-eval 83.1962+-3.4275 ! 156.1515+-5.0858 ! definitely 1.8769x slower gcse-poly-get-less-obvious 24.8456+-0.2946 24.8115+-0.1441 gcse-poly-get 25.2722+-1.0728 24.7210+-0.5660 might be 1.0223x faster gcse 6.4001+-0.1317 ? 6.5253+-0.3935 ? might be 1.0196x slower get-by-id-bimorphic-check-structure-elimination-simple 3.2635+-0.0590 3.2438+-0.1475 get-by-id-bimorphic-check-structure-elimination 8.4243+-0.3860 8.1263+-0.1624 might be 1.0367x faster get-by-id-chain-from-try-block 7.0596+-0.0896 ! 15.3472+-0.5671 ! definitely 2.1740x slower get-by-id-check-structure-elimination 7.4090+-0.1354 ? 7.4132+-0.0973 ? get-by-id-proto-or-self 24.2101+-3.3522 22.9350+-3.2288 might be 1.0556x faster get-by-id-quadmorphic-check-structure-elimination-simple 3.9620+-0.2566 3.8264+-0.0900 might be 1.0354x faster get-by-id-self-or-proto 24.6826+-2.4434 22.9893+-0.3495 might be 1.0737x faster get-by-val-out-of-bounds 5.4680+-0.0986 ? 5.5283+-0.1254 ? might be 1.0110x slower get_callee_monomorphic 5.0359+-0.2171 ? 5.2184+-1.2401 ? might be 1.0362x slower get_callee_polymorphic 4.1282+-0.1065 4.0430+-0.3064 might be 1.0211x faster getter-no-activation 5.6325+-0.0612 5.6305+-0.0499 getter-richards 165.6113+-14.1682 ? 170.2922+-14.9029 ? might be 1.0283x slower getter 6.5789+-0.8772 6.3615+-0.1869 might be 1.0342x faster global-var-const-infer-fire-from-opt 1.3208+-0.2677 1.1713+-0.1376 might be 1.1276x faster global-var-const-infer 1.0441+-0.2081 1.0087+-0.2202 might be 1.0352x faster hoist-make-rope 14.5331+-2.4214 ? 14.8577+-1.0343 ? might be 1.0223x slower hoist-poly-check-structure-effectful-loop 6.7030+-0.3880 6.4660+-0.0938 might be 1.0367x faster hoist-poly-check-structure 4.7939+-0.1280 ? 4.8022+-0.1001 ? imul-double-only 10.0959+-0.2503 9.8100+-0.1567 might be 1.0291x faster imul-int-only 12.5502+-0.5616 ? 12.6119+-0.7319 ? imul-mixed 9.5864+-0.2909 ? 9.6010+-0.2540 ? in-four-cases 24.1744+-0.2569 ! 26.6365+-0.6373 ! definitely 1.1018x slower in-one-case-false 12.9275+-0.0656 ! 14.8489+-0.3833 ! definitely 1.1486x slower in-one-case-true 12.9958+-0.1157 ! 15.1489+-0.4233 ! definitely 1.1657x slower in-two-cases 13.2244+-0.2285 ! 15.6136+-0.4981 ! definitely 1.1807x slower indexed-properties-in-objects 3.7676+-0.1120 3.6992+-0.0979 might be 1.0185x faster infer-closure-const-then-mov-no-inline 4.3063+-0.1981 4.2958+-0.0779 infer-closure-const-then-mov 24.6008+-0.0431 ? 24.7773+-0.6320 ? infer-closure-const-then-put-to-scope-no-inline 15.1365+-0.4761 ? 15.2717+-0.5449 ? infer-closure-const-then-put-to-scope 28.0580+-0.5604 27.9103+-0.4668 infer-closure-const-then-reenter-no-inline 64.7230+-0.9657 64.5465+-0.6942 infer-closure-const-then-reenter 28.3815+-1.2527 27.8060+-0.3348 might be 1.0207x faster infer-constant-global-property 4.7981+-0.1804 4.5496+-0.0797 might be 1.0546x faster infer-constant-property 3.1982+-0.1472 3.1768+-0.1201 infer-one-time-closure-ten-vars 14.5893+-0.6905 ? 14.9627+-0.5902 ? might be 1.0256x slower infer-one-time-closure-two-vars 14.3751+-0.5808 14.2285+-0.5050 might be 1.0103x faster infer-one-time-closure 14.1490+-0.6365 14.1168+-0.6145 infer-one-time-deep-closure 24.4178+-0.4631 ? 24.8679+-0.4782 ? might be 1.0184x slower inline-arguments-access 2.0373+-0.0982 1.9427+-0.0875 might be 1.0487x faster inline-arguments-aliased-access 2.2072+-0.1368 ? 2.2163+-0.0869 ? inline-arguments-local-escape 16.2241+-0.3065 16.2212+-0.3667 inline-get-scoped-var 5.6125+-0.1515 5.4924+-0.0922 might be 1.0219x faster inlined-put-by-id-transition 13.0063+-0.3099 ? 13.1935+-0.1440 ? might be 1.0144x slower int-or-other-abs-then-get-by-val 6.8629+-0.1333 6.8237+-0.1824 int-or-other-abs-zero-then-get-by-val 26.7563+-0.5713 26.7167+-0.2877 int-or-other-add-then-get-by-val 5.7928+-0.1616 ? 5.8593+-0.0949 ? might be 1.0115x slower int-or-other-add 7.6847+-0.0706 ? 7.8597+-0.1507 ? might be 1.0228x slower int-or-other-div-then-get-by-val 4.9929+-0.1380 4.9858+-0.1245 int-or-other-max-then-get-by-val 6.4382+-0.3603 ? 6.5143+-0.5511 ? might be 1.0118x slower int-or-other-min-then-get-by-val 5.1138+-0.1118 ? 5.4925+-0.9859 ? might be 1.0740x slower int-or-other-mod-then-get-by-val 4.9650+-0.0931 ? 5.0383+-0.1910 ? might be 1.0148x slower int-or-other-mul-then-get-by-val 4.9761+-0.1221 4.8384+-0.0292 might be 1.0285x faster int-or-other-neg-then-get-by-val 6.1806+-0.1388 6.1122+-0.1043 might be 1.0112x faster int-or-other-neg-zero-then-get-by-val 26.6885+-0.2267 ? 27.0132+-0.5363 ? might be 1.0122x slower int-or-other-sub-then-get-by-val 5.9343+-0.2818 5.8932+-0.3174 int-or-other-sub 5.0121+-0.0286 ? 5.0670+-0.1755 ? might be 1.0109x slower int-overflow-local 5.7015+-0.1102 5.6985+-0.1483 int52-spill 9.8583+-0.6452 9.8140+-0.2948 integer-divide 14.2887+-0.4646 14.2217+-0.4471 integer-modulo 2.6442+-0.1225 2.5942+-0.1091 might be 1.0193x faster large-int-captured 8.8469+-0.0926 ? 9.3004+-0.8677 ? might be 1.0513x slower large-int-neg 20.8823+-0.4806 20.8337+-0.5318 large-int 18.5309+-0.4782 ? 18.5586+-0.3252 ? logical-not 6.2531+-0.3600 ? 6.3120+-0.2984 ? lots-of-fields 13.8754+-0.3938 13.8248+-0.3184 make-indexed-storage 3.9455+-0.1549 ? 3.9680+-0.1959 ? make-rope-cse 5.6625+-0.2197 ? 5.7275+-0.4071 ? might be 1.0115x slower marsaglia-larger-ints 52.5544+-0.4431 52.3192+-0.8480 marsaglia-osr-entry 28.4438+-1.4484 27.7687+-1.5182 might be 1.0243x faster max-boolean 3.2485+-0.1549 3.2081+-0.1165 might be 1.0126x faster method-on-number 23.0635+-0.6680 ? 23.6010+-1.9307 ? might be 1.0233x slower min-boolean 3.1523+-0.1953 ? 3.2213+-0.2217 ? might be 1.0219x slower minus-boolean-double 4.1823+-0.0621 ? 4.2234+-0.2035 ? minus-boolean 3.1495+-0.0384 3.0975+-0.0978 might be 1.0168x faster misc-strict-eq 54.4510+-0.7330 ? 54.5323+-0.9807 ? mod-boolean-double 11.7535+-0.2001 11.7350+-0.1161 mod-boolean 8.8682+-0.2032 ? 9.0213+-0.3051 ? might be 1.0173x slower mul-boolean-double 4.8328+-0.2004 4.7028+-0.0715 might be 1.0276x faster mul-boolean 3.4303+-0.2311 ? 3.4502+-0.0425 ? neg-boolean 4.2693+-0.1713 4.1771+-0.0511 might be 1.0221x faster negative-zero-divide 0.4561+-0.0869 0.4214+-0.0843 might be 1.0823x faster negative-zero-modulo 0.4141+-0.0936 ? 0.4722+-0.0937 ? might be 1.1405x slower negative-zero-negate 0.4157+-0.0950 0.3854+-0.0749 might be 1.0785x faster nested-function-parsing 34.0085+-1.7444 33.3902+-0.3928 might be 1.0185x faster new-array-buffer-dead 3.5908+-0.0796 3.5720+-0.1524 new-array-buffer-push 9.4267+-0.3872 9.4265+-0.4452 new-array-dead 15.1836+-1.9909 14.4039+-1.2752 might be 1.0541x faster new-array-push 6.5841+-0.1444 ? 6.6199+-0.4980 ? number-test 4.0170+-0.0477 4.0028+-0.1157 object-closure-call 7.9680+-0.2486 7.8068+-0.2405 might be 1.0206x faster object-test 4.2196+-0.1224 ? 4.5021+-0.8574 ? might be 1.0669x slower plus-boolean-arith 3.2308+-0.1372 3.2275+-0.1399 plus-boolean-double 4.1545+-0.1545 4.1205+-0.1326 plus-boolean 3.0845+-0.1227 3.0738+-0.0849 poly-chain-access-different-prototypes-simple 3.7789+-0.0816 ? 3.8116+-0.0988 ? poly-chain-access-different-prototypes 3.0941+-0.1217 ? 3.1296+-0.0901 ? might be 1.0115x slower poly-chain-access-simpler 3.8383+-0.1440 3.7462+-0.0660 might be 1.0246x faster poly-chain-access 2.5560+-0.4974 ? 2.9434+-0.2374 ? might be 1.1516x slower poly-stricteq 68.6254+-3.2734 68.3373+-0.8027 polymorphic-array-call 2.2962+-0.2093 2.2670+-0.3131 might be 1.0129x faster polymorphic-get-by-id 4.0291+-0.0664 ? 4.0690+-0.0866 ? polymorphic-put-by-id 78.3923+-36.4988 ? 88.9115+-21.4666 ? might be 1.1342x slower polymorphic-structure 21.6049+-1.5581 ? 22.2418+-2.3356 ? might be 1.0295x slower polyvariant-monomorphic-get-by-id 11.5067+-0.4809 11.4717+-0.3223 proto-getter-access 12.8191+-0.8453 12.4185+-0.4072 might be 1.0323x faster put-by-id-replace-and-transition 11.1255+-0.5229 10.9728+-0.4327 might be 1.0139x faster put-by-id-slightly-polymorphic 3.4243+-0.0570 3.4235+-0.0838 put-by-id 17.7522+-0.4938 ? 17.8745+-0.4250 ? put-by-val-direct 0.7703+-0.1148 0.7438+-0.1456 might be 1.0356x faster put-by-val-large-index-blank-indexing-type 9.1776+-0.4790 8.9000+-0.3800 might be 1.0312x faster put-by-val-machine-int 3.4036+-0.3834 3.2585+-0.1968 might be 1.0445x faster rare-osr-exit-on-local 18.2220+-0.3473 ? 18.2778+-0.5874 ? register-pressure-from-osr 26.5740+-0.2606 ? 26.9211+-0.5275 ? might be 1.0131x slower setter 6.3839+-0.2118 6.3508+-0.0906 simple-activation-demo 29.6453+-1.0955 ! 36.4714+-1.9041 ! definitely 1.2303x slower simple-getter-access 18.5662+-0.5804 18.3480+-0.7108 might be 1.0119x faster simple-poly-call-nested 20.0786+-2.4943 ? 21.7625+-0.3935 ? might be 1.0839x slower simple-poly-call 1.5480+-0.0384 1.4583+-0.0871 might be 1.0615x faster sin-boolean 24.9341+-2.9988 ? 26.5929+-1.4574 ? might be 1.0665x slower slow-array-profile-convergence 3.8865+-0.0615 3.7200+-0.2469 might be 1.0448x faster slow-convergence 4.4453+-0.2723 4.3760+-0.3013 might be 1.0158x faster sparse-conditional 1.4138+-0.1091 1.3870+-0.1545 might be 1.0193x faster splice-to-remove 21.1300+-1.1184 20.7866+-0.3046 might be 1.0165x faster string-char-code-at 19.7755+-0.3154 ? 19.8210+-0.3630 ? string-concat-object 2.7063+-0.1833 ? 2.8155+-0.2392 ? might be 1.0403x slower string-concat-pair-object 2.6474+-0.2552 ? 2.8273+-0.3575 ? might be 1.0679x slower string-concat-pair-simple 15.5492+-0.7819 15.3300+-0.1960 might be 1.0143x faster string-concat-simple 15.8642+-0.3472 15.5541+-0.4581 might be 1.0199x faster string-cons-repeat 10.5333+-0.6848 ? 11.1922+-0.8229 ? might be 1.0626x slower string-cons-tower 9.6116+-0.7649 9.4909+-0.3082 might be 1.0127x faster string-equality 22.0080+-0.5545 ? 22.1172+-0.6376 ? string-get-by-val-big-char 11.1697+-0.1578 11.0582+-0.4104 might be 1.0101x faster string-get-by-val-out-of-bounds-insane 5.0310+-0.1872 ? 5.0726+-0.1153 ? string-get-by-val-out-of-bounds 6.0513+-0.1532 ? 6.0785+-0.1151 ? string-get-by-val 4.7172+-0.0257 4.6216+-0.1673 might be 1.0207x faster string-hash 2.6565+-0.1541 2.5916+-0.1149 might be 1.0251x faster string-long-ident-equality 18.1648+-0.9500 17.8489+-0.2116 might be 1.0177x faster string-repeat-arith 40.1400+-0.7825 ? 40.8353+-0.8753 ? might be 1.0173x slower string-sub 78.1988+-1.9952 ? 79.4350+-2.3992 ? might be 1.0158x slower string-test 4.0105+-0.0856 3.9877+-0.1513 string-var-equality 43.8705+-1.1888 43.7784+-0.3694 structure-hoist-over-transitions 3.4355+-0.1815 3.2816+-0.1731 might be 1.0469x faster substring-concat-weird 54.5677+-0.8290 53.9385+-1.9745 might be 1.0117x faster substring-concat 57.3177+-1.3624 56.0110+-0.7174 might be 1.0233x faster substring 62.7785+-0.8431 ? 63.1728+-1.3244 ? switch-char-constant 3.2224+-0.0976 3.1656+-0.0879 might be 1.0179x faster switch-char 8.4738+-0.4793 8.0456+-0.1052 might be 1.0532x faster switch-constant 9.9037+-0.3186 ? 10.0263+-0.1651 ? might be 1.0124x slower switch-string-basic-big-var 21.9044+-0.9295 21.3878+-1.7176 might be 1.0242x faster switch-string-basic-big 24.6849+-1.5369 24.2072+-1.6308 might be 1.0197x faster switch-string-basic-var 27.0466+-1.7066 26.2705+-1.2075 might be 1.0295x faster switch-string-basic 26.7123+-3.0252 ? 26.8118+-2.5794 ? switch-string-big-length-tower-var 25.3033+-0.5067 25.0828+-0.3593 switch-string-length-tower-var 19.9385+-0.2289 ? 19.9758+-0.6070 ? switch-string-length-tower 14.8730+-0.7826 14.7802+-0.1649 switch-string-short 14.8860+-0.3790 ? 14.8898+-0.2645 ? switch 14.2159+-1.4498 13.4232+-0.6082 might be 1.0591x faster tear-off-arguments-simple 2.2306+-0.2356 2.1982+-0.1558 might be 1.0147x faster tear-off-arguments 3.3708+-0.1013 ? 3.3998+-0.1973 ? temporal-structure 17.0091+-0.4464 ? 17.4676+-0.7893 ? might be 1.0270x slower to-int32-boolean 20.6157+-0.1784 ? 20.8595+-0.4521 ? might be 1.0118x slower undefined-test 4.1368+-0.1496 ? 4.2275+-0.0861 ? might be 1.0219x slower unprofiled-licm 27.8668+-0.5731 27.8293+-0.6816 weird-inlining-const-prop 2.5056+-0.1129 ? 2.5522+-0.2180 ? might be 1.0186x slower <arithmetic> 19.0653+-0.2242 ? 19.3383+-0.1028 ? might be 1.0143x slower <geometric> * 9.7677+-0.0303 ? 9.7836+-0.0497 ? might be 1.0016x slower <harmonic> 5.0122+-0.0948 4.9804+-0.0634 might be 1.0064x faster trunk new AsmBench: FloatMM.c 954.9017+-2.3480 952.1868+-5.2603 Quicksort.c 568.2938+-8.9915 ? 572.2340+-2.5832 ? Towers.c 415.2766+-6.1196 ^ 406.7629+-1.9386 ^ definitely 1.0209x faster bigfib.cpp 677.7020+-4.4867 675.0543+-8.6867 cray.c 678.5350+-6.9271 675.6270+-2.9799 dry.c 653.1493+-15.8654 648.3824+-14.9370 gcc-loops.cpp 6251.5350+-16.4782 ? 6274.3890+-40.5669 ? n-body.c 1665.8620+-7.7991 ? 1669.2750+-13.9663 ? stepanov_container.cpp 4899.4773+-26.1879 ? 4899.9140+-24.4666 ? <arithmetic> 1862.7481+-0.7764 ? 1863.7584+-4.9954 ? might be 1.0005x slower <geometric> * 1147.6218+-2.7605 1144.2668+-2.8179 might be 1.0029x faster <harmonic> 844.2597+-3.4973 839.3316+-2.9025 might be 1.0059x faster trunk new CompressionBench: huffman 663.7004+-1.1713 ? 666.3307+-5.6823 ? arithmetic-simple 587.1888+-6.2651 585.6261+-5.1330 arithmetic-precise 435.5510+-3.4287 ? 437.5726+-2.6610 ? arithmetic-complex-precise 434.9800+-5.1542 ? 436.6570+-1.5308 ? arithmetic-precise-order-0 628.7090+-3.8914 625.8972+-10.3276 arithmetic-precise-order-1 483.0079+-8.0341 481.8504+-3.3641 arithmetic-precise-order-2 536.2266+-9.9760 ? 537.2520+-4.8051 ? arithmetic-simple-order-1 593.4520+-4.9888 ? 598.1525+-4.0405 ? arithmetic-simple-order-2 675.9573+-5.6961 671.5626+-9.2565 lz-string 437.9857+-4.3175 436.8631+-3.7933 <arithmetic> 547.6759+-1.9294 ? 547.7764+-1.8341 ? might be 1.0002x slower <geometric> * 540.0953+-1.8286 ? 540.2918+-1.4833 ? might be 1.0004x slower <harmonic> 532.5181+-1.7167 ? 532.8071+-1.1726 ? might be 1.0005x slower trunk new All benchmarks: <arithmetic> 140.3308+-0.3091 ? 140.5332+-0.4524 ? might be 1.0014x slower <geometric> 17.1318+-0.0535 ? 17.1622+-0.0638 ? might be 1.0018x slower <harmonic> 4.3584+-0.0423 4.3501+-0.0177 might be 1.0019x faster trunk new Geomean of preferred means: <scaled-result> 88.7828+-0.3565 88.7261+-0.3550 might be 1.0006x faster Eggplant:WebKit oliver$
Oliver Hunt
Comment 17 2014-09-27 11:55:18 PDT
Erik, still needs a pile of perf work :-/ Eggplant:WebKit oliver$ cat jsc-bench-output Generating benchmark report at /Volumes/Data/git/WebKit/trunk_new_SunSpiderLongSpiderV8SpiderOctaneKrakenJSBenchJSRegressAsmBenchDSPCompressionBench_Eggplant_20140926_1741_report.txt And raw data at /Volumes/Data/git/WebKit/trunk_new_SunSpiderLongSpiderV8SpiderOctaneKrakenJSBenchJSRegressAsmBenchDSPCompressionBench_Eggplant_20140926_1741.json Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSBench, JSRegress, AsmBench, DSP, and CompressionBench on Eggplant (MacPro5,1). VMs tested: "trunk" at /Volumes/Data/git/WebKit/OpenSourceTrunk/WebKitBuild/Release/DumpRenderTree "new" at /Volumes/Data/git/WebKit/OpenSource/WebKitBuild/Release/DumpRenderTree 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. trunk new SunSpider: 3d-cube 8.0372+-0.3472 ? 8.0449+-0.3805 ? 3d-morph 7.7404+-0.1639 ? 7.9468+-0.2465 ? might be 1.0267x slower 3d-raytrace 9.1626+-0.6693 8.8452+-0.3313 might be 1.0359x faster access-binary-trees 3.7754+-0.2515 3.7228+-0.3137 might be 1.0141x faster access-fannkuch 7.6959+-0.4556 ? 7.7692+-0.5620 ? access-nbody 3.7868+-0.1708 ? 3.7942+-0.2446 ? access-nsieve 4.7763+-0.2204 ? 4.8467+-0.1741 ? might be 1.0147x slower bitops-3bit-bits-in-byte 1.6555+-0.0821 ? 1.6725+-0.0586 ? might be 1.0102x slower bitops-bits-in-byte 5.1183+-0.0611 ? 5.1436+-0.1006 ? bitops-bitwise-and 2.5732+-0.3278 ? 2.6174+-0.0834 ? might be 1.0172x slower bitops-nsieve-bits 4.8729+-0.1409 4.7902+-0.1499 might be 1.0173x faster controlflow-recursive 2.7311+-0.0334 2.7185+-0.2614 crypto-aes 6.0652+-0.2721 ? 6.1232+-0.3953 ? crypto-md5 3.2298+-0.1755 ? 3.2549+-0.2664 ? crypto-sha1 3.1595+-0.0667 3.1290+-0.0492 date-format-tofte 14.6100+-0.4754 ! 15.7408+-0.3221 ! definitely 1.0774x slower date-format-xparb 8.9285+-0.3023 ? 8.9572+-0.1633 ? math-cordic 3.9310+-0.0816 3.8853+-0.0819 might be 1.0118x faster math-partial-sums 8.6602+-0.3109 8.5662+-0.0768 might be 1.0110x faster math-spectral-norm 2.6603+-0.0908 ? 2.6744+-0.2068 ? regexp-dna 10.9370+-0.0910 ? 11.0090+-0.0891 ? string-base64 7.0743+-0.4297 ? 7.0927+-0.2050 ? string-fasta 9.5829+-0.0701 ? 9.7202+-0.3252 ? might be 1.0143x slower string-tagcloud 14.2985+-0.3331 14.1087+-0.7912 might be 1.0135x faster string-unpack-code 31.4045+-1.2297 31.3260+-0.4065 string-validate-input 8.6802+-0.2687 ? 8.7847+-0.4849 ? might be 1.0120x slower <arithmetic> * 7.5057+-0.0876 ? 7.5494+-0.0686 ? might be 1.0058x slower <geometric> 6.0152+-0.0462 ? 6.0387+-0.0626 ? might be 1.0039x slower <harmonic> 4.9372+-0.0359 ? 4.9520+-0.0509 ? might be 1.0030x slower trunk new LongSpider: 3d-cube 1534.2321+-18.5629 ? 1561.3021+-44.4418 ? might be 1.0176x slower 3d-morph 1864.7997+-6.3330 ? 1867.2993+-8.0657 ? 3d-raytrace 1129.9680+-25.7547 ? 1130.8070+-15.5203 ? access-binary-trees 1414.9788+-15.8035 1405.9241+-8.4393 access-fannkuch 437.6647+-28.0513 ? 455.7769+-1.8851 ? might be 1.0414x slower access-nbody 1049.7018+-5.4541 1049.0985+-4.4324 access-nsieve 1420.2693+-2.8981 1418.6148+-8.4866 bitops-3bit-bits-in-byte 49.3855+-0.2232 49.3281+-0.5776 bitops-bits-in-byte 328.4328+-4.6112 ? 329.0225+-2.0424 ? bitops-nsieve-bits 991.4393+-6.8808 ? 996.0580+-9.9192 ? controlflow-recursive 714.6027+-3.4570 712.8653+-3.9360 crypto-aes 949.1093+-4.8819 945.4562+-5.7948 crypto-md5 812.9430+-10.9763 ? 820.9272+-24.6550 ? crypto-sha1 995.1593+-5.1807 ? 998.4819+-9.3664 ? date-format-tofte 1012.5118+-35.8962 ? 1122.4167+-76.6988 ? might be 1.1085x slower date-format-xparb 955.8976+-55.9070 ? 1078.4637+-421.9985 ? might be 1.1282x slower math-cordic 669.4552+-1.9082 ? 673.9792+-10.9438 ? math-partial-sums 1041.7177+-1.9212 1040.8400+-1.9198 math-spectral-norm 1079.2343+-3.0176 1076.4768+-5.0963 string-base64 647.3073+-7.1353 ? 650.3260+-2.7858 ? string-fasta 581.2416+-3.6017 580.7050+-4.8051 string-tagcloud 316.4032+-2.3262 ^ 311.0742+-1.8627 ^ definitely 1.0171x faster <arithmetic> 908.9298+-3.0896 ? 921.6020+-18.8837 ? might be 1.0139x slower <geometric> * 758.4200+-1.5809 ? 767.4051+-12.0253 ? might be 1.0118x slower <harmonic> 462.6101+-1.3501 ? 464.8981+-4.7145 ? might be 1.0049x slower trunk new V8Spider: crypto 71.6196+-1.8298 ? 71.9566+-0.2766 ? deltablue 125.2543+-2.5679 125.1818+-4.3929 earley-boyer 65.7393+-0.3921 65.3777+-1.4256 raytrace 63.8828+-1.4523 62.9153+-1.1320 might be 1.0154x faster regexp 99.5969+-1.1641 ? 99.8597+-0.8001 ? richards 123.2543+-5.3895 123.1168+-2.3984 splay 43.7975+-1.5581 ? 44.0093+-0.5615 ? <arithmetic> 84.7350+-0.8797 84.6310+-0.5342 might be 1.0012x faster <geometric> * 79.5960+-0.5926 79.4826+-0.5717 might be 1.0014x faster <harmonic> 74.6144+-0.6265 74.5146+-0.6590 might be 1.0013x faster trunk new Octane: encrypt 0.34260+-0.00121 0.34239+-0.00251 decrypt 6.05621+-0.04066 6.03907+-0.04486 deltablue x2 0.32931+-0.00336 ? 0.33064+-0.00127 ? earley 1.02987+-0.01493 1.01293+-0.01396 might be 1.0167x faster boyer 8.11134+-0.10947 8.09513+-0.14823 navier-stokes x2 6.63222+-0.01361 ? 6.63363+-0.00361 ? raytrace x2 2.82469+-0.05687 ? 2.85692+-0.06921 ? might be 1.0114x slower richards x2 0.18613+-0.00291 ? 0.18712+-0.00166 ? splay x2 0.57081+-0.02817 0.57003+-0.01727 regexp x2 47.73218+-0.48441 ? 48.15052+-0.93847 ? pdfjs x2 75.68153+-0.33489 75.14430+-0.89478 mandreel x2 73.74645+-0.69333 73.04819+-0.56628 gbemu x2 59.77012+-0.33201 ! 63.53819+-0.61828 ! definitely 1.0630x slower closure 0.47690+-0.00188 0.47274+-0.00297 jquery 5.27571+-0.01922 ! 5.45702+-0.02858 ! definitely 1.0344x slower box2d x2 19.04854+-0.09714 ^ 18.76295+-0.12226 ^ definitely 1.0152x faster zlib x2 620.99268+-73.62221 ? 643.03839+-14.82027 ? might be 1.0355x slower typescript x2 1092.83417+-9.05655 1071.79779+-14.95807 might be 1.0196x faster <arithmetic> 134.06634+-4.74103 ? 134.31789+-1.85155 ? might be 1.0019x slower <geometric> * 9.92180+-0.13519 ? 9.97246+-0.03273 ? might be 1.0051x slower <harmonic> 1.06997+-0.01138 ? 1.07208+-0.00432 ? might be 1.0020x slower trunk new Kraken: ai-astar 470.984+-13.818 467.371+-11.980 audio-beat-detection 168.616+-6.649 167.160+-3.419 audio-dft 214.113+-1.803 213.989+-1.579 audio-fft 110.449+-1.000 ? 110.791+-1.506 ? audio-oscillator 301.253+-4.435 ? 301.973+-2.783 ? imaging-darkroom 267.797+-1.410 266.101+-0.582 imaging-desaturate 96.161+-3.814 95.603+-0.585 imaging-gaussian-blur 157.688+-2.395 ? 157.690+-1.153 ? json-parse-financial 71.547+-0.260 ? 72.536+-0.841 ? might be 1.0138x slower json-stringify-tinderbox 97.650+-7.345 93.982+-1.977 might be 1.0390x faster stanford-crypto-aes 102.300+-0.670 101.765+-1.655 stanford-crypto-ccm 113.288+-15.996 108.508+-21.265 might be 1.0440x faster stanford-crypto-pbkdf2 221.427+-3.825 ? 222.902+-2.198 ? stanford-crypto-sha256-iterative 100.465+-0.595 100.147+-1.121 <arithmetic> * 178.124+-2.189 177.180+-1.640 might be 1.0053x faster <geometric> 153.739+-2.393 152.704+-2.045 might be 1.0068x faster <harmonic> 136.009+-2.662 134.959+-2.301 might be 1.0078x faster trunk new JSBench: amazon 8.0000+-0.0000 ? 8.5000+-0.9187 ? might be 1.0625x slower facebook 29.7500+-0.7956 27.7500+-1.5235 might be 1.0721x faster google 61.2500+-2.0022 ! 65.0000+-1.2992 ! definitely 1.0612x slower twitter 8.5000+-0.9187 8.2500+-0.7956 might be 1.0303x faster yahoo 4.0000+-0.0000 ? 4.2500+-0.7956 ? might be 1.0625x slower <arithmetic> * 22.3000+-0.5512 ? 22.7500+-0.7057 ? might be 1.0202x slower <geometric> 13.7691+-0.3763 ? 13.9841+-0.9206 ? might be 1.0156x slower <harmonic> 9.2096+-0.2278 ? 9.4862+-0.9311 ? might be 1.0300x slower trunk new JSRegress: ArrayBuffer-DataView-alloc-large-long-lived 107.8260+-1.0397 ? 109.6958+-3.5699 ? might be 1.0173x slower ArrayBuffer-DataView-alloc-long-lived 38.9818+-0.4502 38.9196+-0.4151 ArrayBuffer-Int32Array-byteOffset 4.2441+-0.1401 ? 4.3620+-0.3451 ? might be 1.0278x slower ArrayBuffer-Int8Array-alloc-large-long-lived 114.7353+-2.1406 ? 115.5947+-1.5681 ? ArrayBuffer-Int8Array-alloc-long-lived-buffer 91.6796+-1.2505 91.5497+-1.3595 ArrayBuffer-Int8Array-alloc-long-lived 37.4330+-0.3360 ? 37.7695+-0.5955 ? ArrayBuffer-Int8Array-alloc 33.7652+-0.3652 ? 35.7720+-2.6342 ? might be 1.0594x slower DataView-custom-properties 113.3420+-1.7344 ? 113.7358+-2.9804 ? Float32Array-matrix-mult 5.9636+-0.0213 ? 6.1615+-0.2869 ? might be 1.0332x slower Float32Array-to-Float64Array-set 85.2844+-3.8737 81.8621+-2.2328 might be 1.0418x faster Float64Array-alloc-long-lived 121.6812+-0.5515 ? 122.1080+-2.1621 ? Float64Array-to-Int16Array-set 102.0548+-0.7316 ! 103.2577+-0.0471 ! definitely 1.0118x slower HashMap-put-get-iterate-keys 35.7951+-0.3225 ? 36.5162+-0.5536 ? might be 1.0201x slower HashMap-put-get-iterate 35.3416+-0.7429 ? 35.5505+-0.5628 ? HashMap-string-put-get-iterate 53.3870+-1.1426 52.8480+-0.2415 might be 1.0102x faster Int16Array-alloc-long-lived 71.2784+-0.6918 ? 72.0386+-0.8130 ? might be 1.0107x slower Int16Array-bubble-sort-with-byteLength 38.7940+-0.2689 ? 39.1146+-0.7260 ? Int16Array-bubble-sort 37.6426+-0.1125 ? 37.7499+-0.2162 ? Int16Array-load-int-mul 1.8943+-0.0575 ? 1.9179+-0.1881 ? might be 1.0125x slower Int16Array-to-Int32Array-set 86.9604+-1.4586 83.7567+-1.8315 might be 1.0383x faster Int32Array-Int8Array-view-alloc 20.8069+-0.3964 20.3136+-0.1662 might be 1.0243x faster Int32Array-alloc-large 37.5475+-3.6022 35.9747+-1.4096 might be 1.0437x faster Int32Array-alloc-long-lived 79.8802+-0.9076 ? 80.5679+-0.7982 ? Int32Array-alloc 13.2910+-0.2665 ? 13.3802+-0.4773 ? Int8Array-alloc-long-lived 78.0439+-1.7262 ? 78.3312+-0.4807 ? Int8Array-load-with-byteLength 4.5592+-0.0945 4.4936+-0.0430 might be 1.0146x faster Int8Array-load 4.4902+-0.0431 ? 4.4904+-0.0169 ? abs-boolean 3.4387+-0.0328 ? 3.4850+-0.1010 ? might be 1.0135x slower adapt-to-double-divide 17.2839+-0.1109 ? 17.3660+-0.3226 ? aliased-arguments-getbyval 1.0859+-0.1122 1.0385+-0.0588 might be 1.0457x faster allocate-big-object 7.1984+-0.1335 7.1614+-0.1674 arity-mismatch-inlining 0.9457+-0.0257 ? 0.9467+-0.0665 ? array-access-polymorphic-structure 15.0616+-0.2178 14.9747+-0.4599 array-nonarray-polymorhpic-access 47.1701+-0.2169 ? 47.4463+-0.6004 ? array-prototype-every 102.4424+-1.1646 ? 102.7413+-4.9397 ? array-prototype-forEach 102.7725+-3.9337 100.5615+-3.0017 might be 1.0220x faster array-prototype-map 128.9551+-1.1988 ? 129.3233+-3.6629 ? array-prototype-some 101.7195+-2.0909 100.4420+-1.0660 might be 1.0127x faster array-splice-contiguous 57.6463+-1.2411 57.1817+-0.8797 array-with-double-add 5.3903+-0.2479 ? 5.4631+-0.0911 ? might be 1.0135x slower array-with-double-increment 3.9280+-0.0897 3.9013+-0.0522 array-with-double-mul-add 6.4797+-0.1763 ? 6.4832+-0.0537 ? array-with-double-sum 4.1081+-0.0883 ? 4.2283+-0.1722 ? might be 1.0293x slower array-with-int32-add-sub 9.3719+-0.1951 9.3052+-0.1815 array-with-int32-or-double-sum 4.1529+-0.0424 ? 4.2490+-0.1855 ? might be 1.0231x slower asmjs_bool_bug 8.4116+-0.0815 ? 8.4730+-0.2744 ? assign-custom-setter-polymorphic 3.8448+-0.1703 3.8220+-0.1283 assign-custom-setter 5.2825+-0.0285 ? 5.3269+-0.0868 ? basic-set 14.5090+-1.0087 14.0646+-0.8549 might be 1.0316x faster big-int-mul 5.6158+-0.0977 5.5303+-0.1096 might be 1.0155x faster boolean-test 3.9272+-0.1060 3.8688+-0.1836 might be 1.0151x faster branch-fold 4.4189+-0.0953 4.3800+-0.1744 by-val-generic 0.2522+-0.0180 0.2457+-0.0232 might be 1.0263x faster call-spread-apply 21.4878+-0.4376 ? 21.5387+-0.5053 ? call-spread-call 7.4061+-0.0544 7.1602+-0.2277 might be 1.0343x faster captured-assignments 0.4496+-0.0609 ? 0.4675+-0.0500 ? might be 1.0399x slower cast-int-to-double 7.7425+-0.1487 ? 7.8834+-0.3430 ? might be 1.0182x slower cell-argument 9.2980+-0.0975 ? 9.5176+-0.5824 ? might be 1.0236x slower cfg-simplify 3.4140+-0.0696 3.3771+-0.1562 might be 1.0109x faster chain-getter-access 0.2519+-0.0255 ? 0.2629+-0.0220 ? might be 1.0439x slower cmpeq-obj-to-obj-other 11.5536+-0.5975 11.2207+-0.6274 might be 1.0297x faster constant-test 7.2007+-0.2115 ? 7.2370+-0.1546 ? delay-tear-off-arguments-strictmode 3.1415+-0.2349 3.0807+-0.1308 might be 1.0197x faster destructuring-arguments 7.5453+-0.1156 7.3629+-0.0827 might be 1.0248x faster destructuring-swap 7.2930+-0.0454 7.2896+-0.0695 direct-arguments-getbyval 0.9545+-0.1638 0.9467+-0.0552 div-boolean-double 5.3221+-0.1977 5.2277+-0.1609 might be 1.0180x faster div-boolean 9.4528+-0.1097 9.3973+-0.1365 double-get-by-val-out-of-bounds 0.2382+-0.0114 ? 0.2440+-0.0193 ? might be 1.0243x slower double-pollution-getbyval 9.2864+-0.0862 ? 9.3183+-0.0791 ? double-pollution-putbyoffset 7.0405+-0.2275 ? 7.1900+-0.1882 ? might be 1.0212x slower double-to-int32-typed-array-no-inline 0.2831+-0.1136 0.2610+-0.0212 might be 1.0847x faster double-to-int32-typed-array 2.3194+-0.1620 2.2440+-0.1145 might be 1.0336x faster double-to-uint32-typed-array-no-inline 0.2698+-0.0416 0.2607+-0.0180 might be 1.0346x faster double-to-uint32-typed-array 2.5398+-0.0993 2.4213+-0.0581 might be 1.0490x faster empty-string-plus-int 12.8458+-0.1899 12.7897+-0.1403 emscripten-cube2hash 48.3871+-0.8749 ? 48.4771+-1.3154 ? external-arguments-getbyval 2.1718+-0.1027 ? 2.2669+-0.1394 ? might be 1.0438x slower external-arguments-putbyval 3.3540+-0.1568 ? 3.3604+-0.2780 ? fixed-typed-array-storage-var-index 1.3098+-0.0725 ? 1.3745+-0.0808 ? might be 1.0494x slower fixed-typed-array-storage 1.0413+-0.1483 1.0172+-0.0610 might be 1.0238x faster fold-double-to-int 17.9765+-0.2905 ? 18.0392+-0.2545 ? fold-get-by-id-to-multi-get-by-offset-rare-int 23.8616+-3.2814 ? 24.5100+-1.7081 ? might be 1.0272x slower fold-get-by-id-to-multi-get-by-offset 24.0320+-2.1386 22.5966+-1.8429 might be 1.0635x faster fold-multi-get-by-offset-to-get-by-offset 15.0237+-0.3711 ? 15.2158+-0.5860 ? might be 1.0128x slower fold-multi-get-by-offset-to-poly-get-by-offset 15.2049+-0.0943 ? 15.4214+-0.6025 ? might be 1.0142x slower fold-multi-put-by-offset-to-poly-put-by-offset 16.0687+-0.3671 15.9650+-0.1481 fold-multi-put-by-offset-to-put-by-offset 14.6974+-0.4479 14.5200+-0.4407 might be 1.0122x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 33.2870+-0.7580 32.3240+-0.4671 might be 1.0298x faster fold-put-by-id-to-multi-put-by-offset 28.3785+-2.0362 27.5995+-0.9077 might be 1.0282x faster fold-put-structure 15.0862+-0.2838 14.9202+-0.3857 might be 1.0111x faster for-of-iterate-array-entries 8.7457+-0.3009 ? 8.7534+-0.3323 ? for-of-iterate-array-keys 3.4211+-0.1133 ? 3.4264+-0.2408 ? for-of-iterate-array-values 3.0123+-0.2134 2.9467+-0.2960 might be 1.0222x faster fround 22.1340+-0.2651 21.9548+-0.3038 ftl-library-inlining-dataview 96.7391+-1.0685 ? 98.1655+-2.9621 ? might be 1.0147x slower ftl-library-inlining 102.1460+-0.4819 ^ 100.7200+-0.8391 ^ definitely 1.0142x faster function-dot-apply 2.0932+-0.1134 2.0415+-0.1100 might be 1.0253x faster function-test 4.2817+-0.1811 ? 4.4261+-0.1347 ? might be 1.0337x slower function-with-eval 0.2433+-0.0163 0.2425+-0.0175 gcse-poly-get-less-obvious 24.3449+-0.1206 24.2447+-0.1418 gcse-poly-get 24.4053+-0.5789 ? 24.4420+-0.6221 ? gcse 6.2275+-0.0526 ? 6.2523+-0.1111 ? get-by-id-bimorphic-check-structure-elimination-simple 3.1693+-0.0628 3.0754+-0.0876 might be 1.0305x faster get-by-id-bimorphic-check-structure-elimination 7.9679+-0.1279 7.9159+-0.0400 get-by-id-chain-from-try-block 6.8519+-0.3171 ! 15.2319+-0.2104 ! definitely 2.2230x slower get-by-id-check-structure-elimination 7.2867+-0.2061 7.1917+-0.1915 might be 1.0132x faster get-by-id-proto-or-self 23.1183+-3.4073 22.9035+-2.3442 get-by-id-quadmorphic-check-structure-elimination-simple 3.7405+-0.0915 3.7238+-0.1050 get-by-id-self-or-proto 23.0307+-2.2505 22.8023+-2.7902 might be 1.0100x faster get-by-val-out-of-bounds 0.2483+-0.0059 ? 0.2499+-0.0206 ? get_callee_monomorphic 10.4034+-0.4210 ? 10.5815+-0.3154 ? might be 1.0171x slower get_callee_polymorphic 7.5233+-0.3592 7.4809+-0.1558 getter-no-activation 5.5009+-0.0967 5.4575+-0.1542 getter-richards 167.0839+-15.1770 166.5098+-21.6945 getter 6.1314+-0.2460 6.0687+-0.1352 might be 1.0103x faster global-var-const-infer-fire-from-opt 0.2760+-0.0299 0.2595+-0.0222 might be 1.0635x faster global-var-const-infer 0.2623+-0.0187 0.2469+-0.0264 might be 1.0623x faster hoist-make-rope 0.2515+-0.0358 0.2396+-0.0051 might be 1.0497x faster hoist-poly-check-structure-effectful-loop 0.2680+-0.0132 0.2603+-0.0283 might be 1.0298x faster hoist-poly-check-structure 0.2468+-0.0208 0.2445+-0.0229 imul-double-only 9.6898+-0.4142 ? 9.8018+-0.3955 ? might be 1.0116x slower imul-int-only 12.2463+-0.6708 ? 12.3934+-0.4797 ? might be 1.0120x slower imul-mixed 9.2509+-0.0983 ? 9.5786+-0.7560 ? might be 1.0354x slower in-four-cases 23.4115+-0.1926 ? 23.4348+-0.2503 ? in-one-case-false 12.0233+-0.2845 ? 12.1350+-0.2925 ? in-one-case-true 12.0900+-0.3148 ? 12.1337+-0.4538 ? in-two-cases 12.5684+-0.3179 ? 12.8289+-0.4486 ? might be 1.0207x slower indexed-properties-in-objects 3.5568+-0.0466 3.4965+-0.0706 might be 1.0172x faster infer-closure-const-then-mov-no-inline 0.2515+-0.0355 0.2451+-0.0075 might be 1.0262x faster infer-closure-const-then-mov 24.0643+-0.1402 ? 24.1090+-0.1533 ? infer-closure-const-then-put-to-scope-no-inline 0.2592+-0.0242 ? 0.2743+-0.0150 ? might be 1.0584x slower infer-closure-const-then-put-to-scope 27.5095+-0.3125 ? 27.5397+-0.3239 ? infer-closure-const-then-reenter-no-inline 0.2660+-0.0408 0.2644+-0.0199 infer-closure-const-then-reenter 27.4680+-0.2024 27.4372+-0.2326 infer-constant-global-property 4.4372+-0.0685 4.4365+-0.2467 infer-constant-property 3.0728+-0.1002 3.0416+-0.0402 might be 1.0103x faster infer-one-time-closure-ten-vars 0.2593+-0.0219 ? 0.2726+-0.0200 ? might be 1.0511x slower infer-one-time-closure-two-vars 0.2552+-0.0192 0.2547+-0.0141 infer-one-time-closure 0.2442+-0.0079 ? 0.2645+-0.0323 ? might be 1.0830x slower infer-one-time-deep-closure 0.2614+-0.0183 ? 0.2626+-0.0284 ? inline-arguments-access 2.0451+-0.1262 1.8887+-0.1037 might be 1.0828x faster inline-arguments-aliased-access 2.2222+-0.1755 2.2150+-0.0996 inline-arguments-local-escape 28.3149+-1.1768 ? 28.3737+-0.7929 ? inline-get-scoped-var 5.3543+-0.1134 5.2649+-0.0551 might be 1.0170x faster inlined-put-by-id-transition 13.3248+-0.2609 13.0893+-0.2042 might be 1.0180x faster int-or-other-abs-then-get-by-val 6.4259+-0.1705 ? 6.4659+-0.0886 ? int-or-other-abs-zero-then-get-by-val 26.1198+-0.0763 25.9841+-0.1129 int-or-other-add-then-get-by-val 5.4770+-0.0715 ? 5.5500+-0.1097 ? might be 1.0133x slower int-or-other-add 7.4975+-0.1881 7.4420+-0.2695 int-or-other-div-then-get-by-val 4.7191+-0.0996 4.6950+-0.0543 int-or-other-max-then-get-by-val 6.2833+-0.4648 ? 6.3904+-0.2067 ? might be 1.0171x slower int-or-other-min-then-get-by-val 4.8940+-0.1194 4.8737+-0.1008 int-or-other-mod-then-get-by-val 4.7787+-0.0818 4.7291+-0.0351 might be 1.0105x faster int-or-other-mul-then-get-by-val 4.7581+-0.1416 4.7252+-0.2817 int-or-other-neg-then-get-by-val 5.7530+-0.2911 ? 5.8027+-0.2446 ? int-or-other-neg-zero-then-get-by-val 26.2015+-0.2131 26.0383+-0.1228 int-or-other-sub-then-get-by-val 5.5230+-0.1260 ? 5.6068+-0.0765 ? might be 1.0152x slower int-or-other-sub 4.7781+-0.0895 ? 4.8192+-0.1813 ? int-overflow-local 5.4888+-0.1991 5.4435+-0.1279 int52-spill 0.2508+-0.0159 ? 0.2544+-0.0274 ? might be 1.0144x slower integer-divide 13.8364+-0.1102 ? 14.0425+-0.3040 ? might be 1.0149x slower integer-modulo 2.6825+-0.1374 2.6420+-0.1487 might be 1.0153x faster large-int-captured 15.8890+-0.4381 ? 15.9100+-0.2923 ? large-int-neg 20.2335+-0.0988 ? 20.2827+-0.1315 ? large-int 18.0828+-0.1733 17.9912+-0.2110 logical-not 0.2441+-0.0066 ? 0.2540+-0.0244 ? might be 1.0402x slower lots-of-fields 21.7770+-0.6332 21.2095+-0.3517 might be 1.0268x faster make-indexed-storage 5.7718+-0.1794 5.6057+-0.4965 might be 1.0296x faster make-rope-cse 32.3018+-0.3036 ? 32.3922+-0.9796 ? marsaglia-larger-ints 51.6235+-1.0295 51.5378+-0.7671 marsaglia-osr-entry 28.0246+-0.3858 27.4630+-0.1789 might be 1.0204x faster max-boolean 3.0781+-0.0181 ? 3.1084+-0.0543 ? method-on-number 22.9208+-0.4797 ? 23.5095+-0.4611 ? might be 1.0257x slower min-boolean 3.1067+-0.1587 3.0525+-0.1569 might be 1.0178x faster minus-boolean-double 3.8900+-0.0645 ? 3.9330+-0.1430 ? might be 1.0111x slower minus-boolean 3.0867+-0.1243 3.0303+-0.0488 might be 1.0186x faster misc-strict-eq 51.5834+-0.6080 50.5585+-1.1268 might be 1.0203x faster mod-boolean-double 11.2785+-0.0652 ? 11.2818+-0.0692 ? mod-boolean 8.5242+-0.0381 ? 8.5475+-0.0354 ? mul-boolean-double 4.5712+-0.1496 ? 4.5786+-0.0705 ? mul-boolean 3.2833+-0.0783 3.2573+-0.1641 neg-boolean 4.0238+-0.0883 3.9736+-0.1003 might be 1.0126x faster negative-zero-divide 0.3006+-0.0150 ? 0.3020+-0.0201 ? negative-zero-modulo 0.3400+-0.0835 0.2888+-0.0015 might be 1.1771x faster negative-zero-negate 0.2914+-0.0305 ? 0.2928+-0.0424 ? nested-function-parsing 37.7905+-0.4555 37.5276+-0.2955 new-array-buffer-dead 3.8734+-0.2046 3.8638+-0.1887 new-array-buffer-push 17.8457+-0.2481 17.5732+-0.2160 might be 1.0155x faster new-array-dead 13.8839+-0.7892 ? 14.2078+-0.3943 ? might be 1.0233x slower new-array-push 9.6138+-0.3310 ? 9.6315+-0.1517 ? number-test 3.8666+-0.1517 3.7606+-0.0441 might be 1.0282x faster object-closure-call 7.7451+-0.2676 ? 7.7825+-0.0968 ? object-test 4.0906+-0.1303 ? 4.1776+-0.1058 ? might be 1.0213x slower plus-boolean-arith 3.1268+-0.1001 3.0739+-0.0330 might be 1.0172x faster plus-boolean-double 4.0265+-0.1471 3.9407+-0.0911 might be 1.0218x faster plus-boolean 2.9817+-0.1020 2.9785+-0.0330 poly-chain-access-different-prototypes-simple 3.5719+-0.0350 ? 3.6480+-0.0894 ? might be 1.0213x slower poly-chain-access-different-prototypes 2.5198+-0.5809 2.4945+-0.6456 might be 1.0102x faster poly-chain-access-simpler 3.7128+-0.1279 3.5739+-0.0267 might be 1.0389x faster poly-chain-access 2.8770+-0.0769 ? 2.8823+-0.0718 ? poly-stricteq 69.5085+-4.0087 67.4738+-0.8665 might be 1.0302x faster polymorphic-array-call 1.9602+-0.1574 ? 2.1545+-0.1324 ? might be 1.0991x slower polymorphic-get-by-id 0.2673+-0.0264 0.2484+-0.0200 might be 1.0762x faster polymorphic-put-by-id 0.2740+-0.0086 ? 0.2775+-0.1050 ? might be 1.0127x slower polymorphic-structure 25.1463+-0.2443 ? 25.2110+-0.1826 ? polyvariant-monomorphic-get-by-id 11.0145+-0.4394 10.9277+-0.1499 proto-getter-access 0.2455+-0.0074 0.2414+-0.0102 might be 1.0172x faster put-by-id-replace-and-transition 13.1789+-0.1355 13.1070+-0.2813 put-by-id-slightly-polymorphic 3.2845+-0.0536 3.2655+-0.0990 put-by-id 18.2973+-1.2214 ? 18.3098+-0.7822 ? put-by-val-direct 0.5677+-0.1100 0.4827+-0.0066 might be 1.1762x faster put-by-val-large-index-blank-indexing-type 19.3476+-0.3913 ? 19.3945+-0.3378 ? put-by-val-machine-int 0.2443+-0.0216 0.2363+-0.0181 might be 1.0338x faster rare-osr-exit-on-local 17.7811+-0.4517 ? 17.8700+-0.0692 ? register-pressure-from-osr 26.2755+-0.2077 26.2359+-0.4817 setter 6.2257+-0.1441 6.2173+-0.2355 simple-activation-demo 30.2559+-0.3452 ! 36.3515+-0.3273 ! definitely 1.2015x slower simple-getter-access 0.2465+-0.0228 0.2460+-0.0309 simple-poly-call-nested 19.6971+-1.5020 ? 19.9405+-1.9447 ? might be 1.0124x slower simple-poly-call 1.4870+-0.2209 1.4611+-0.1152 might be 1.0178x faster sin-boolean 24.0383+-3.1248 ? 24.0493+-4.1494 ? slow-array-profile-convergence 4.3579+-0.2088 4.1891+-0.1935 might be 1.0403x faster slow-convergence 4.1458+-0.2624 ? 4.1489+-0.2261 ? sparse-conditional 1.3713+-0.0823 1.3355+-0.0310 might be 1.0268x faster splice-to-remove 25.2349+-1.2382 25.0648+-0.3516 string-char-code-at 19.2123+-0.2386 ? 19.2552+-0.2299 ? string-concat-object 7.5217+-0.2120 7.4966+-0.1683 string-concat-pair-object 7.5088+-0.0641 7.4535+-0.1875 string-concat-pair-simple 16.4830+-0.1573 ? 16.5959+-0.1164 ? string-concat-simple 16.8845+-0.4354 ? 17.1129+-0.3143 ? might be 1.0135x slower string-cons-repeat 14.1274+-0.3824 ? 14.3198+-0.2938 ? might be 1.0136x slower string-cons-tower 13.7117+-0.5769 ? 13.9199+-1.0256 ? might be 1.0152x slower string-equality 21.8442+-0.3767 ? 21.9089+-0.6392 ? string-get-by-val-big-char 14.3422+-0.1246 ? 14.4509+-0.2130 ? string-get-by-val-out-of-bounds-insane 4.7455+-0.0868 ? 4.8166+-0.1337 ? might be 1.0150x slower string-get-by-val-out-of-bounds 5.8688+-0.0855 ? 5.9568+-0.3616 ? might be 1.0150x slower string-get-by-val 4.4675+-0.0841 ? 4.5035+-0.0926 ? string-hash 2.5372+-0.0296 2.5347+-0.1590 string-long-ident-equality 17.5391+-0.0599 ? 17.5997+-0.0896 ? string-repeat-arith 40.0613+-0.8218 ? 40.1943+-0.5163 ? string-sub 76.6913+-1.3949 ? 78.9778+-1.5927 ? might be 1.0298x slower string-test 3.8463+-0.0684 3.7852+-0.2104 might be 1.0161x faster string-var-equality 43.1098+-0.4012 ? 43.1276+-0.1502 ? structure-hoist-over-transitions 4.9225+-0.2681 ? 4.9756+-0.4908 ? might be 1.0108x slower substring-concat-weird 60.7001+-1.1910 59.4293+-0.9316 might be 1.0214x faster substring-concat 62.0806+-0.5955 61.3253+-1.4810 might be 1.0123x faster substring 65.2791+-0.3858 64.5017+-1.6673 might be 1.0121x faster switch-char-constant 3.1339+-0.0939 ? 3.1772+-0.2364 ? might be 1.0138x slower switch-char 7.5905+-0.2174 7.4483+-0.1097 might be 1.0191x faster switch-constant 11.9322+-0.4004 ? 12.0416+-0.4681 ? switch-string-basic-big-var 23.0953+-1.3902 ? 23.7997+-0.5018 ? might be 1.0305x slower switch-string-basic-big 17.6224+-0.9092 ? 19.1520+-5.7531 ? might be 1.0868x slower switch-string-basic-var 26.8618+-2.5930 ? 27.0317+-2.1489 ? switch-string-basic 20.9598+-1.7538 20.9014+-1.5313 switch-string-big-length-tower-var 24.7643+-0.0111 24.6412+-0.1188 switch-string-length-tower-var 19.7814+-0.1407 ^ 19.3397+-0.0505 ^ definitely 1.0228x faster switch-string-length-tower 14.3389+-0.3720 ? 14.5099+-0.3331 ? might be 1.0119x slower switch-string-short 14.3417+-0.1609 ? 14.4016+-0.1686 ? switch 15.8127+-0.4223 15.7347+-0.2052 tear-off-arguments-simple 2.1605+-0.1603 ? 2.1642+-0.1081 ? tear-off-arguments 3.4145+-0.1290 3.3995+-0.0731 temporal-structure 16.6761+-0.1649 ? 16.7360+-0.2235 ? to-int32-boolean 20.2645+-0.0698 ? 20.3187+-0.2134 ? undefined-test 3.9678+-0.1462 ? 3.9976+-0.0965 ? unprofiled-licm 27.2375+-0.6015 ? 27.2391+-0.6396 ? weird-inlining-const-prop 0.2522+-0.0298 0.2419+-0.0056 might be 1.0424x faster <arithmetic> 18.7951+-0.0911 ? 18.8209+-0.1117 ? might be 1.0014x slower <geometric> * 7.1433+-0.0131 ? 7.1480+-0.0401 ? might be 1.0006x slower <harmonic> 1.7030+-0.0141 1.6868+-0.0442 might be 1.0096x faster trunk new AsmBench: FloatMM.c 953.0683+-2.8804 ? 954.2560+-3.9269 ? Quicksort.c 569.3077+-2.3034 568.7673+-2.7100 Towers.c 413.6270+-5.5509 ^ 402.5715+-2.1517 ^ definitely 1.0275x faster bigfib.cpp 677.4558+-6.2990 ? 680.9818+-4.8977 ? cray.c 673.8777+-5.7045 ? 677.4255+-7.8755 ? dry.c 648.4427+-12.4184 648.1900+-14.4740 gcc-loops.cpp 6257.1985+-11.4480 6247.0603+-14.9400 n-body.c 1665.6456+-6.9917 1665.2059+-5.4533 stepanov_container.cpp 4931.5547+-20.3366 4916.7004+-34.8035 <arithmetic> 1865.5753+-2.0970 1862.3510+-6.5790 might be 1.0017x faster <geometric> * 1146.1907+-1.7071 1143.4387+-4.6137 might be 1.0024x faster <harmonic> 841.9923+-2.2208 837.8450+-3.5403 might be 1.0049x faster trunk new DSP: filtrr-posterize-tint 36.6970+-0.4850 ? 36.8127+-0.8293 ? filtrr-tint-contrast-sat-bright 60.2950+-0.6478 ? 61.0861+-0.6625 ? might be 1.0131x slower filtrr-tint-sat-adj-contr-mult 75.2455+-4.1009 74.1948+-5.1824 might be 1.0142x faster filtrr-blur-overlay-sat-contr 176.4652+-1.9735 175.4797+-0.4720 filtrr-sat-blur-mult-sharpen-contr 237.8973+-0.7781 ? 239.7888+-5.3622 ? filtrr-sepia-bias 28.1326+-0.3551 ? 28.4397+-0.1721 ? might be 1.0109x slower route9-vp8 x5 2676.7426+-334.5456 2573.8235+-349.3248 might be 1.0400x faster starfield x5 1369.2355+-30.8562 ? 1374.0515+-7.1538 ? bellard-jslinux x5 4716.2500+-204.0589 ? 5238.2500+-440.7645 ? might be 1.1107x slower zynaps-quake3 x5 1229.0015+-27.8926 ! 1338.2227+-13.1010 ! definitely 1.0889x slower zynaps-mandelbrot x5 607.7635+-7.4673 607.0482+-6.1345 ammojs-asm-js x5 97.9078+-40.0499 83.0714+-3.1195 might be 1.1786x faster ammojs-regular-js x5 261.5507+-4.6343 258.1526+-3.3441 might be 1.0132x faster <arithmetic> 1351.3900+-56.6403 ? 1414.1195+-79.6333 ? might be 1.0464x slower <geometric> * 597.9804+-33.6896 597.7302+-13.4622 might be 1.0004x faster <harmonic> 212.0613+-19.1775 204.8259+-1.9230 might be 1.0353x faster trunk new CompressionBench: huffman 662.7303+-3.1556 ? 663.2542+-1.6947 ? arithmetic-simple 486.3135+-1.9973 ? 488.7368+-3.3024 ? arithmetic-precise 379.4584+-5.2586 ? 380.8608+-3.3407 ? arithmetic-complex-precise 388.6878+-17.6965 ? 393.2120+-7.9407 ? might be 1.0116x slower arithmetic-precise-order-0 499.9119+-3.9494 499.4966+-3.1889 arithmetic-precise-order-1 431.7598+-5.9271 428.6075+-3.5666 arithmetic-precise-order-2 494.5443+-10.2805 491.9044+-7.0248 arithmetic-simple-order-1 554.3135+-4.1475 ? 560.5196+-8.5896 ? might be 1.0112x slower arithmetic-simple-order-2 629.1005+-9.8732 626.2887+-2.5305 lz-string 448.4613+-12.0144 ? 454.6389+-13.3505 ? might be 1.0138x slower <arithmetic> 497.5281+-2.5578 ? 498.7519+-2.1229 ? might be 1.0025x slower <geometric> * 489.7021+-2.7472 ? 491.0820+-2.1729 ? might be 1.0028x slower <harmonic> 482.2099+-2.9918 ? 483.7432+-2.2160 ? might be 1.0032x slower trunk new All benchmarks: <arithmetic> 254.2987+-5.3880 ? 260.8829+-8.4404 ? might be 1.0259x slower <geometric> 19.8560+-0.0963 ? 19.8864+-0.0604 ? might be 1.0015x slower <harmonic> 2.2554+-0.0134 2.2386+-0.0478 might be 1.0075x faster trunk new Geomean of preferred means: <scaled-result> 91.8612+-0.4369 ? 92.2006+-0.3103 ? might be 1.0037x slower Eggplant:WebKit oliver$
Oliver Hunt
Comment 18 2014-09-29 09:43:14 PDT
Progress, i suspect there's some fairly low hanging fruit for me to still fix: SunSpider: 3d-cube 8.3767+-0.4191 8.1705+-0.6612 might be 1.0252x faster 3d-morph 7.9278+-0.1657 7.8577+-0.0941 3d-raytrace 8.8688+-0.1610 ? 9.0599+-0.7670 ? might be 1.0216x slower access-binary-trees 3.6864+-0.2559 ? 3.8024+-0.1158 ? might be 1.0315x slower access-fannkuch 8.3641+-0.4174 7.6986+-0.7284 might be 1.0864x faster access-nbody 3.9003+-0.1643 3.7155+-0.0274 might be 1.0498x faster access-nsieve 4.7963+-0.2946 ? 4.8415+-0.2928 ? bitops-3bit-bits-in-byte 1.6531+-0.0949 ? 1.6860+-0.0708 ? might be 1.0199x slower bitops-bits-in-byte 5.1691+-0.0881 ? 5.1769+-0.1056 ? bitops-bitwise-and 2.7198+-0.1052 2.6835+-0.1060 might be 1.0135x faster bitops-nsieve-bits 4.9032+-0.2318 ? 4.9506+-0.1479 ? controlflow-recursive 2.7665+-0.2726 2.6155+-0.2045 might be 1.0577x faster crypto-aes 6.2427+-0.3249 5.9863+-0.0942 might be 1.0428x faster crypto-md5 3.1999+-0.0887 ? 3.2835+-0.2658 ? might be 1.0261x slower crypto-sha1 3.2156+-0.1842 3.1306+-0.1658 might be 1.0272x faster date-format-tofte 14.5623+-0.3514 ? 15.5218+-0.6243 ? might be 1.0659x slower date-format-xparb 9.0513+-0.5340 8.9205+-0.1932 might be 1.0147x faster math-cordic 3.8898+-0.1066 ? 3.9113+-0.2361 ? math-partial-sums 8.5865+-0.3566 8.5417+-0.1130 math-spectral-norm 2.6409+-0.0514 2.6205+-0.0460 regexp-dna 10.9014+-0.0477 ? 10.9755+-0.1458 ? string-base64 7.2149+-0.3350 7.1946+-0.1809 string-fasta 9.8023+-0.5528 9.6835+-0.5723 might be 1.0123x faster string-tagcloud 13.9757+-0.3729 ? 13.9843+-0.3908 ? string-unpack-code 31.6708+-1.3201 31.3936+-0.3904 string-validate-input 8.7354+-0.3919 8.7347+-0.1798 <arithmetic> * 7.5701+-0.1087 7.5439+-0.0310 might be 1.0035x faster <geometric> 6.0760+-0.0858 6.0385+-0.0309 might be 1.0062x faster <harmonic> 4.9866+-0.0875 4.9536+-0.0326 might be 1.0067x faster trunk new LongSpider: 3d-cube 1516.8100+-32.6403 ? 1547.7325+-23.6898 ? might be 1.0204x slower 3d-morph 1864.4777+-3.2475 1863.6172+-4.2718 3d-raytrace 1123.3193+-17.1668 ? 1132.9290+-4.2166 ? access-binary-trees 1410.1420+-5.3395 1408.3163+-3.5454 access-fannkuch 442.4086+-23.7692 437.4305+-22.3603 might be 1.0114x faster access-nbody 1050.9299+-8.5814 1047.5247+-2.4964 access-nsieve 1422.2535+-13.9017 1417.6508+-8.1998 bitops-3bit-bits-in-byte 49.2863+-0.4497 ? 49.4262+-1.2551 ? bitops-bits-in-byte 330.6915+-3.3575 324.5906+-4.6819 might be 1.0188x faster bitops-nsieve-bits 990.7068+-8.2197 ? 994.3402+-9.8038 ? controlflow-recursive 713.5417+-2.7790 713.4115+-2.3054 crypto-aes 952.6440+-6.4712 951.5392+-8.4004 crypto-md5 811.9265+-8.0516 ? 815.9408+-28.4173 ? crypto-sha1 994.1617+-4.2140 ? 999.4669+-3.5084 ? date-format-tofte 1005.2809+-11.6001 ! 1103.3309+-10.6773 ! definitely 1.0975x slower date-format-xparb 957.8361+-23.4868 951.2857+-30.1950 math-cordic 669.1788+-2.4457 ? 669.3642+-2.3866 ? math-partial-sums 1039.7679+-0.6127 1038.3046+-2.2370 math-spectral-norm 1077.4794+-0.7142 ^ 1075.2446+-1.1731 ^ definitely 1.0021x faster string-base64 661.5652+-2.9002 ^ 650.8127+-5.5662 ^ definitely 1.0165x faster string-fasta 583.5947+-7.5084 ? 585.3134+-10.1045 ? string-tagcloud 317.1887+-2.5632 ^ 310.6396+-3.2821 ^ definitely 1.0211x faster <arithmetic> 908.4178+-4.0936 ? 913.1006+-0.8718 ? might be 1.0052x slower <geometric> * 758.9910+-3.2643 ? 760.8687+-2.2827 ? might be 1.0025x slower <harmonic> 462.9109+-2.0188 462.8414+-5.9006 might be 1.0001x faster trunk new V8Spider: crypto 72.5510+-0.5264 72.2592+-0.5184 deltablue 127.0001+-4.0602 124.5702+-3.0508 might be 1.0195x faster earley-boyer 67.1586+-3.7442 65.3568+-1.6384 might be 1.0276x faster raytrace 64.3182+-0.9908 62.7009+-1.0263 might be 1.0258x faster regexp 99.9855+-0.2373 ? 100.2481+-1.4075 ? richards 124.1893+-2.9926 123.6370+-4.1585 splay 43.6483+-0.8933 ? 44.0366+-1.8851 ? <arithmetic> 85.5501+-1.5180 84.6870+-0.9823 might be 1.0102x faster <geometric> * 80.3167+-1.3181 79.5282+-0.7431 might be 1.0099x faster <harmonic> 75.2084+-1.1510 74.5428+-0.8131 might be 1.0089x faster trunk new Octane: encrypt 0.34238+-0.00194 ? 0.34278+-0.00159 ? decrypt 6.03378+-0.02653 ? 6.04173+-0.03543 ? deltablue x2 0.32995+-0.00770 0.32992+-0.00297 earley 1.02890+-0.01063 1.01555+-0.01123 might be 1.0131x faster boyer 8.05385+-0.09249 ? 8.13770+-0.06453 ? might be 1.0104x slower navier-stokes x2 6.61750+-0.02382 ? 6.62350+-0.02061 ? raytrace x2 2.78994+-0.04053 ? 2.80141+-0.03725 ? richards x2 0.18857+-0.00448 ? 0.18921+-0.00588 ? splay x2 0.58454+-0.01317 0.57293+-0.02586 might be 1.0203x faster regexp x2 47.33064+-0.56600 ? 48.24565+-0.72152 ? might be 1.0193x slower pdfjs x2 75.30411+-0.36505 74.78432+-0.73183 mandreel x2 73.87283+-1.07753 73.44964+-0.51795 gbemu x2 59.90635+-0.35272 ? 67.86394+-12.85480 ? might be 1.1328x slower closure 0.47474+-0.00363 0.47198+-0.00137 jquery 5.28041+-0.03151 ! 5.44818+-0.04401 ! definitely 1.0318x slower box2d x2 19.06110+-0.32085 18.97153+-0.13035 zlib x2 638.96637+-3.73830 614.81968+-66.47500 might be 1.0393x faster typescript x2 1097.47504+-12.33994 ^ 1069.86572+-9.68195 ^ definitely 1.0258x faster <arithmetic> 135.53560+-0.96710 132.61643+-4.64515 might be 1.0220x faster <geometric> * 9.94963+-0.04510 ? 9.98741+-0.14899 ? might be 1.0038x slower <harmonic> 1.07803+-0.00791 1.07637+-0.01512 might be 1.0015x faster trunk new Kraken: ai-astar 469.492+-14.228 462.612+-12.027 might be 1.0149x faster audio-beat-detection 167.269+-1.364 ? 167.663+-2.960 ? audio-dft 212.900+-0.829 212.009+-1.820 audio-fft 110.825+-0.818 110.553+-0.839 audio-oscillator 302.688+-3.820 302.033+-4.872 imaging-darkroom 265.885+-1.086 ? 266.773+-3.709 ? imaging-desaturate 95.228+-0.586 ? 95.743+-0.961 ? imaging-gaussian-blur 157.441+-0.945 156.864+-1.570 json-parse-financial 70.777+-1.032 ? 72.806+-1.530 ? might be 1.0287x slower json-stringify-tinderbox 100.103+-0.811 ^ 92.351+-0.356 ^ definitely 1.0839x faster stanford-crypto-aes 101.173+-1.323 ? 103.337+-1.076 ? might be 1.0214x slower stanford-crypto-ccm 119.776+-2.678 114.736+-11.567 might be 1.0439x faster stanford-crypto-pbkdf2 220.138+-1.212 ? 221.219+-4.577 ? stanford-crypto-sha256-iterative 100.941+-0.532 ? 100.963+-1.788 ? <arithmetic> * 178.188+-1.154 177.119+-1.966 might be 1.0060x faster <geometric> 154.115+-0.538 153.164+-1.773 might be 1.0062x faster <harmonic> 136.517+-0.312 135.689+-1.637 might be 1.0061x faster trunk new JSBench: amazon 8.2500+-0.7956 8.0000+-0.0000 might be 1.0312x faster facebook 29.0000+-1.2992 28.0000+-1.2992 might be 1.0357x faster google 60.7500+-2.7175 ? 63.7500+-0.7956 ? might be 1.0494x slower twitter 8.0000+-1.2992 7.7500+-0.7956 might be 1.0323x faster yahoo 4.0000+-0.0000 ? 4.2500+-0.7956 ? might be 1.0625x slower <arithmetic> * 22.0000+-0.5197 ? 22.3500+-0.3047 ? might be 1.0159x slower <geometric> 13.5857+-0.4895 ? 13.6117+-0.2444 ? might be 1.0019x slower <harmonic> 9.1230+-0.4731 ? 9.2078+-0.4490 ? might be 1.0093x slower
Oliver Hunt
Comment 19 2014-09-30 10:50:28 PDT
Created attachment 238937 [details] WIP - passes all tests, rebaselined to ToT, but still regresses perf in a few places
Oliver Hunt
Comment 20 2014-10-01 12:14:06 PDT
WebKit Commit Bot
Comment 21 2014-10-01 12:16:11 PDT
Attachment 239040 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/llint/LLIntData.cpp:146: Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons. [readability/comparison_to_zero] [5] Total errors found: 1 in 25 files If any of these errors are false positives, please file a bug against check-webkit-style.
Mark Lam
Comment 22 2014-10-02 12:14:53 PDT
Comment on attachment 239040 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=239040&action=review > Source/JavaScriptCore/bytecode/CodeBlock.cpp:3906 > + return; This return would make the code below dead and unreachable. Is this intentional?
Oliver Hunt
Comment 23 2014-10-02 12:16:04 PDT
Comment on attachment 239040 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=239040&action=review >> Source/JavaScriptCore/bytecode/CodeBlock.cpp:3906 >> + return; > > This return would make the code below dead and unreachable. Is this intentional? Whoops, i'll fix this -- it was validation that was failing during bring up
Oliver Hunt
Comment 24 2014-10-02 13:36:32 PDT
Carlos Alberto Lopez Perez
Comment 25 2014-10-03 14:19:10 PDT
(In reply to comment #24) > Committed r174226: <http://trac.webkit.org/changeset/174226> This has caused crashes when running the performance test Speedometer/Full.html Reported here: https://bugs.webkit.org/show_bug.cgi?id=137404
Chris Dumez
Comment 26 2014-10-30 21:32:59 PDT
Comment on attachment 239040 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=239040&action=review > Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp:204 > + return JSValue::encode(jsUndefined()); This doesn't seem right. The code below is no longer reachable, did you mean to remove that return statement as well?
Chris Dumez
Comment 27 2014-10-30 22:09:11 PDT
Comment on attachment 239040 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=239040&action=review >> Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp:204 >> + return JSValue::encode(jsUndefined()); > > This doesn't seem right. The code below is no longer reachable, did you mean to remove that return statement as well? BTW, how come this did not break any test?
Filip Pizlo
Comment 28 2014-10-30 22:19:37 PDT
Comment on attachment 239040 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=239040&action=review >>> Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp:204 >>> + return JSValue::encode(jsUndefined()); >> >> This doesn't seem right. The code below is no longer reachable, did you mean to remove that return statement as well? > > BTW, how come this did not break any test? I think the intent was to delete the code below.
Chris Dumez
Comment 29 2014-10-30 22:48:42 PDT
Comment on attachment 239040 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=239040&action=review >>>> Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp:204 >>>> + return JSValue::encode(jsUndefined()); >>> >>> This doesn't seem right. The code below is no longer reachable, did you mean to remove that return statement as well? >> >> BTW, how come this did not break any test? > > I think the intent was to delete the code below. Then this function doesn't do anything anymore right? and the 2 variables above are useless.
Note You need to log in before you can comment on or make changes to this bug.