CodeBlock should be a GC object
Created attachment 262294 [details] Patch
Benchmarks look OK: run-jsc-benchmarks Baseline:/Volumes/Big/ggaren/OpenSource/WebKitBuild/Release/jsc Patch:/Volumes/Big/ggaren/OpenSource/WebKitBuildPatch/Release/jsc Warning: could not identify checkout location for Patch Warning: refusing to run JSBench because not all VMs are DumpRenderTree or WebKitTestRunner. Warning: refusing to run DSPJS because not all VMs are DumpRenderTree or WebKitTestRunner. 3948/3948 Generating benchmark report at /Volumes/Big/ggaren/Internal/Baseline_Patch_SunSpiderLongSpiderV8SpiderOctaneKrakenJSRegressAsmBenchCompressionBench_Geoffrey-Garens-Mac-Pro_20151001_1640_report.txt And raw data at /Volumes/Big/ggaren/Internal/Baseline_Patch_SunSpiderLongSpiderV8SpiderOctaneKrakenJSRegressAsmBenchCompressionBench_Geoffrey-Garens-Mac-Pro_20151001_1640.json Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on Geoffrey-Garens-Mac-Pro (MacPro6,1). VMs tested: "Baseline" at /Volumes/Big/ggaren/OpenSource/WebKitBuild/Release/jsc (r190434) "Patch" at /Volumes/Big/ggaren/OpenSource/WebKitBuildPatch/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. Baseline Patch SunSpider: 3d-cube 6.2775+-0.6658 ? 6.6718+-0.3185 ? might be 1.0628x slower 3d-morph 6.2292+-0.1433 ? 6.4460+-0.3614 ? might be 1.0348x slower 3d-raytrace 7.2800+-0.4161 7.2350+-0.2133 access-binary-trees 2.5983+-0.1434 ? 2.6292+-0.1733 ? might be 1.0119x slower access-fannkuch 6.6703+-0.1317 6.6089+-0.0412 access-nbody 3.3793+-0.1078 3.3207+-0.0091 might be 1.0176x faster access-nsieve 3.9557+-0.3044 ? 3.9872+-0.3769 ? bitops-3bit-bits-in-byte 1.5576+-0.0900 1.5324+-0.0744 might be 1.0164x faster bitops-bits-in-byte 3.9058+-0.0811 3.8419+-0.0802 might be 1.0166x faster bitops-bitwise-and 2.3977+-0.0774 2.3818+-0.0857 bitops-nsieve-bits 3.6783+-0.1034 3.5031+-0.1396 might be 1.0500x faster controlflow-recursive 2.8870+-0.1098 ? 2.9120+-0.1326 ? crypto-aes 5.4173+-1.0386 5.1162+-0.1883 might be 1.0588x faster crypto-md5 3.1253+-0.0389 ? 3.2016+-0.3115 ? might be 1.0244x slower crypto-sha1 3.0265+-0.1650 3.0228+-0.0416 date-format-tofte 10.5389+-0.6195 10.4158+-0.7515 might be 1.0118x faster date-format-xparb 6.0970+-0.4158 5.8134+-0.1323 might be 1.0488x faster math-cordic 3.5930+-0.3153 3.5089+-0.1404 might be 1.0240x faster math-partial-sums 6.1198+-0.1500 ? 6.2035+-0.2915 ? might be 1.0137x slower math-spectral-norm 2.4244+-0.0473 2.3832+-0.0182 might be 1.0173x faster regexp-dna 7.4500+-0.3044 ? 7.6661+-0.2346 ? might be 1.0290x slower string-base64 5.1160+-0.1801 5.1045+-0.0293 string-fasta 6.9515+-0.0521 6.8380+-0.1036 might be 1.0166x faster string-tagcloud 9.4554+-0.0829 ? 9.5539+-0.3251 ? might be 1.0104x slower string-unpack-code 21.2407+-0.2838 ? 22.1588+-1.3699 ? might be 1.0432x slower string-validate-input 5.3421+-0.1343 ? 5.3810+-0.1155 ? <arithmetic> 5.6429+-0.0453 ? 5.6707+-0.0584 ? might be 1.0049x slower Baseline Patch LongSpider: 3d-cube 948.3625+-13.8982 944.1458+-10.2508 3d-morph 1628.0513+-7.4887 1623.2674+-3.8745 3d-raytrace 773.3165+-71.8734 719.7407+-1.4449 might be 1.0744x faster access-binary-trees 988.1111+-7.6847 983.3155+-0.5521 access-fannkuch 348.3901+-12.1349 ? 350.0629+-4.2421 ? access-nbody 632.0286+-6.1687 629.1475+-1.3202 access-nsieve 460.5578+-12.2511 460.3912+-3.8565 bitops-3bit-bits-in-byte 41.9998+-0.7420 41.4489+-0.5389 might be 1.0133x faster bitops-bits-in-byte 92.6965+-2.0083 ? 93.2070+-0.8472 ? bitops-nsieve-bits 460.9541+-5.6460 ? 461.7214+-5.9042 ? controlflow-recursive 486.7307+-3.6640 ? 487.6119+-2.2240 ? crypto-aes 680.4395+-13.9022 ^ 650.7342+-4.6876 ^ definitely 1.0456x faster crypto-md5 551.8985+-8.6245 550.4079+-8.8076 crypto-sha1 756.5427+-3.5392 752.5689+-6.1289 date-format-tofte 782.6442+-55.9452 768.5128+-7.2915 might be 1.0184x faster date-format-xparb 840.6130+-27.2268 829.2029+-35.0939 might be 1.0138x faster hash-map 169.8828+-2.7372 ? 170.4758+-1.6566 ? math-cordic 566.3165+-0.4820 ? 569.5576+-4.9034 ? math-partial-sums 639.4128+-2.0071 ? 641.3423+-7.7284 ? math-spectral-norm 598.8356+-3.4151 598.8104+-5.2283 string-base64 427.4105+-6.1631 ? 430.2979+-1.8262 ? string-fasta 424.4388+-1.9554 ? 427.7232+-9.2031 ? string-tagcloud 207.6817+-1.4614 ? 208.2306+-1.7075 ? <geometric> 468.7643+-1.8698 ^ 465.8888+-0.9803 ^ definitely 1.0062x faster Baseline Patch V8Spider: crypto 57.0146+-0.4686 ? 57.8770+-0.5577 ? might be 1.0151x slower deltablue 71.4997+-2.9909 70.4665+-3.5836 might be 1.0147x faster earley-boyer 50.0605+-1.5916 50.0333+-0.9189 raytrace 34.0609+-0.9655 ? 34.2090+-0.1717 ? regexp 77.6383+-0.7919 77.6210+-0.7429 richards 61.2618+-1.0464 60.3810+-0.8346 might be 1.0146x faster splay 40.7216+-1.2915 40.5608+-0.4406 <geometric> 54.0368+-0.3378 53.9279+-0.5044 might be 1.0020x faster Baseline Patch Octane: encrypt 0.22037+-0.00439 ? 0.22400+-0.00852 ? might be 1.0165x slower decrypt 4.33034+-0.47076 4.15242+-0.01362 might be 1.0428x faster deltablue x2 0.16550+-0.00305 0.16437+-0.00274 earley 0.37378+-0.00546 ^ 0.36613+-0.00171 ^ definitely 1.0209x faster boyer 5.56604+-0.04213 ^ 5.45847+-0.02093 ^ definitely 1.0197x faster navier-stokes x2 5.46657+-0.02092 5.45423+-0.00835 raytrace x2 1.08186+-0.01591 1.06843+-0.01098 might be 1.0126x faster richards x2 0.10801+-0.00174 ? 0.10938+-0.00248 ? might be 1.0127x slower splay x2 0.38683+-0.00443 ? 0.38724+-0.00285 ? regexp x2 28.57546+-0.20305 ? 28.92783+-1.11953 ? might be 1.0123x slower pdfjs x2 46.03756+-2.45630 44.63738+-0.07623 might be 1.0314x faster mandreel x2 51.10060+-0.35287 51.01117+-0.23256 gbemu x2 43.73183+-7.05689 ? 46.40739+-6.42973 ? might be 1.0612x slower closure 0.77541+-0.00204 0.77453+-0.00585 jquery 9.75749+-0.07167 ? 9.79004+-0.08582 ? box2d x2 12.48350+-0.34167 12.44566+-0.21394 zlib x2 428.84007+-31.77498 ? 439.66968+-2.31609 ? might be 1.0253x slower typescript x2 900.32397+-6.10328 ? 903.39825+-8.27794 ? <geometric> 6.65671+-0.08755 ? 6.66876+-0.07193 ? might be 1.0018x slower Baseline Patch Kraken: ai-astar 159.984+-3.475 ? 160.918+-1.575 ? audio-beat-detection 60.006+-0.794 59.168+-0.504 might be 1.0142x faster audio-dft 112.328+-1.745 ? 112.353+-1.104 ? audio-fft 43.607+-1.899 ? 44.047+-2.077 ? might be 1.0101x slower audio-oscillator 71.248+-0.285 71.244+-0.543 imaging-darkroom 74.616+-2.073 74.014+-0.848 imaging-desaturate 64.239+-1.285 ? 64.284+-1.136 ? imaging-gaussian-blur 111.102+-1.615 ? 111.947+-3.814 ? json-parse-financial 49.308+-1.124 49.159+-0.891 json-stringify-tinderbox 29.447+-0.739 ? 29.709+-1.528 ? stanford-crypto-aes 49.333+-1.887 48.796+-0.585 might be 1.0110x faster stanford-crypto-ccm 46.722+-3.919 45.874+-2.260 might be 1.0185x faster stanford-crypto-pbkdf2 109.380+-1.701 ? 109.404+-1.647 ? stanford-crypto-sha256-iterative 43.696+-0.738 ? 44.004+-0.888 ? <arithmetic> 73.215+-0.437 73.209+-0.219 might be 1.0001x faster Baseline Patch JSRegress: abc-forward-loop-equal 48.1733+-0.4926 ? 48.7878+-1.5210 ? might be 1.0128x slower abc-postfix-backward-loop 47.9703+-0.4161 ? 48.3788+-1.3465 ? abc-simple-backward-loop 47.8145+-0.8021 47.6791+-0.5479 abc-simple-forward-loop 48.0798+-0.4844 ? 48.0970+-0.5836 ? abc-skippy-loop 32.6957+-0.2193 32.5074+-0.1606 abs-boolean 2.9739+-0.0573 ? 2.9952+-0.1551 ? adapt-to-double-divide 17.3635+-1.1897 17.0334+-0.7849 might be 1.0194x faster aliased-arguments-getbyval 1.7083+-0.2548 1.5604+-0.2320 might be 1.0948x faster allocate-big-object 2.6533+-0.1656 ? 2.7122+-0.1985 ? might be 1.0222x slower arguments-named-and-reflective 10.9133+-0.3780 10.6337+-0.1584 might be 1.0263x faster arguments-out-of-bounds 12.4462+-1.2316 12.3610+-0.5051 arguments-strict-mode 10.0086+-0.5863 9.5724+-0.4820 might be 1.0456x faster arguments 8.8206+-0.3116 8.7220+-0.1344 might be 1.0113x faster arity-mismatch-inlining 1.1892+-0.1243 ? 1.2205+-0.0488 ? might be 1.0263x slower array-access-polymorphic-structure 7.9275+-0.1478 ? 8.3730+-0.9020 ? might be 1.0562x slower array-nonarray-polymorhpic-access 30.6650+-1.3383 ? 31.1246+-2.1783 ? might be 1.0150x slower array-prototype-every 87.2010+-0.8399 ? 93.4383+-7.6904 ? might be 1.0715x slower array-prototype-forEach 86.4586+-0.8569 85.6453+-0.3606 array-prototype-map 93.1442+-2.3679 ? 94.6332+-0.4690 ? might be 1.0160x slower array-prototype-reduce 83.7321+-1.9393 ? 84.4662+-0.6559 ? array-prototype-reduceRight 85.0991+-3.1277 ? 85.2499+-0.5081 ? array-prototype-some 88.1509+-1.9254 ? 90.6353+-1.0435 ? might be 1.0282x slower array-splice-contiguous 27.2108+-0.3130 ? 27.7177+-0.7004 ? might be 1.0186x slower array-with-double-add 4.5692+-0.2973 4.5274+-0.1875 array-with-double-increment 3.6255+-0.0507 ? 3.7270+-0.0947 ? might be 1.0280x slower array-with-double-mul-add 5.5490+-0.2544 5.5093+-0.1212 array-with-double-sum 3.5972+-0.0184 3.5707+-0.0152 array-with-int32-add-sub 7.6524+-0.4104 7.4103+-0.0870 might be 1.0327x faster array-with-int32-or-double-sum 3.8345+-0.1366 3.7272+-0.0571 might be 1.0288x faster ArrayBuffer-DataView-alloc-large-long-lived 32.0910+-0.2078 ? 32.3872+-0.4593 ? ArrayBuffer-DataView-alloc-long-lived 14.5005+-3.4044 13.8412+-0.4817 might be 1.0476x faster ArrayBuffer-Int32Array-byteOffset 4.1541+-0.0608 ? 4.3722+-0.2773 ? might be 1.0525x slower ArrayBuffer-Int8Array-alloc-large-long-lived 33.4500+-0.5850 ? 33.5640+-0.6694 ? ArrayBuffer-Int8Array-alloc-long-lived-buffer 23.7939+-1.7872 22.4623+-0.9132 might be 1.0593x faster ArrayBuffer-Int8Array-alloc-long-lived 12.8217+-0.3537 12.6960+-0.2193 ArrayBuffer-Int8Array-alloc 10.7596+-0.6363 10.7522+-0.2174 arrowfunction-call 12.0214+-0.1199 11.9208+-0.2906 asmjs_bool_bug 8.6949+-0.3553 8.4747+-0.2221 might be 1.0260x faster assign-custom-setter-polymorphic 3.4813+-0.2698 ? 3.5767+-0.5957 ? might be 1.0274x slower assign-custom-setter 4.6575+-0.1976 4.5845+-0.0379 might be 1.0159x faster basic-set 9.1254+-0.3331 8.8819+-0.0677 might be 1.0274x faster big-int-mul 4.3792+-0.2199 ? 4.3819+-0.0596 ? boolean-test 3.4435+-0.0177 ? 3.5067+-0.1037 ? might be 1.0184x slower branch-fold 4.3670+-0.1344 4.1900+-0.1472 might be 1.0422x faster branch-on-string-as-boolean 19.1403+-1.7936 18.4481+-0.3871 might be 1.0375x faster by-val-generic 2.9229+-0.1270 2.8683+-0.0889 might be 1.0190x faster call-spread-apply 32.6611+-0.6974 ? 32.9019+-1.2012 ? call-spread-call 25.4805+-0.5182 ? 25.6363+-0.3659 ? captured-assignments 0.6873+-0.0474 ? 0.7053+-0.0064 ? might be 1.0261x slower cast-int-to-double 5.8935+-0.1194 5.8691+-0.0474 cell-argument 5.9977+-0.3833 ? 6.1124+-0.1758 ? might be 1.0191x slower cfg-simplify 3.1687+-0.0804 3.1218+-0.1131 might be 1.0150x faster chain-getter-access 8.4382+-0.2739 ? 8.4410+-0.3506 ? cmpeq-obj-to-obj-other 11.1719+-0.3460 11.0258+-0.0964 might be 1.0133x faster constant-test 5.5448+-0.1586 5.5101+-0.1361 create-lots-of-functions 11.4666+-0.4398 11.0992+-0.2015 might be 1.0331x faster cse-new-array-buffer 2.6579+-0.0796 ? 2.7902+-0.2243 ? might be 1.0498x slower cse-new-array 2.8026+-0.1279 2.7898+-0.1531 DataView-custom-properties 40.6091+-1.3160 ^ 38.1100+-0.5163 ^ definitely 1.0656x faster delay-tear-off-arguments-strictmode 14.6218+-0.4614 14.5753+-0.2446 deltablue-varargs 231.1998+-7.0987 226.8958+-1.5291 might be 1.0190x faster destructuring-arguments 189.0722+-1.8193 ? 192.9101+-9.8065 ? might be 1.0203x slower destructuring-parameters-overridden-by-function 0.7294+-0.0354 0.7258+-0.0474 destructuring-swap 5.5851+-0.0975 ? 5.6238+-0.1012 ? direct-arguments-getbyval 1.7508+-0.3019 1.4681+-0.0560 might be 1.1925x faster div-boolean-double 5.6905+-0.1159 5.6456+-0.0850 div-boolean 8.3577+-0.1022 ? 8.4834+-0.2970 ? might be 1.0150x slower double-get-by-val-out-of-bounds 4.9658+-0.0867 4.9378+-0.3427 double-pollution-getbyval 9.4207+-0.0747 9.4014+-0.1012 double-pollution-putbyoffset 4.4037+-0.0208 ^ 4.2715+-0.0572 ^ definitely 1.0309x faster double-real-use 30.8337+-0.5315 30.6395+-1.6630 double-to-int32-typed-array-no-inline 2.8370+-0.0428 2.8033+-0.0946 might be 1.0120x faster double-to-int32-typed-array 2.6077+-0.1664 2.5234+-0.0382 might be 1.0334x faster double-to-uint32-typed-array-no-inline 2.8784+-0.0729 2.8043+-0.0216 might be 1.0264x faster double-to-uint32-typed-array 2.5862+-0.0695 2.5485+-0.0677 might be 1.0148x faster elidable-new-object-dag 39.8198+-1.0480 38.9198+-0.4754 might be 1.0231x faster elidable-new-object-roflcopter 41.0151+-1.5438 39.9480+-0.2980 might be 1.0267x faster elidable-new-object-then-call 33.5905+-3.4938 33.3638+-4.0954 elidable-new-object-tree 43.0714+-1.3020 ? 43.6625+-1.9087 ? might be 1.0137x slower empty-string-plus-int 5.6854+-0.2432 5.5699+-0.1672 might be 1.0207x faster emscripten-cube2hash 40.8975+-1.3796 ? 40.9839+-0.6547 ? exit-length-on-plain-object 17.4870+-0.9204 ? 17.5261+-0.6574 ? external-arguments-getbyval 1.6404+-0.1453 1.6008+-0.1066 might be 1.0248x faster external-arguments-putbyval 2.6304+-0.1110 ? 2.6577+-0.0898 ? might be 1.0104x slower fixed-typed-array-storage-var-index 1.5897+-0.0173 ? 1.6036+-0.0533 ? fixed-typed-array-storage 1.2556+-0.1097 1.2228+-0.0407 might be 1.0268x faster Float32Array-matrix-mult 5.0836+-0.0346 ? 5.1345+-0.0482 ? might be 1.0100x slower Float32Array-to-Float64Array-set 57.3684+-0.6058 ! 60.5980+-0.7180 ! definitely 1.0563x slower Float64Array-alloc-long-lived 70.6350+-0.6985 ? 71.1781+-0.8354 ? Float64Array-to-Int16Array-set 71.8549+-0.2512 ? 72.6398+-1.7540 ? might be 1.0109x slower fold-double-to-int 15.0590+-0.5880 14.9340+-0.3413 fold-get-by-id-to-multi-get-by-offset-rare-int 10.7706+-0.5512 ? 10.8872+-0.5820 ? might be 1.0108x slower fold-get-by-id-to-multi-get-by-offset 9.4288+-0.3968 ? 9.5638+-0.5277 ? might be 1.0143x slower fold-multi-get-by-offset-to-get-by-offset 7.6718+-0.8182 7.5687+-0.6005 might be 1.0136x faster fold-multi-get-by-offset-to-poly-get-by-offset 8.5100+-0.6571 ? 8.6046+-0.5643 ? might be 1.0111x slower fold-multi-put-by-offset-to-poly-put-by-offset 9.8730+-0.6451 ? 10.1043+-0.6111 ? might be 1.0234x slower fold-multi-put-by-offset-to-put-by-offset 9.1805+-0.5109 ? 9.5077+-0.4611 ? might be 1.0356x slower fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 13.4647+-0.1585 ? 13.8892+-0.3579 ? might be 1.0315x slower fold-put-by-id-to-multi-put-by-offset 11.2620+-1.0325 ? 11.5337+-1.2385 ? might be 1.0241x slower fold-put-by-val-with-string-to-multi-put-by-offset 11.1223+-1.0524 ? 11.4032+-1.1020 ? might be 1.0253x slower fold-put-by-val-with-symbol-to-multi-put-by-offset 10.8582+-0.1088 ? 11.4390+-0.8248 ? might be 1.0535x slower fold-put-structure 7.8221+-0.4016 ? 7.8715+-0.1544 ? for-of-iterate-array-entries 13.1499+-0.9729 12.9807+-1.0764 might be 1.0130x faster for-of-iterate-array-keys 4.3878+-0.3332 ? 4.4071+-0.1268 ? for-of-iterate-array-values 4.3165+-0.0875 ? 4.3667+-0.4943 ? might be 1.0116x slower fround 17.6073+-1.8887 16.9951+-0.3310 might be 1.0360x faster ftl-library-inlining-dataview 74.0976+-18.6857 68.9834+-1.3709 might be 1.0741x faster ftl-library-inlining 101.0350+-25.1238 88.8249+-19.9473 might be 1.1375x faster function-call 12.2509+-0.5516 12.1013+-0.3341 might be 1.0124x faster function-dot-apply 2.6177+-0.0380 2.6068+-0.0182 function-test 3.2160+-0.0971 ? 3.2610+-0.1941 ? might be 1.0140x slower function-with-eval 113.0654+-4.7362 ? 113.3085+-1.1645 ? gcse-poly-get-less-obvious 23.1465+-1.6000 22.6228+-0.7624 might be 1.0232x faster gcse-poly-get 27.8394+-4.3654 ? 29.0240+-1.0284 ? might be 1.0426x slower gcse 4.4309+-0.0281 ? 4.4918+-0.1193 ? might be 1.0137x slower get-by-id-bimorphic-check-structure-elimination-simple 3.0710+-0.2262 3.0101+-0.0826 might be 1.0202x faster get-by-id-bimorphic-check-structure-elimination 5.7551+-0.1910 ? 5.7927+-0.1764 ? get-by-id-chain-from-try-block 2.8081+-0.0456 2.7988+-0.1075 get-by-id-check-structure-elimination 4.9641+-0.0840 ? 5.0078+-0.0852 ? get-by-id-proto-or-self 16.3629+-1.0311 ? 17.6642+-3.0419 ? might be 1.0795x slower get-by-id-quadmorphic-check-structure-elimination-simple 3.3820+-0.1570 3.2900+-0.0607 might be 1.0280x faster get-by-id-self-or-proto 16.8414+-0.4407 ? 18.3796+-4.4423 ? might be 1.0913x slower get-by-val-out-of-bounds 4.6690+-0.0618 ? 4.7620+-0.1044 ? might be 1.0199x slower get-by-val-with-string-bimorphic-check-structure-elimination-simple 2.9868+-0.0800 ? 3.0220+-0.1174 ? might be 1.0118x slower get-by-val-with-string-bimorphic-check-structure-elimination 7.3748+-0.1818 ? 7.5499+-0.3200 ? might be 1.0237x slower get-by-val-with-string-chain-from-try-block 2.8719+-0.0624 ? 2.8907+-0.1205 ? get-by-val-with-string-check-structure-elimination 6.5715+-0.1745 ? 6.5869+-0.2268 ? get-by-val-with-string-proto-or-self 19.3578+-3.2927 18.6616+-2.7892 might be 1.0373x faster get-by-val-with-string-quadmorphic-check-structure-elimination-simple 3.9891+-0.2579 ? 4.1105+-0.1186 ? might be 1.0304x slower get-by-val-with-string-self-or-proto 18.6765+-2.8683 ? 18.7079+-2.4331 ? get-by-val-with-symbol-bimorphic-check-structure-elimination-simple 3.5598+-0.2169 3.4992+-0.1665 might be 1.0173x faster get-by-val-with-symbol-bimorphic-check-structure-elimination 14.5895+-0.3105 ? 14.6263+-0.2543 ? get-by-val-with-symbol-chain-from-try-block 2.8580+-0.0468 ? 2.8813+-0.1028 ? get-by-val-with-symbol-check-structure-elimination 14.0130+-0.1706 13.8557+-0.3917 might be 1.0114x faster get-by-val-with-symbol-proto-or-self 17.9388+-0.4404 ? 18.3973+-3.4096 ? might be 1.0256x slower get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple 4.9681+-0.3309 4.8842+-0.0808 might be 1.0172x faster get-by-val-with-symbol-self-or-proto 17.3745+-0.9643 ? 19.0208+-5.0599 ? might be 1.0948x slower get_callee_monomorphic 2.7202+-0.2092 2.6450+-0.1386 might be 1.0284x faster get_callee_polymorphic 3.9697+-0.4307 3.7609+-0.1784 might be 1.0555x faster getter-no-activation 5.5602+-0.0631 5.5165+-0.0829 getter-prototype 10.0860+-0.5865 9.8423+-0.2959 might be 1.0248x faster getter-richards-try-catch 1420.2113+-140.5817 ? 1433.8635+-113.4307 ? getter-richards 102.8771+-1.6570 ? 104.5715+-1.6591 ? might be 1.0165x slower getter 5.9479+-0.2688 5.8848+-0.1876 might be 1.0107x faster global-object-access-with-mutating-structure 6.3317+-0.8154 5.9788+-0.3103 might be 1.0590x faster global-var-const-infer-fire-from-opt 1.1012+-0.0845 1.0978+-0.1270 global-var-const-infer 0.9508+-0.0409 0.9379+-0.0319 might be 1.0137x faster hard-overflow-check-equal 39.3887+-1.0199 ? 39.5241+-1.5366 ? hard-overflow-check 38.9210+-0.8184 ? 40.0735+-2.4994 ? might be 1.0296x slower HashMap-put-get-iterate-keys 27.4227+-0.5085 ? 27.5373+-0.5172 ? HashMap-put-get-iterate 27.1481+-0.4710 ? 27.5204+-0.2400 ? might be 1.0137x slower HashMap-string-put-get-iterate 28.1971+-1.0168 ? 28.5444+-0.8563 ? might be 1.0123x slower hoist-make-rope 9.4725+-1.2084 ? 9.6578+-0.1961 ? might be 1.0196x slower hoist-poly-check-structure-effectful-loop 4.7891+-0.1600 ? 4.8118+-0.2829 ? hoist-poly-check-structure 3.6920+-0.1596 3.6724+-0.0623 imul-double-only 6.4787+-0.2838 ? 6.7125+-0.3011 ? might be 1.0361x slower imul-int-only 7.4832+-0.1425 ? 7.5290+-0.1488 ? imul-mixed 6.4537+-0.7148 ? 6.7351+-0.1916 ? might be 1.0436x slower in-four-cases 22.0339+-0.2935 21.7369+-0.5022 might be 1.0137x faster in-one-case-false 12.3439+-0.4061 11.9678+-0.1330 might be 1.0314x faster in-one-case-true 12.1947+-0.4155 12.1324+-0.3282 in-two-cases 13.0428+-0.3823 12.9090+-0.1107 might be 1.0104x faster indexed-properties-in-objects 3.3034+-0.1726 3.2601+-0.0902 might be 1.0133x faster infer-closure-const-then-mov-no-inline 4.3718+-0.0822 ? 4.3849+-0.0703 ? infer-closure-const-then-mov 18.1365+-0.5030 18.1300+-0.4558 infer-closure-const-then-put-to-scope-no-inline 14.0488+-0.7051 13.9247+-0.3924 infer-closure-const-then-put-to-scope 23.6790+-0.9061 ? 24.2090+-0.7551 ? might be 1.0224x slower infer-closure-const-then-reenter-no-inline 59.8206+-0.9234 ? 60.5299+-0.7635 ? might be 1.0119x slower infer-closure-const-then-reenter 24.7228+-0.9482 24.5040+-1.1792 infer-constant-global-property 3.9000+-0.0829 ? 3.9718+-0.1826 ? might be 1.0184x slower infer-constant-property 3.0505+-0.1302 ? 3.0654+-0.1384 ? infer-one-time-closure-ten-vars 10.0125+-0.6495 9.7241+-0.1060 might be 1.0297x faster infer-one-time-closure-two-vars 9.2574+-0.4412 9.0445+-0.4466 might be 1.0235x faster infer-one-time-closure 9.3733+-0.7991 9.2332+-0.3218 might be 1.0152x faster infer-one-time-deep-closure 15.5809+-0.7410 15.5396+-0.2505 inline-arguments-access 4.2664+-0.2417 ? 4.2964+-0.1481 ? inline-arguments-aliased-access 4.1955+-0.0324 ? 4.4154+-0.2295 ? might be 1.0524x slower inline-arguments-local-escape 4.2670+-0.1303 4.2104+-0.0300 might be 1.0134x faster inline-get-scoped-var 5.5340+-0.0734 5.4921+-0.0521 inlined-put-by-id-transition 11.3721+-0.3493 11.1802+-0.3768 might be 1.0172x faster inlined-put-by-val-with-string-transition 49.7865+-2.0319 49.4579+-0.7860 inlined-put-by-val-with-symbol-transition 51.8088+-2.1815 49.9350+-1.2345 might be 1.0375x faster int-or-other-abs-then-get-by-val 5.2753+-0.1442 ? 5.2773+-0.1477 ? int-or-other-abs-zero-then-get-by-val 18.0059+-0.7014 17.7626+-0.4369 might be 1.0137x faster int-or-other-add-then-get-by-val 4.8860+-0.0581 4.8213+-0.0656 might be 1.0134x faster int-or-other-add 5.8468+-0.0453 ? 5.9508+-0.3031 ? might be 1.0178x slower int-or-other-div-then-get-by-val 4.7253+-0.3506 4.5945+-0.2934 might be 1.0285x faster int-or-other-max-then-get-by-val 4.7632+-0.0523 ? 4.7838+-0.1696 ? int-or-other-min-then-get-by-val 4.6495+-0.0999 ? 4.6849+-0.2136 ? int-or-other-mod-then-get-by-val 4.1353+-0.1535 ? 4.1578+-0.1290 ? int-or-other-mul-then-get-by-val 4.4589+-0.2212 4.4196+-0.1332 int-or-other-neg-then-get-by-val 4.9431+-0.2930 4.8677+-0.0795 might be 1.0155x faster int-or-other-neg-zero-then-get-by-val 17.8174+-0.4325 ? 18.0362+-1.4307 ? might be 1.0123x slower int-or-other-sub-then-get-by-val 4.9561+-0.0361 ? 4.9623+-0.1127 ? int-or-other-sub 4.1461+-0.1934 4.1170+-0.1812 int-overflow-local 5.0000+-0.1112 4.9640+-0.1121 Int16Array-alloc-long-lived 50.1111+-0.5536 ! 51.6487+-0.9231 ! definitely 1.0307x slower Int16Array-bubble-sort-with-byteLength 20.6451+-0.2010 ? 20.8942+-0.9133 ? might be 1.0121x slower Int16Array-bubble-sort 20.6320+-0.3848 ? 20.7742+-0.6504 ? Int16Array-load-int-mul 1.8305+-0.0202 1.8006+-0.0396 might be 1.0166x faster Int16Array-to-Int32Array-set 59.7250+-1.9581 ^ 54.8234+-0.2546 ^ definitely 1.0894x faster Int32Array-alloc-large 20.6547+-1.0765 20.2289+-0.4359 might be 1.0211x faster Int32Array-alloc-long-lived 57.2497+-1.6250 57.0623+-1.0278 Int32Array-alloc 2.8663+-0.0683 2.7822+-0.1214 might be 1.0302x faster Int32Array-Int8Array-view-alloc 6.8538+-0.0579 6.8428+-0.2171 int52-spill 7.0753+-0.2298 ^ 5.9633+-0.2364 ^ definitely 1.1865x faster Int8Array-alloc-long-lived 44.5156+-0.7862 ? 44.7911+-1.3912 ? Int8Array-load-with-byteLength 3.7548+-0.1915 3.7448+-0.1218 Int8Array-load 3.7415+-0.0854 3.7092+-0.0957 integer-divide 12.4214+-0.3322 12.3060+-0.2410 integer-modulo 2.4464+-0.1152 2.4164+-0.0643 might be 1.0124x faster is-boolean-fold-tricky 4.5685+-0.1002 4.5348+-0.1208 is-boolean-fold 3.1818+-0.1174 3.1062+-0.0972 might be 1.0243x faster is-function-fold-tricky-internal-function 12.5412+-0.1729 ? 12.7519+-0.1307 ? might be 1.0168x slower is-function-fold-tricky 4.7045+-0.0866 ? 4.7490+-0.2708 ? is-function-fold 3.1379+-0.1166 ? 3.1688+-0.0732 ? is-number-fold-tricky 4.5408+-0.1934 ? 4.6791+-0.4842 ? might be 1.0304x slower is-number-fold 3.2087+-0.2268 3.1493+-0.0800 might be 1.0189x faster is-object-or-null-fold-functions 3.2827+-0.0424 3.1939+-0.0741 might be 1.0278x faster is-object-or-null-fold-less-tricky 4.7145+-0.2216 4.6673+-0.1208 might be 1.0101x faster is-object-or-null-fold-tricky 6.3561+-0.0769 ? 6.3878+-0.1057 ? is-object-or-null-fold 3.1882+-0.0938 3.1843+-0.1009 is-object-or-null-trickier-function 4.8642+-0.3407 4.7642+-0.1777 might be 1.0210x faster is-object-or-null-trickier-internal-function 12.6933+-0.1382 ? 12.8799+-0.2060 ? might be 1.0147x slower is-object-or-null-tricky-function 4.7595+-0.1521 4.6639+-0.0257 might be 1.0205x faster is-object-or-null-tricky-internal-function 9.5062+-0.0999 ? 9.6992+-0.2547 ? might be 1.0203x slower is-string-fold-tricky 4.6970+-0.2824 4.5242+-0.0561 might be 1.0382x faster is-string-fold 3.2393+-0.1817 3.1158+-0.1037 might be 1.0396x faster is-undefined-fold-tricky 3.8386+-0.1164 3.7880+-0.0770 might be 1.0133x faster is-undefined-fold 3.1922+-0.0854 3.1275+-0.1002 might be 1.0207x faster JSONP-negative-0 0.4273+-0.0479 0.4203+-0.0304 might be 1.0167x faster large-int-captured 4.6448+-0.0578 ? 4.6573+-0.1162 ? large-int-neg 16.3593+-0.5660 16.1483+-0.2342 might be 1.0131x faster large-int 14.5238+-0.4180 14.3864+-0.7203 load-varargs-elimination 24.6701+-0.9041 24.6332+-0.5119 logical-not-weird-types 3.8260+-0.1758 ? 3.8467+-0.1324 ? logical-not 4.9866+-0.1480 ? 5.0423+-0.1159 ? might be 1.0112x slower lots-of-fields 13.1637+-0.6287 13.0478+-0.3534 make-indexed-storage 3.4822+-0.1861 3.2277+-0.4082 might be 1.0789x faster make-rope-cse 3.9441+-0.3848 3.8337+-0.1134 might be 1.0288x faster marsaglia-larger-ints 40.7216+-1.7238 40.1223+-1.7715 might be 1.0149x faster marsaglia-osr-entry 22.4923+-0.9995 ? 22.5483+-0.6529 ? math-with-out-of-bounds-array-values 25.6999+-0.8259 25.2957+-0.2334 might be 1.0160x faster max-boolean 2.7995+-0.0563 2.7517+-0.0546 might be 1.0174x faster method-on-number 19.9904+-1.7007 18.0443+-0.3664 might be 1.1078x faster min-boolean 2.7819+-0.0497 ? 2.7956+-0.0467 ? minus-boolean-double 3.5607+-0.0946 3.4743+-0.0446 might be 1.0249x faster minus-boolean 2.6591+-0.1325 2.6483+-0.0839 misc-strict-eq 32.4924+-3.5796 32.0159+-3.0028 might be 1.0149x faster mod-boolean-double 11.6357+-0.2837 ? 11.7997+-0.3179 ? might be 1.0141x slower mod-boolean 8.4194+-0.2472 ? 8.4606+-0.1771 ? mul-boolean-double 4.2252+-0.2698 3.9756+-0.0251 might be 1.0628x faster mul-boolean 3.2581+-0.2272 3.2392+-0.1732 neg-boolean 3.5462+-0.0820 3.4638+-0.0220 might be 1.0238x faster negative-zero-divide 0.5679+-0.0178 0.5613+-0.0152 might be 1.0117x faster negative-zero-modulo 0.5367+-0.0395 ? 0.5542+-0.0144 ? might be 1.0326x slower negative-zero-negate 0.5461+-0.0243 0.5348+-0.0197 might be 1.0212x faster nested-function-parsing 53.4825+-0.5895 ? 55.4915+-2.2486 ? might be 1.0376x slower new-array-buffer-dead 105.4115+-1.4486 ? 105.4910+-1.3665 ? new-array-buffer-push 7.0153+-0.3693 7.0029+-0.4126 new-array-dead 16.0037+-2.9048 15.7688+-2.3425 might be 1.0149x faster new-array-push 4.6483+-0.6560 4.0933+-0.0889 might be 1.1356x faster no-inline-constructor 37.0369+-0.7957 ? 37.3873+-1.0544 ? number-test 3.4504+-0.0406 ? 3.5832+-0.3153 ? might be 1.0385x slower object-closure-call 5.7893+-0.1657 ? 5.8970+-0.2378 ? might be 1.0186x slower object-get-own-property-symbols-on-large-array 4.1937+-0.6400 4.1613+-0.1499 object-test 3.3323+-0.2390 3.2637+-0.1260 might be 1.0210x faster obvious-sink-pathology-taken 120.8185+-1.5840 120.3417+-1.0710 obvious-sink-pathology 114.6345+-0.7475 ? 115.4232+-1.4713 ? obviously-elidable-new-object 28.4069+-0.4826 28.3270+-0.4860 plus-boolean-arith 2.8033+-0.0787 2.7778+-0.0578 plus-boolean-double 3.5870+-0.2088 3.4578+-0.0284 might be 1.0374x faster plus-boolean 2.7230+-0.1541 2.7138+-0.1143 poly-chain-access-different-prototypes-simple 3.0156+-0.1310 ? 3.1214+-0.1683 ? might be 1.0351x slower poly-chain-access-different-prototypes 3.0392+-0.1047 2.9994+-0.1151 might be 1.0133x faster poly-chain-access-simpler 2.9808+-0.1751 ? 3.0050+-0.0628 ? poly-chain-access 3.0626+-0.2359 2.9369+-0.0809 might be 1.0428x faster poly-stricteq 64.2900+-1.2964 ? 64.9150+-1.0965 ? polymorphic-array-call 1.7390+-0.1261 1.6689+-0.1363 might be 1.0420x faster polymorphic-get-by-id 3.6646+-0.0424 ? 3.7247+-0.2357 ? might be 1.0164x slower polymorphic-put-by-id 34.2473+-0.1883 ? 34.4905+-0.4849 ? polymorphic-put-by-val-with-string 37.6884+-0.4289 ^ 36.8400+-0.1783 ^ definitely 1.0230x faster polymorphic-put-by-val-with-symbol 37.6736+-0.7501 37.1259+-0.7687 might be 1.0148x faster polymorphic-structure 14.3831+-0.2862 14.2723+-0.1975 polyvariant-monomorphic-get-by-id 9.3508+-1.0271 9.2292+-0.2551 might be 1.0132x faster proto-getter-access 8.4172+-0.2583 8.2905+-0.1788 might be 1.0153x faster prototype-access-with-mutating-prototype 5.8538+-0.4388 5.6856+-0.1247 might be 1.0296x faster put-by-id-replace-and-transition 9.9443+-0.6133 ? 10.0425+-0.1277 ? put-by-id-slightly-polymorphic 3.1880+-0.0698 ? 3.2445+-0.1065 ? might be 1.0177x slower put-by-id 12.7754+-0.5653 12.7548+-0.5233 put-by-val-direct 0.5440+-0.0434 ? 0.5465+-0.0342 ? put-by-val-large-index-blank-indexing-type 6.0854+-0.5725 5.7242+-0.3031 might be 1.0631x faster put-by-val-machine-int 2.8513+-0.1096 ? 2.9722+-0.0487 ? might be 1.0424x slower put-by-val-with-string-replace-and-transition 14.0892+-0.3870 ? 14.1378+-0.4285 ? put-by-val-with-string-slightly-polymorphic 4.1172+-0.1526 ? 4.1243+-0.1353 ? put-by-val-with-string 13.2828+-0.7961 13.1887+-0.1068 put-by-val-with-symbol-replace-and-transition 15.1232+-0.3965 ? 15.3246+-0.8333 ? might be 1.0133x slower put-by-val-with-symbol-slightly-polymorphic 4.5042+-0.1592 4.4055+-0.0971 might be 1.0224x faster put-by-val-with-symbol 13.3079+-0.5399 ? 13.5485+-0.6781 ? might be 1.0181x slower rare-osr-exit-on-local 15.2162+-0.8194 ? 15.6694+-0.3934 ? might be 1.0298x slower raytrace-with-empty-try-catch 7.4126+-0.3963 7.2865+-0.4548 might be 1.0173x faster raytrace-with-try-catch 12.9380+-0.3191 12.7415+-0.0996 might be 1.0154x faster register-pressure-from-osr 21.1192+-0.3398 20.9576+-0.2707 repeat-multi-get-by-offset 24.4703+-0.7645 24.4166+-0.5603 richards-empty-try-catch 86.6653+-0.6254 ? 87.2175+-0.5402 ? richards-try-catch 293.5030+-8.3243 289.2365+-2.8052 might be 1.0148x faster setter-prototype 7.8227+-0.8423 7.5460+-0.1657 might be 1.0367x faster setter 6.0943+-0.2381 6.0706+-0.1270 simple-activation-demo 26.9800+-0.7865 26.5283+-0.2217 might be 1.0170x faster simple-getter-access 11.1135+-0.3158 10.9407+-0.7576 might be 1.0158x faster simple-poly-call-nested 8.3320+-0.0845 8.2342+-0.2041 might be 1.0119x faster simple-poly-call 1.7044+-0.0139 1.6911+-0.0267 sin-boolean 18.3570+-1.1458 18.1685+-1.4489 might be 1.0104x faster singleton-scope 71.4401+-1.0655 71.3187+-0.8791 sink-function 10.0893+-0.4238 ? 10.2069+-0.4823 ? might be 1.0117x slower sink-huge-activation 16.5709+-0.2681 16.4665+-0.5565 sinkable-new-object-dag 66.4741+-1.5499 ? 67.0104+-2.0323 ? sinkable-new-object-taken 49.1165+-1.8383 48.8795+-1.3117 sinkable-new-object 37.7815+-1.3263 37.5649+-0.9259 slow-array-profile-convergence 3.2386+-0.0447 3.2117+-0.0909 slow-convergence 3.0211+-0.0439 ? 3.0322+-0.0178 ? slow-ternaries 19.2089+-0.6929 19.1749+-0.3642 sorting-benchmark 20.3919+-0.9630 20.3031+-0.7275 sparse-conditional 1.5666+-0.0997 1.5638+-0.0454 splice-to-remove 15.6326+-0.3584 15.4330+-0.4030 might be 1.0129x faster string-char-code-at 17.3076+-0.2936 ! 17.7476+-0.1043 ! definitely 1.0254x slower string-concat-object 2.2463+-0.1535 ? 2.2699+-0.0954 ? might be 1.0105x slower string-concat-pair-object 2.1340+-0.0757 ? 2.2959+-0.2539 ? might be 1.0758x slower string-concat-pair-simple 11.4960+-0.1870 ? 11.6417+-0.4701 ? might be 1.0127x slower string-concat-simple 12.5779+-1.6763 12.1675+-0.3080 might be 1.0337x faster string-cons-repeat 7.8746+-0.2173 ? 7.9310+-0.3336 ? string-cons-tower 7.7935+-0.1068 ? 8.5202+-0.9858 ? might be 1.0933x slower string-equality 18.4501+-0.3802 ? 18.5565+-0.1951 ? string-get-by-val-big-char 7.5883+-0.9454 7.3967+-0.3728 might be 1.0259x faster string-get-by-val-out-of-bounds-insane 3.9261+-0.0573 3.8402+-0.1725 might be 1.0224x faster string-get-by-val-out-of-bounds 5.5496+-0.0292 5.5259+-0.1037 string-get-by-val 3.7103+-0.2189 3.5330+-0.0611 might be 1.0502x faster string-hash 2.4297+-0.0568 2.4252+-0.0583 string-long-ident-equality 15.8350+-0.7400 15.3549+-0.4231 might be 1.0313x faster string-out-of-bounds 12.7220+-0.2615 12.5563+-0.1715 might be 1.0132x faster string-repeat-arith 34.7700+-2.4969 33.6559+-0.2574 might be 1.0331x faster string-sub 67.7055+-1.0242 67.3192+-0.9278 string-test 3.4236+-0.1179 3.3077+-0.0498 might be 1.0350x faster string-var-equality 35.0185+-1.4395 34.6046+-0.5842 might be 1.0120x faster structure-hoist-over-transitions 2.7006+-0.1134 ? 2.7698+-0.1446 ? might be 1.0256x slower substring-concat-weird 43.3233+-1.5255 ? 43.5641+-0.5669 ? substring-concat 47.9615+-2.0260 47.3721+-1.1287 might be 1.0124x faster substring 53.2199+-0.7079 52.3007+-0.6165 might be 1.0176x faster switch-char-constant 3.0599+-0.0565 ? 3.0928+-0.0947 ? might be 1.0107x slower switch-char 6.7961+-0.2081 ? 6.8708+-0.1205 ? might be 1.0110x slower switch-constant 11.2695+-0.5790 10.9592+-1.3659 might be 1.0283x faster switch-string-basic-big-var 21.6559+-0.7608 ? 21.9258+-0.8322 ? might be 1.0125x slower switch-string-basic-big 19.5056+-0.1955 ? 19.5961+-0.1398 ? switch-string-basic-var 15.8621+-0.3491 15.8612+-0.1784 switch-string-basic 15.5749+-0.7710 15.1874+-0.2280 might be 1.0255x faster switch-string-big-length-tower-var 21.2307+-0.6032 21.2057+-1.0033 switch-string-length-tower-var 16.4585+-0.2983 16.4043+-0.4979 switch-string-length-tower 13.3847+-0.2803 ? 13.8068+-0.6943 ? might be 1.0315x slower switch-string-short 13.3708+-0.2638 13.2650+-0.3052 switch 14.8984+-0.3345 14.5317+-1.4540 might be 1.0252x faster tear-off-arguments-simple 3.5200+-0.2066 ? 3.5240+-0.1396 ? tear-off-arguments 4.6174+-0.0824 ? 4.7900+-0.4052 ? might be 1.0374x slower temporal-structure 14.4860+-0.5101 14.3664+-0.4420 to-int32-boolean 14.5845+-0.5558 14.2489+-0.2298 might be 1.0236x faster try-catch-get-by-val-cloned-arguments 10.9355+-0.2868 10.8063+-0.0591 might be 1.0120x faster try-catch-get-by-val-direct-arguments 2.3252+-0.1122 2.3073+-0.0533 try-catch-get-by-val-scoped-arguments 5.1660+-0.5220 4.9234+-0.0993 might be 1.0493x faster typed-array-get-set-by-val-profiling 30.6602+-0.6639 30.4034+-0.3972 undefined-property-access 368.8419+-2.1077 ? 371.6929+-10.3460 ? undefined-test 3.4765+-0.0971 ? 3.5131+-0.2126 ? might be 1.0105x slower unprofiled-licm 13.1023+-0.5436 12.8304+-0.3969 might be 1.0212x faster v8-raytrace-with-empty-try-catch 39.1846+-1.9104 39.1163+-1.3263 v8-raytrace-with-try-catch 84.7640+-1.5016 84.1979+-2.3367 varargs-call 14.8485+-0.5551 14.8160+-0.3080 varargs-construct-inline 25.7678+-1.1928 ? 26.3218+-1.4887 ? might be 1.0215x slower varargs-construct 23.4676+-0.4067 ? 23.5732+-0.6478 ? varargs-inline 10.0778+-0.4194 9.9113+-0.2884 might be 1.0168x faster varargs-strict-mode 11.5723+-0.5768 11.3988+-0.2890 might be 1.0152x faster varargs 11.2032+-0.3292 ? 11.2336+-0.2345 ? weird-inlining-const-prop 2.7123+-0.1138 2.6500+-0.0744 might be 1.0235x faster <geometric> 9.6258+-0.0370 9.5817+-0.0193 might be 1.0046x faster Baseline Patch AsmBench: bigfib.cpp 528.6077+-5.8512 526.9321+-1.9781 cray.c 454.7429+-2.3169 453.7889+-1.3524 dry.c 533.5659+-25.8945 524.8246+-1.5525 might be 1.0167x faster FloatMM.c 766.2415+-2.4583 ? 767.6397+-1.7699 ? gcc-loops.cpp 4195.3959+-8.0506 4194.5600+-23.7647 n-body.c 1042.6345+-2.5563 ? 1046.1790+-5.5749 ? Quicksort.c 447.5541+-4.0928 ? 449.4483+-11.1856 ? stepanov_container.cpp 3898.8187+-12.1724 3896.7000+-36.1758 Towers.c 268.0255+-1.4031 ? 268.6580+-0.8113 ? <geometric> 836.7112+-6.4739 835.7311+-1.5542 might be 1.0012x faster Baseline Patch CompressionBench: huffman 66.0045+-0.1760 65.5847+-2.3409 arithmetic-simple 357.6401+-4.5760 355.4332+-2.5011 arithmetic-precise 288.3695+-2.0667 ? 290.6862+-1.7567 ? arithmetic-complex-precise 289.5615+-3.2158 ? 289.7255+-2.5608 ? arithmetic-precise-order-0 365.7117+-2.3008 365.3111+-3.5598 arithmetic-precise-order-1 344.3091+-5.9616 342.2772+-4.6974 arithmetic-precise-order-2 400.9247+-0.9573 ? 411.2380+-10.1286 ? might be 1.0257x slower arithmetic-simple-order-1 410.2511+-3.1299 ? 411.2682+-3.2862 ? arithmetic-simple-order-2 469.1277+-3.9170 468.9515+-3.1960 lz-string 319.1978+-3.5258 ^ 309.2590+-5.6073 ^ definitely 1.0321x faster <geometric> 301.0373+-0.5769 300.5755+-2.1723 might be 1.0015x faster Baseline Patch Geomean of preferred means: <scaled-result> 60.0415+-0.1598 59.9754+-0.2026 might be 1.0011x faster ===== ~/Internal>
Created attachment 262299 [details] Patch
Attachment 262299 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:143: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:145: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:146: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:1720: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:1720: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:1721: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:1729: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:1733: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1146: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1188: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1233: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1278: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] Total errors found: 12 in 43 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 262306 [details] Patch
Attachment 262306 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:143: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:145: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/dfg/DFGPlan.cpp:146: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:1720: Code inside a namespace should not be indented. [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:1720: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:1721: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:1729: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:1733: Wrong number of spaces before statement. (expected: 8) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1146: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1188: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1233: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.h:1278: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] Total errors found: 12 in 43 files If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 262306 [details] Patch LGTM.
Committed r190450: <http://trac.webkit.org/changeset/190450>
Rolled out.
Committed r190522: <http://trac.webkit.org/changeset/190522>
This caused a lot of leaks on the leaks bot. Will see if I can easily roll out. Oct 02 14:46 190522 failure #66 Failed 30774 total leaks found for a total of 6,394,560 bytes. 298 unique leaks found. 4 failures 2 new passes Oct 02 14:30 190521 failure #65 Failed 3823 total leaks found for a total of 503,120 bytes. 139 unique leaks found. 3 failures 2 new passes
Re-opened since this is blocked by bug 149787
Rolled out in r190546.
Committed r190589: <http://trac.webkit.org/changeset/190589>
This did address some leaks, but we are still getting an order of magnitude more than without the patch. There are also very frequent crashes that look related, and that I didn't see before. Oct 05 16:56 190589 failure #107 Failed 6495 total leaks found for a total of 2,603,376 bytes. 189 unique leaks found. 2 new passes Oct 05 16:40 190587 failure #106 Failed 3367 total leaks found for a total of 424,896 bytes. 146 unique leaks found. 2 new passes https://build.webkit.org/results/Apple%20Mavericks%20Debug%20WK1%20(Tests)/r190604%20(16063)/fast/selectors/nth-last-child-of-selector-list-ending-with-never-matching-selectors-crash-log.txt https://build.webkit.org/results/Apple%20Yosemite%20Debug%20WK2%20(Tests)/r190602%20(7400)/js/dom/string-split-conformance-crash-log.txt https://build.webkit.org/results/Apple%20Yosemite%20Debug%20WK2%20(Tests)/r190604%20(7401)/imported/w3c/indexeddb/idbobjectstore_openCursor-crash-log.txt Thread 0 Crashed:: Dispatch queue: com.apple.main-thread 0 com.apple.JavaScriptCore 0x0000000117e20827 WTFCrash + 39 1 com.apple.JavaScriptCore 0x00000001179e815a JSC::JITToDFGDeferredCompilationCallback::compilationDidComplete(JSC::CodeBlock*, JSC::CodeBlock*, JSC::CompilationResult) + 154 2 com.apple.JavaScriptCore 0x0000000117699f05 JSC::DFG::Plan::finalizeAndNotifyCallback() + 101 3 com.apple.JavaScriptCore 0x000000011779a361 JSC::DFG::Worklist::completeAllReadyPlansForVM(JSC::VM&, JSC::DFG::CompilationKey) + 305 4 com.apple.JavaScriptCore 0x00000001179cb292 operationOptimize + 1058
Re-opened since this is blocked by bug 149833
Seems even more certain to have caused crashes on perf testers: Thread 10 Crashed:: WTF Parallel Helper Thread 0 com.apple.JavaScriptCore 0x000000010e601e6a JSC::speculationFromCell(JSC::JSCell*) + 58 (SpeculatedType.cpp:363) 1 com.apple.JavaScriptCore 0x000000010e0554c4 JSC::CodeBlock::updateAllPredictionsAndCountLiveness(unsigned int&, unsigned int&) + 276 (CodeBlock.cpp:3746) 2 com.apple.JavaScriptCore 0x000000010e052127 JSC::CodeBlock::stronglyVisitStrongReferences(JSC::SlotVisitor&) + 567 (CodeBlock.cpp:2883) 3 com.apple.JavaScriptCore 0x000000010e051ea6 JSC::CodeBlock::visitChildren(JSC::SlotVisitor&) + 342 (CodeBlock.cpp:2379) 4 com.apple.JavaScriptCore 0x000000010e5fe045 JSC::SlotVisitor::drain() + 277 (SlotVisitor.cpp:182) 5 com.apple.JavaScriptCore 0x000000010e5fe248 JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode) + 104 (SlotVisitor.cpp:237) 6 com.apple.JavaScriptCore 0x000000010e30eb4e WTF::SharedTaskFunctor<JSC::Heap::markRoots(double, void*, void*, int (&) [37])::$_0>::run() + 286 (Heap.cpp:564) 7 com.apple.JavaScriptCore 0x000000010e69d67c WTF::ParallelHelperClient::runTask(WTF::RefPtr<WTF::SharedTask>) + 44 (ParallelHelperPool.cpp:114)
Actually no, I think that this stack trace is from bug 149821. These landed a bit too close together to confidently tell which is to blame, but it seems likely that Dromaeo/cssquery-jquery.html and Dromaeo/cssquery-dojo.html started to fail (not crash) after this patch. https://build.webkit.org/builders/Apple%20Mavericks%20Release%20WK2%20(Perf)?numbuilds=50 Oct 05 17:23 190589 failure #5937 Failed 2 perf tests failed Oct 05 15:04 190579 success #5936 Build successful https://build.webkit.org/builders/Apple%20Yosemite%20Release%20WK2%20(Perf)?numbuilds=50 Oct 05 19:13 190597 failure #3075 Failed 1 perf tests failed Oct 05 17:01 190587 success #3074 Build successful https://build.webkit.org/builders/Apple%20El%20Capitan%20Release%20WK2%20(Perf)?numbuilds=50 Oct 05 19:15 190597 failure #46 Failed 1 perf tests failed Oct 05 17:08 190591 failure #45 Failed 1 perf tests failed Oct 05 14:58 190579 success #44 Build successful
> This did address some leaks, but we are still getting an order of magnitude more than without the patch. Crazy. The leaks bot clearly shows CodeBlock-related leaks, even though I saw none locally.
Comment on attachment 262306 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=262306&action=review > Source/JavaScriptCore/bytecode/CodeBlock.cpp:3107 > + return nullptr Missing semicolon (for when this relands).
Committed r190694: <http://trac.webkit.org/changeset/190694>
Reverted in <http://trac.webkit.org/changeset/190809>.
Committed r190827: <http://trac.webkit.org/changeset/190827>