JavaScriptCore should discard optimized code after some time
Created attachment 260974 [details] Patch
Seems performance neutral. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on Geoffrey-Garens-Mac-Pro (MacPro6,1). VMs tested: "Base" at /Volumes/Big/ggaren/OpenSource/WebKitBuild/Release/jsc (r189584) "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. Base Patch SunSpider: 3d-cube 6.2373+-0.6998 6.0918+-0.5057 might be 1.0239x faster 3d-morph 6.4552+-0.5559 6.3865+-0.2720 might be 1.0108x faster 3d-raytrace 7.0774+-0.2845 ? 7.2231+-0.3546 ? might be 1.0206x slower access-binary-trees 2.5340+-0.2187 2.4935+-0.1033 might be 1.0163x faster access-fannkuch 6.6491+-0.1683 ? 6.7792+-0.1741 ? might be 1.0196x slower access-nbody 3.3130+-0.1320 3.3050+-0.1610 access-nsieve 3.8568+-0.1119 ? 3.9174+-0.3181 ? might be 1.0157x slower bitops-3bit-bits-in-byte 1.5070+-0.0284 ? 1.5217+-0.0832 ? bitops-bits-in-byte 3.9033+-0.0874 3.8508+-0.1092 might be 1.0136x faster bitops-bitwise-and 2.3863+-0.0722 ? 2.4268+-0.0485 ? might be 1.0170x slower bitops-nsieve-bits 3.4908+-0.0414 ! 3.7028+-0.0856 ! definitely 1.0607x slower controlflow-recursive 2.9725+-0.1339 2.8986+-0.0561 might be 1.0255x faster crypto-aes 5.0654+-0.1232 ? 5.0667+-0.1937 ? crypto-md5 3.1998+-0.1150 3.1823+-0.2156 crypto-sha1 2.9482+-0.0862 ? 2.9938+-0.0787 ? might be 1.0154x slower date-format-tofte 10.2503+-0.1374 10.2407+-0.1787 date-format-xparb 5.9922+-0.1604 ? 6.0702+-0.3438 ? might be 1.0130x slower math-cordic 3.5610+-0.0136 ? 3.6011+-0.1595 ? might be 1.0113x slower math-partial-sums 6.1277+-0.0955 6.0555+-0.1174 might be 1.0119x faster math-spectral-norm 2.4400+-0.2233 2.3893+-0.0634 might be 1.0212x faster regexp-dna 7.5459+-0.1979 ? 7.5820+-0.1625 ? string-base64 5.2004+-0.0721 ? 5.2903+-0.2524 ? might be 1.0173x slower string-fasta 6.9998+-0.3947 ? 7.0070+-0.2213 ? string-tagcloud 9.4146+-0.1670 ? 9.5873+-0.3361 ? might be 1.0183x slower string-unpack-code 21.7823+-0.4895 21.4761+-0.4036 might be 1.0143x faster string-validate-input 5.2923+-0.1939 5.1880+-0.1313 might be 1.0201x faster <arithmetic> 5.6232+-0.0523 ? 5.6280+-0.0212 ? might be 1.0009x slower Base Patch LongSpider: 3d-cube 948.2208+-3.5460 ! 954.2710+-1.8615 ! definitely 1.0064x slower 3d-morph 1629.8265+-4.5521 ? 1635.0995+-5.5715 ? 3d-raytrace 745.0506+-12.0808 731.1832+-19.6636 might be 1.0190x faster access-binary-trees 1009.4177+-2.1948 1009.0797+-7.9027 access-fannkuch 356.6237+-20.6786 ? 359.5458+-6.8134 ? access-nbody 629.9277+-1.3096 ? 631.1139+-3.0141 ? access-nsieve 456.8562+-6.7241 456.4175+-5.9906 bitops-3bit-bits-in-byte 41.9263+-0.7383 41.8788+-0.1513 bitops-bits-in-byte 93.4480+-1.8670 ? 94.0328+-2.3434 ? bitops-nsieve-bits 461.6011+-3.7435 460.2842+-5.2090 controlflow-recursive 504.9008+-4.3465 503.0662+-2.5977 crypto-aes 658.4852+-6.1292 ! 684.1891+-7.0355 ! definitely 1.0390x slower crypto-md5 540.2925+-1.1328 ? 552.6625+-47.9564 ? might be 1.0229x slower crypto-sha1 760.6544+-11.9878 ? 764.1653+-2.0718 ? date-format-tofte 770.2838+-21.2322 ? 806.0181+-42.6851 ? might be 1.0464x slower date-format-xparb 849.3405+-24.4395 845.8824+-22.7552 hash-map 192.5185+-14.1186 188.5817+-4.5427 might be 1.0209x faster math-cordic 564.9545+-3.1905 ? 565.1143+-2.6668 ? math-partial-sums 637.1646+-3.6162 632.9369+-2.8693 math-spectral-norm 601.4333+-3.3690 ? 601.8270+-4.6640 ? string-base64 421.3780+-2.5806 420.9502+-3.0048 string-fasta 426.9791+-6.4953 ? 431.3574+-4.6062 ? might be 1.0103x slower string-tagcloud 211.5512+-7.9018 211.2122+-3.9881 <geometric> 471.2531+-3.7056 ? 473.0172+-2.3338 ? might be 1.0037x slower Base Patch V8Spider: crypto 58.2097+-0.6847 58.0803+-0.5660 deltablue 77.3356+-1.3123 76.9157+-1.9631 earley-boyer 48.6772+-0.5288 48.5846+-0.9942 raytrace 34.3395+-2.9003 33.5005+-0.7629 might be 1.0250x faster regexp 77.2864+-0.2377 ? 77.8897+-1.2145 ? richards 66.8525+-2.7246 65.7289+-0.7452 might be 1.0171x faster splay 41.3040+-2.4085 ? 42.1997+-5.3736 ? might be 1.0217x slower <geometric> 55.4076+-0.7865 55.2283+-1.0001 might be 1.0032x faster Base Patch Octane: encrypt 0.23409+-0.00612 0.23326+-0.00528 decrypt 3.95816+-0.13177 ? 4.12333+-0.27060 ? might be 1.0417x slower deltablue x2 0.19946+-0.00486 ? 0.20553+-0.01411 ? might be 1.0305x slower earley 0.36717+-0.00167 ! 0.37233+-0.00259 ! definitely 1.0141x slower boyer 5.48428+-0.12144 ? 5.56320+-0.01901 ? might be 1.0144x slower navier-stokes x2 5.47994+-0.01630 5.46790+-0.00738 raytrace x2 1.26255+-0.08325 ? 1.33305+-0.12293 ? might be 1.0558x slower richards x2 0.12981+-0.00145 ? 0.12984+-0.00070 ? splay x2 0.37700+-0.00468 0.37496+-0.00241 regexp x2 28.75323+-0.27899 ? 28.86369+-0.31549 ? pdfjs x2 44.65081+-0.34340 ? 44.82206+-0.09845 ? mandreel x2 51.61221+-0.22120 51.50935+-0.36027 gbemu x2 50.04648+-4.62259 48.81325+-4.94189 might be 1.0253x faster closure 0.76864+-0.00280 0.76804+-0.00432 jquery 9.64820+-0.10518 9.64324+-0.09229 box2d x2 13.48822+-0.20810 13.39042+-0.05116 zlib x2 431.98319+-32.10724 ? 444.29810+-8.06167 ? might be 1.0285x slower typescript x2 896.21698+-12.58872 891.41260+-17.48438 <geometric> 6.95822+-0.13383 ? 7.00655+-0.03539 ? might be 1.0069x slower Base Patch Kraken: ai-astar 292.406+-5.995 ? 296.105+-7.487 ? might be 1.0127x slower audio-beat-detection 63.339+-2.650 ? 63.389+-0.878 ? audio-dft 112.648+-0.466 112.370+-1.076 audio-fft 42.341+-1.827 41.859+-0.479 might be 1.0115x faster audio-oscillator 74.727+-0.311 ? 74.835+-0.461 ? imaging-darkroom 73.143+-0.605 ? 73.244+-0.466 ? imaging-desaturate 65.622+-0.597 ? 66.083+-0.246 ? imaging-gaussian-blur 110.054+-1.044 ? 110.892+-0.787 ? json-parse-financial 48.437+-0.348 ? 48.912+-1.294 ? json-stringify-tinderbox 29.625+-0.609 ? 29.689+-0.435 ? stanford-crypto-aes 49.640+-2.558 48.840+-0.351 might be 1.0164x faster stanford-crypto-ccm 46.026+-2.410 ? 47.207+-2.503 ? might be 1.0257x slower stanford-crypto-pbkdf2 109.024+-8.086 106.833+-0.944 might be 1.0205x faster stanford-crypto-sha256-iterative 43.832+-1.966 43.548+-0.650 <arithmetic> 82.919+-1.092 ? 83.129+-0.352 ? might be 1.0025x slower Base Patch JSRegress: abc-forward-loop-equal 48.1035+-0.5561 ? 48.2924+-1.0393 ? abc-postfix-backward-loop 48.0013+-0.8086 47.8587+-0.6556 abc-simple-backward-loop 47.6072+-0.8286 ? 47.7894+-0.3806 ? abc-simple-forward-loop 47.5130+-0.3448 ? 47.9283+-0.7418 ? abc-skippy-loop 33.0482+-0.2891 32.8343+-0.7428 abs-boolean 2.9927+-0.1647 ? 2.9993+-0.1007 ? adapt-to-double-divide 16.7838+-0.3599 16.6985+-0.3171 aliased-arguments-getbyval 1.4738+-0.1747 ? 1.4794+-0.1304 ? allocate-big-object 2.6908+-0.0736 ? 2.7150+-0.0954 ? arguments-named-and-reflective 11.3193+-0.2797 11.0587+-0.2759 might be 1.0236x faster arguments-out-of-bounds 12.1168+-0.2314 ? 12.6416+-0.5029 ? might be 1.0433x slower arguments-strict-mode 9.7892+-0.3217 ? 9.8463+-0.5311 ? arguments 8.8338+-0.3951 8.8176+-0.4749 arity-mismatch-inlining 1.1785+-0.0632 1.1765+-0.0791 array-access-polymorphic-structure 6.7513+-0.3880 6.6359+-0.2965 might be 1.0174x faster array-nonarray-polymorhpic-access 32.2955+-1.1367 32.2368+-1.8580 array-prototype-every 90.6672+-1.1731 ^ 87.3447+-0.7376 ^ definitely 1.0380x faster array-prototype-forEach 87.8310+-0.6259 ^ 85.7389+-0.9604 ^ definitely 1.0244x faster array-prototype-map 94.6243+-3.8122 ? 95.2415+-3.5741 ? array-prototype-reduce 84.8847+-0.9273 ^ 83.1986+-0.4480 ^ definitely 1.0203x faster array-prototype-reduceRight 85.2482+-3.5397 83.5174+-1.7338 might be 1.0207x faster array-prototype-some 90.0785+-0.9885 ^ 87.6427+-0.8578 ^ definitely 1.0278x faster array-splice-contiguous 27.2339+-0.7555 ? 27.7100+-1.0436 ? might be 1.0175x slower array-with-double-add 4.5016+-0.1538 4.4897+-0.0679 array-with-double-increment 3.5605+-0.1503 ? 3.6738+-0.2240 ? might be 1.0318x slower array-with-double-mul-add 5.3488+-0.0276 ? 5.4230+-0.1689 ? might be 1.0139x slower array-with-double-sum 3.6185+-0.0872 ? 3.6650+-0.2377 ? might be 1.0129x slower array-with-int32-add-sub 7.5129+-0.2097 7.3766+-0.1579 might be 1.0185x faster array-with-int32-or-double-sum 3.7282+-0.0855 3.7060+-0.0880 ArrayBuffer-DataView-alloc-large-long-lived 32.4965+-0.7169 32.3425+-0.4192 ArrayBuffer-DataView-alloc-long-lived 13.8568+-0.6737 13.8319+-0.1462 ArrayBuffer-Int32Array-byteOffset 4.1959+-0.2235 ? 4.2175+-0.1405 ? ArrayBuffer-Int8Array-alloc-large-long-lived 39.1814+-0.7421 ? 40.2591+-0.3356 ? might be 1.0275x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 22.8585+-0.8327 ? 22.9091+-0.3903 ? ArrayBuffer-Int8Array-alloc-long-lived 13.7353+-0.3880 ? 13.8456+-0.6961 ? ArrayBuffer-Int8Array-alloc 10.6022+-0.6779 ? 10.8674+-0.2719 ? might be 1.0250x slower arrowfunction-call 12.2315+-0.3184 ? 12.3964+-0.1959 ? might be 1.0135x slower asmjs_bool_bug 8.3838+-0.1533 ? 8.4919+-0.2304 ? might be 1.0129x slower assign-custom-setter-polymorphic 3.2315+-0.2413 ? 3.3799+-0.1348 ? might be 1.0459x slower assign-custom-setter 4.4169+-0.2202 ! 4.7983+-0.1085 ! definitely 1.0864x slower basic-set 9.8530+-0.3592 ? 9.9135+-0.4781 ? big-int-mul 4.2476+-0.0409 ? 4.3080+-0.2400 ? might be 1.0142x slower boolean-test 3.4380+-0.0488 ? 3.4860+-0.1120 ? might be 1.0140x slower branch-fold 4.2503+-0.1265 4.2258+-0.1025 branch-on-string-as-boolean 18.8042+-0.2395 18.5748+-0.3348 might be 1.0123x faster by-val-generic 2.9458+-0.1551 2.8915+-0.1721 might be 1.0188x faster call-spread-apply 31.0847+-0.6128 ? 31.1466+-0.6160 ? call-spread-call 25.4944+-0.3940 ? 25.6371+-0.7728 ? captured-assignments 0.6633+-0.0708 ? 0.6989+-0.0173 ? might be 1.0536x slower cast-int-to-double 5.9068+-0.1977 ? 6.1335+-0.4189 ? might be 1.0384x slower cell-argument 7.4530+-0.2797 7.1038+-0.1011 might be 1.0492x faster cfg-simplify 3.2186+-0.2275 3.1664+-0.0892 might be 1.0165x faster chain-getter-access 8.5395+-0.7279 8.5180+-0.1890 cmpeq-obj-to-obj-other 11.3019+-0.3684 11.1620+-0.2548 might be 1.0125x faster constant-test 5.4701+-0.2929 ? 5.5930+-0.3335 ? might be 1.0225x slower create-lots-of-functions 11.5002+-0.4423 11.2812+-0.4050 might be 1.0194x faster cse-new-array-buffer 2.6204+-0.0989 ? 2.6536+-0.1842 ? might be 1.0127x slower cse-new-array 2.7009+-0.1032 ? 2.7596+-0.0704 ? might be 1.0217x slower DataView-custom-properties 38.5078+-1.1626 ? 38.5394+-1.7292 ? delay-tear-off-arguments-strictmode 14.3003+-0.4223 ? 14.5397+-0.3416 ? might be 1.0167x slower deltablue-varargs 223.1760+-4.3511 ? 234.9409+-16.3981 ? might be 1.0527x slower destructuring-arguments 187.9759+-1.2313 ? 190.3360+-2.2611 ? might be 1.0126x slower destructuring-parameters-overridden-by-function 0.7146+-0.0277 0.6899+-0.0176 might be 1.0358x faster destructuring-swap 5.7375+-0.1178 5.7073+-0.4247 direct-arguments-getbyval 1.4429+-0.1372 1.4395+-0.0783 div-boolean-double 5.7106+-0.2121 ? 5.7683+-0.2591 ? might be 1.0101x slower div-boolean 8.5978+-0.3652 8.4628+-0.3403 might be 1.0160x faster double-get-by-val-out-of-bounds 4.8203+-0.0944 ? 4.8655+-0.1121 ? double-pollution-getbyval 9.4998+-0.2149 9.3795+-0.0371 might be 1.0128x faster double-pollution-putbyoffset 4.5532+-0.2151 ? 4.6624+-0.2673 ? might be 1.0240x slower double-real-use 30.7264+-0.7680 ? 31.3766+-1.1779 ? might be 1.0212x slower double-to-int32-typed-array-no-inline 2.7514+-0.0644 ? 2.7988+-0.0404 ? might be 1.0172x slower double-to-int32-typed-array 2.4935+-0.0339 ? 2.5008+-0.0269 ? double-to-uint32-typed-array-no-inline 2.8384+-0.0736 2.8302+-0.1239 double-to-uint32-typed-array 2.5436+-0.2247 2.5090+-0.0900 might be 1.0138x faster elidable-new-object-dag 40.2050+-0.7183 39.6685+-0.8250 might be 1.0135x faster elidable-new-object-roflcopter 41.5924+-2.3977 40.3585+-0.2329 might be 1.0306x faster elidable-new-object-then-call 32.4847+-0.7504 ? 32.6133+-1.0561 ? elidable-new-object-tree 44.1786+-1.5786 ? 44.6307+-1.3642 ? might be 1.0102x slower empty-string-plus-int 5.7098+-0.2421 5.4800+-0.0760 might be 1.0419x faster emscripten-cube2hash 40.6042+-0.7137 ? 40.8475+-0.3289 ? exit-length-on-plain-object 14.6960+-1.0210 14.4001+-0.6074 might be 1.0205x faster external-arguments-getbyval 1.6146+-0.1492 ? 1.6296+-0.1953 ? external-arguments-putbyval 2.5869+-0.1000 2.5798+-0.0944 fixed-typed-array-storage-var-index 1.5748+-0.0273 ? 1.5806+-0.0486 ? fixed-typed-array-storage 1.2333+-0.0361 1.2120+-0.0101 might be 1.0176x faster Float32Array-matrix-mult 5.0604+-0.1371 ? 5.1265+-0.1525 ? might be 1.0131x slower Float32Array-to-Float64Array-set 55.5769+-0.4961 ! 60.3507+-3.0429 ! definitely 1.0859x slower Float64Array-alloc-long-lived 87.2200+-1.3251 ? 88.1776+-0.8644 ? might be 1.0110x slower Float64Array-to-Int16Array-set 71.9532+-0.6098 ! 75.4155+-1.0384 ! definitely 1.0481x slower fold-double-to-int 15.0355+-0.6995 14.8770+-0.1703 might be 1.0107x faster fold-get-by-id-to-multi-get-by-offset-rare-int 10.0189+-0.1284 9.7164+-0.4659 might be 1.0311x faster fold-get-by-id-to-multi-get-by-offset 8.3186+-0.0879 ! 8.6828+-0.2584 ! definitely 1.0438x slower fold-multi-get-by-offset-to-get-by-offset 8.0441+-0.2120 7.7456+-0.8229 might be 1.0385x faster fold-multi-get-by-offset-to-poly-get-by-offset 7.9437+-0.4780 ? 8.0733+-0.0665 ? might be 1.0163x slower fold-multi-put-by-offset-to-poly-put-by-offset 8.6274+-0.2882 ? 8.7487+-0.1560 ? might be 1.0141x slower fold-multi-put-by-offset-to-put-by-offset 6.2975+-0.0354 6.2590+-0.0789 fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 11.5766+-1.0997 ? 12.2416+-0.3844 ? might be 1.0574x slower fold-put-by-id-to-multi-put-by-offset 9.2458+-0.1445 9.1170+-0.0616 might be 1.0141x faster fold-put-by-val-with-string-to-multi-put-by-offset 10.2343+-0.7437 10.1255+-0.6364 might be 1.0107x faster fold-put-by-val-with-symbol-to-multi-put-by-offset 10.5015+-0.2209 10.3148+-0.1339 might be 1.0181x faster fold-put-structure 5.6913+-0.0697 5.6516+-0.1104 for-of-iterate-array-entries 12.8765+-0.5243 ? 13.1497+-0.3388 ? might be 1.0212x slower for-of-iterate-array-keys 4.1752+-0.3003 4.0663+-0.0699 might be 1.0268x faster for-of-iterate-array-values 4.2271+-0.2269 4.1605+-0.2083 might be 1.0160x faster fround 17.3673+-0.3637 17.0823+-0.5189 might be 1.0167x faster ftl-library-inlining-dataview 68.0703+-1.2451 67.6883+-0.3754 ftl-library-inlining 87.8853+-10.6803 87.7934+-9.9843 function-call 12.5859+-0.6688 ? 12.7795+-0.3634 ? might be 1.0154x slower function-dot-apply 2.6051+-0.0469 2.5950+-0.0448 function-test 3.2193+-0.0786 ? 3.2261+-0.1740 ? function-with-eval 112.6788+-3.5921 ? 113.9485+-5.9971 ? might be 1.0113x slower gcse-poly-get-less-obvious 22.9280+-3.0578 ? 23.6687+-4.1118 ? might be 1.0323x slower gcse-poly-get 25.4863+-1.7762 25.1368+-1.2359 might be 1.0139x faster gcse 4.7037+-0.0821 ? 4.7100+-0.0861 ? get-by-id-bimorphic-check-structure-elimination-simple 3.0352+-0.1894 2.9593+-0.0199 might be 1.0257x faster get-by-id-bimorphic-check-structure-elimination 6.5380+-0.2632 ? 6.6253+-0.2399 ? might be 1.0134x slower get-by-id-chain-from-try-block 6.0472+-0.1046 ? 6.0513+-0.0810 ? get-by-id-check-structure-elimination 5.4367+-0.0847 ? 5.4952+-0.1171 ? might be 1.0108x slower get-by-id-proto-or-self 19.8561+-3.9997 18.1194+-2.3369 might be 1.0958x faster get-by-id-quadmorphic-check-structure-elimination-simple 3.5529+-0.2508 ? 3.6356+-0.1542 ? might be 1.0233x slower get-by-id-self-or-proto 16.8647+-0.5897 ? 17.5812+-0.3535 ? might be 1.0425x slower get-by-val-out-of-bounds 4.7416+-0.1714 ? 4.7797+-0.1559 ? get-by-val-with-string-bimorphic-check-structure-elimination-simple 3.1897+-0.1960 3.1546+-0.0187 might be 1.0111x faster get-by-val-with-string-bimorphic-check-structure-elimination 7.6027+-0.3610 7.5794+-0.3607 get-by-val-with-string-chain-from-try-block 6.1221+-0.1064 ? 6.1418+-0.1981 ? get-by-val-with-string-check-structure-elimination 6.6045+-0.1906 6.5778+-0.4556 get-by-val-with-string-proto-or-self 16.8469+-0.9328 ? 16.9870+-0.6625 ? get-by-val-with-string-quadmorphic-check-structure-elimination-simple 3.9755+-0.0743 3.9297+-0.0649 might be 1.0116x faster get-by-val-with-string-self-or-proto 18.6971+-3.3760 18.6467+-4.7651 get-by-val-with-symbol-bimorphic-check-structure-elimination-simple 4.0092+-0.1205 ? 4.0128+-0.1225 ? get-by-val-with-symbol-bimorphic-check-structure-elimination 14.9407+-0.5033 14.6888+-0.2942 might be 1.0172x faster get-by-val-with-symbol-chain-from-try-block 6.2743+-0.3345 6.1370+-0.0784 might be 1.0224x faster get-by-val-with-symbol-check-structure-elimination 13.8293+-0.2424 ? 14.0618+-0.6038 ? might be 1.0168x slower get-by-val-with-symbol-proto-or-self 17.6307+-1.8650 16.6982+-1.0487 might be 1.0558x faster get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple 4.6359+-0.0676 4.6089+-0.0569 get-by-val-with-symbol-self-or-proto 18.9074+-3.4554 ? 19.7935+-5.2944 ? might be 1.0469x slower get_callee_monomorphic 2.7129+-0.1072 2.6530+-0.1890 might be 1.0226x faster get_callee_polymorphic 3.8300+-0.2907 3.7509+-0.0909 might be 1.0211x faster getter-no-activation 5.4818+-0.1841 ? 5.5209+-0.1138 ? getter-prototype 12.4570+-0.3733 ? 12.5677+-0.2328 ? getter-richards 105.8670+-6.9694 ? 109.2382+-1.4403 ? might be 1.0318x slower getter 5.8940+-0.0644 ? 5.9675+-0.1726 ? might be 1.0125x slower global-object-access-with-mutating-structure 6.7225+-0.5886 ? 6.7460+-0.5548 ? global-var-const-infer-fire-from-opt 1.0620+-0.1053 1.0029+-0.0591 might be 1.0589x faster global-var-const-infer 0.9444+-0.1326 ? 0.9679+-0.2018 ? might be 1.0249x slower hard-overflow-check-equal 52.9185+-0.5200 52.8524+-0.7410 hard-overflow-check 52.6165+-0.4986 ? 52.8942+-0.3932 ? HashMap-put-get-iterate-keys 29.5360+-0.4139 29.5180+-0.2162 HashMap-put-get-iterate 29.5767+-0.4430 ? 29.6217+-0.6966 ? HashMap-string-put-get-iterate 28.2620+-0.5061 ? 28.8810+-1.0779 ? might be 1.0219x slower hoist-make-rope 9.8349+-0.9167 9.7319+-0.4388 might be 1.0106x faster hoist-poly-check-structure-effectful-loop 5.7693+-0.0739 5.6109+-0.3129 might be 1.0282x faster hoist-poly-check-structure 3.9210+-0.1325 ? 3.9910+-0.0457 ? might be 1.0179x slower imul-double-only 6.7025+-0.0828 ? 6.8994+-0.3171 ? might be 1.0294x slower imul-int-only 7.4933+-0.4571 7.3098+-0.3317 might be 1.0251x faster imul-mixed 6.3622+-0.7186 ? 6.7463+-0.2592 ? might be 1.0604x slower in-four-cases 22.2242+-0.7362 ? 22.4494+-0.6771 ? might be 1.0101x slower in-one-case-false 12.1819+-0.4986 ? 12.1830+-0.1656 ? in-one-case-true 12.0107+-0.1792 ? 12.3430+-0.4526 ? might be 1.0277x slower in-two-cases 12.9393+-0.6616 12.6743+-0.3044 might be 1.0209x faster indexed-properties-in-objects 3.2122+-0.1168 ! 3.4222+-0.0666 ! definitely 1.0654x slower infer-closure-const-then-mov-no-inline 4.4662+-0.1405 ? 4.4791+-0.1120 ? infer-closure-const-then-mov 18.3288+-0.6653 18.0468+-0.3235 might be 1.0156x faster infer-closure-const-then-put-to-scope-no-inline 13.3832+-0.5111 ? 13.4852+-0.3499 ? infer-closure-const-then-put-to-scope 24.3826+-0.7556 ? 24.7231+-0.7332 ? might be 1.0140x slower infer-closure-const-then-reenter-no-inline 59.7552+-0.6142 ? 59.8978+-0.8822 ? infer-closure-const-then-reenter 24.3978+-1.1732 ? 24.9388+-0.7626 ? might be 1.0222x slower infer-constant-global-property 3.9473+-0.1238 3.8723+-0.0588 might be 1.0194x faster infer-constant-property 3.0565+-0.1574 3.0112+-0.0925 might be 1.0150x faster infer-one-time-closure-ten-vars 9.9090+-0.4527 9.5013+-0.3505 might be 1.0429x faster infer-one-time-closure-two-vars 9.1288+-0.1974 9.0475+-0.4048 infer-one-time-closure 8.9611+-0.0701 ? 9.1169+-1.0928 ? might be 1.0174x slower infer-one-time-deep-closure 15.7145+-0.3856 15.5960+-0.1721 inline-arguments-access 4.2329+-0.0805 ? 4.2457+-0.1745 ? inline-arguments-aliased-access 4.3180+-0.2005 4.2280+-0.2336 might be 1.0213x faster inline-arguments-local-escape 4.3953+-0.4073 4.2136+-0.0859 might be 1.0431x faster inline-get-scoped-var 5.4865+-0.0399 ? 5.5066+-0.0951 ? inlined-put-by-id-transition 12.0798+-0.3691 12.0021+-0.3956 inlined-put-by-val-with-string-transition 83.7814+-2.2002 82.7788+-3.2583 might be 1.0121x faster inlined-put-by-val-with-symbol-transition 78.9785+-1.0235 ? 80.2457+-2.3106 ? might be 1.0160x slower int-or-other-abs-then-get-by-val 5.4112+-0.2169 ? 5.4224+-0.3706 ? int-or-other-abs-zero-then-get-by-val 17.8592+-0.7648 ? 17.8660+-0.1983 ? int-or-other-add-then-get-by-val 4.7850+-0.1026 ? 4.9000+-0.1965 ? might be 1.0240x slower int-or-other-add 5.9617+-0.3165 5.8693+-0.1850 might be 1.0157x faster int-or-other-div-then-get-by-val 4.5030+-0.1448 ? 4.6926+-0.2731 ? might be 1.0421x slower int-or-other-max-then-get-by-val 4.7780+-0.1563 4.7155+-0.0684 might be 1.0132x faster int-or-other-min-then-get-by-val 4.6543+-0.0917 4.5980+-0.0488 might be 1.0122x faster int-or-other-mod-then-get-by-val 4.2036+-0.0928 4.0475+-0.0728 might be 1.0386x faster int-or-other-mul-then-get-by-val 4.3290+-0.0631 4.3159+-0.0306 int-or-other-neg-then-get-by-val 4.7644+-0.0480 4.7549+-0.1058 int-or-other-neg-zero-then-get-by-val 17.7068+-0.6359 ? 17.7236+-0.2004 ? int-or-other-sub-then-get-by-val 5.0949+-0.5794 5.0521+-0.2516 int-or-other-sub 4.1118+-0.1812 4.0336+-0.0845 might be 1.0194x faster int-overflow-local 5.0202+-0.1580 4.9775+-0.1859 Int16Array-alloc-long-lived 53.7579+-1.1505 ? 54.5819+-0.7837 ? might be 1.0153x slower Int16Array-bubble-sort-with-byteLength 21.4916+-1.7347 ? 23.4140+-0.9621 ? might be 1.0895x slower Int16Array-bubble-sort 21.2446+-0.4869 ! 23.8806+-0.4579 ! definitely 1.1241x slower Int16Array-load-int-mul 1.8278+-0.0364 ? 1.8324+-0.0484 ? Int16Array-to-Int32Array-set 56.6932+-0.3758 ^ 53.6176+-0.6763 ^ definitely 1.0574x faster Int32Array-alloc-large 20.9693+-0.3988 ? 21.1763+-1.3286 ? Int32Array-alloc-long-lived 65.6148+-2.1784 ? 66.2059+-2.1091 ? Int32Array-alloc 2.8509+-0.3403 2.7319+-0.1152 might be 1.0435x faster Int32Array-Int8Array-view-alloc 6.8150+-0.4187 ? 6.8752+-0.3104 ? int52-spill 5.8445+-0.0795 ? 5.9636+-0.1852 ? might be 1.0204x slower Int8Array-alloc-long-lived 48.0988+-1.1143 48.0609+-0.3585 Int8Array-load-with-byteLength 3.7614+-0.1651 3.7407+-0.1625 Int8Array-load 3.7318+-0.0947 3.7098+-0.0998 integer-divide 12.3812+-0.1302 ? 12.3933+-0.0598 ? integer-modulo 2.3895+-0.1456 ? 2.5073+-0.5597 ? might be 1.0493x slower is-boolean-fold-tricky 4.6791+-0.1768 4.5599+-0.1430 might be 1.0262x faster is-boolean-fold 3.1417+-0.0568 3.1248+-0.0739 is-function-fold-tricky-internal-function 12.3511+-0.1122 ! 12.7722+-0.2373 ! definitely 1.0341x slower is-function-fold-tricky 4.7083+-0.1464 4.6413+-0.1993 might be 1.0144x faster is-function-fold 3.2090+-0.2112 ? 3.2590+-0.0977 ? might be 1.0156x slower is-number-fold-tricky 4.5206+-0.0877 4.4832+-0.1153 is-number-fold 3.0812+-0.0086 ? 3.1103+-0.1050 ? is-object-or-null-fold-functions 3.2311+-0.1815 3.2076+-0.0344 is-object-or-null-fold-less-tricky 4.7050+-0.2780 4.7010+-0.1387 is-object-or-null-fold-tricky 6.6096+-0.3387 6.5068+-0.3227 might be 1.0158x faster is-object-or-null-fold 3.2028+-0.2336 ? 3.2035+-0.1728 ? is-object-or-null-trickier-function 4.9253+-0.4361 4.6915+-0.0762 might be 1.0498x faster is-object-or-null-trickier-internal-function 12.7163+-0.4285 ? 12.8639+-0.1060 ? might be 1.0116x slower is-object-or-null-tricky-function 4.6570+-0.0428 ? 4.6932+-0.1739 ? is-object-or-null-tricky-internal-function 9.7974+-0.0980 ? 9.9031+-0.3577 ? might be 1.0108x slower is-string-fold-tricky 4.5418+-0.0991 4.5173+-0.0994 is-string-fold 3.1372+-0.0893 ? 3.1390+-0.1655 ? is-undefined-fold-tricky 3.7626+-0.1408 ? 3.8765+-0.1306 ? might be 1.0303x slower is-undefined-fold 3.1303+-0.1176 ? 3.1395+-0.0810 ? JSONP-negative-0 0.4467+-0.1607 0.4174+-0.0156 might be 1.0703x faster large-int-captured 4.9310+-0.1557 4.7653+-0.1667 might be 1.0348x faster large-int-neg 16.0753+-0.2672 ? 16.6140+-0.8417 ? might be 1.0335x slower large-int 14.3806+-0.6807 ? 14.6409+-0.8332 ? might be 1.0181x slower load-varargs-elimination 25.7891+-1.6299 25.3300+-1.4658 might be 1.0181x faster logical-not-weird-types 3.9338+-0.3594 3.8328+-0.1446 might be 1.0263x faster logical-not 5.0678+-0.1032 ? 5.1293+-0.2495 ? might be 1.0121x slower lots-of-fields 12.2301+-0.5804 11.7603+-0.5923 might be 1.0399x faster make-indexed-storage 3.2770+-0.3707 ? 3.3136+-0.3320 ? might be 1.0112x slower make-rope-cse 3.7972+-0.1017 3.7879+-0.0661 marsaglia-larger-ints 40.6863+-0.9590 40.3148+-1.7619 marsaglia-osr-entry 22.4962+-0.6040 22.0637+-0.0399 might be 1.0196x faster math-with-out-of-bounds-array-values 24.9387+-0.1729 ! 25.9249+-0.3306 ! definitely 1.0395x slower max-boolean 2.7365+-0.0751 ? 2.7622+-0.0953 ? method-on-number 18.3220+-0.6449 ? 18.5464+-0.8985 ? might be 1.0122x slower min-boolean 2.8106+-0.0773 ? 2.8146+-0.0643 ? minus-boolean-double 3.4840+-0.0728 3.4763+-0.0489 minus-boolean 2.6152+-0.0850 ? 2.6163+-0.0106 ? misc-strict-eq 33.7088+-1.8749 33.3093+-1.6502 might be 1.0120x faster mod-boolean-double 11.5528+-0.2004 ? 11.5768+-0.1514 ? mod-boolean 8.4190+-0.3070 8.3293+-0.2680 might be 1.0108x faster mul-boolean-double 4.0167+-0.0893 ? 4.0730+-0.1955 ? might be 1.0140x slower mul-boolean 3.1799+-0.1238 ? 3.2496+-0.1714 ? might be 1.0219x slower neg-boolean 3.5299+-0.1829 3.4731+-0.0845 might be 1.0163x faster negative-zero-divide 0.5255+-0.0303 ? 0.5269+-0.0240 ? negative-zero-modulo 0.5057+-0.0287 ? 0.5204+-0.0178 ? might be 1.0291x slower negative-zero-negate 0.5245+-0.0199 ? 0.5298+-0.0072 ? might be 1.0100x slower nested-function-parsing 52.9336+-0.6886 ! 54.5853+-0.5575 ! definitely 1.0312x slower new-array-buffer-dead 107.6801+-1.3331 107.3778+-0.5421 new-array-buffer-push 6.8890+-0.3760 ? 6.9991+-0.1106 ? might be 1.0160x slower new-array-dead 15.8400+-1.9725 ? 16.7477+-4.1757 ? might be 1.0573x slower new-array-push 4.1543+-0.0463 4.1073+-0.1780 might be 1.0114x faster no-inline-constructor 38.1882+-2.8637 37.9509+-0.8652 number-test 3.4013+-0.0479 ? 3.4438+-0.0406 ? might be 1.0125x slower object-closure-call 6.3429+-0.1600 ? 6.3528+-0.1952 ? object-get-own-property-symbols-on-large-array 4.0447+-0.2725 ? 4.2041+-0.2472 ? might be 1.0394x slower object-test 3.2077+-0.2401 ? 3.2257+-0.1948 ? obvious-sink-pathology-taken 124.3295+-1.0017 ? 124.6260+-0.9326 ? obvious-sink-pathology 117.5911+-1.0863 ? 117.7963+-0.6207 ? obviously-elidable-new-object 28.3379+-0.2113 ! 29.4803+-0.7092 ! definitely 1.0403x slower plus-boolean-arith 2.8150+-0.1031 ? 2.8298+-0.0754 ? plus-boolean-double 3.5417+-0.1951 ? 3.5540+-0.1459 ? plus-boolean 2.6378+-0.0951 ? 2.6926+-0.1230 ? might be 1.0208x slower poly-chain-access-different-prototypes-simple 4.3190+-0.1118 ? 4.3412+-0.2244 ? poly-chain-access-different-prototypes 4.3748+-0.0752 4.3513+-0.0730 poly-chain-access-simpler 4.3500+-0.1794 4.3227+-0.1853 poly-chain-access 4.3268+-0.0655 4.3008+-0.0254 poly-stricteq 65.0734+-0.3617 ? 65.4987+-3.6282 ? polymorphic-array-call 1.6907+-0.0373 ? 1.7180+-0.1425 ? might be 1.0161x slower polymorphic-get-by-id 3.4050+-0.0604 ? 3.5034+-0.1792 ? might be 1.0289x slower polymorphic-put-by-id 30.6072+-4.1435 28.1839+-2.0028 might be 1.0860x faster polymorphic-put-by-val-with-string 31.8353+-4.0195 30.9077+-4.8101 might be 1.0300x faster polymorphic-put-by-val-with-symbol 30.4117+-3.9061 28.5417+-0.3851 might be 1.0655x faster polymorphic-structure 15.9402+-0.1737 ? 16.3052+-1.0374 ? might be 1.0229x slower polyvariant-monomorphic-get-by-id 9.2556+-0.3274 9.0581+-0.1915 might be 1.0218x faster proto-getter-access 8.4208+-0.2796 8.4055+-0.2691 prototype-access-with-mutating-prototype 6.4734+-0.1408 6.3663+-0.2912 might be 1.0168x faster put-by-id-replace-and-transition 9.7357+-0.3364 9.6450+-0.3109 put-by-id-slightly-polymorphic 3.1693+-0.2227 3.1048+-0.1054 might be 1.0208x faster put-by-id 12.6175+-0.4947 ? 12.6537+-0.5938 ? put-by-val-direct 0.5532+-0.0739 ? 0.5535+-0.0568 ? put-by-val-large-index-blank-indexing-type 5.6323+-0.0783 ? 5.8564+-0.3423 ? might be 1.0398x slower put-by-val-machine-int 2.9135+-0.0925 ? 2.9188+-0.2052 ? put-by-val-with-string-replace-and-transition 14.2010+-0.6017 13.9992+-0.1558 might be 1.0144x faster put-by-val-with-string-slightly-polymorphic 4.0900+-0.1024 ? 4.1268+-0.1660 ? put-by-val-with-string 13.5883+-0.7296 13.4720+-0.0482 put-by-val-with-symbol-replace-and-transition 15.3295+-0.5172 15.0808+-0.5488 might be 1.0165x faster put-by-val-with-symbol-slightly-polymorphic 4.1121+-0.1476 4.0933+-0.1579 put-by-val-with-symbol 13.2982+-0.4330 ? 13.3563+-0.6064 ? rare-osr-exit-on-local 15.1112+-0.1928 ? 15.1863+-0.3113 ? register-pressure-from-osr 22.7595+-0.4318 ? 23.1343+-0.5986 ? might be 1.0165x slower repeat-multi-get-by-offset 25.1729+-0.4199 ? 25.3583+-0.9629 ? setter-prototype 7.3597+-0.1280 ? 7.5302+-0.3865 ? might be 1.0232x slower setter 6.0432+-0.0519 ? 6.1143+-0.1187 ? might be 1.0118x slower simple-activation-demo 26.9531+-0.4117 26.7610+-0.7117 simple-getter-access 10.9451+-0.2104 ? 11.2740+-0.5488 ? might be 1.0301x slower simple-poly-call-nested 8.1638+-0.1222 8.0952+-0.0735 simple-poly-call 1.6819+-0.0246 ? 1.7116+-0.0199 ? might be 1.0176x slower sin-boolean 18.3032+-1.4250 ? 18.3826+-1.1145 ? singleton-scope 65.7672+-0.5304 65.7308+-0.7070 sink-function 10.2374+-0.1175 10.2098+-0.3518 sink-huge-activation 16.1848+-0.5124 ? 16.2265+-0.4778 ? sinkable-new-object-dag 65.5506+-5.7785 ? 66.7152+-5.1335 ? might be 1.0178x slower sinkable-new-object-taken 49.2723+-1.0427 ? 49.3115+-0.3463 ? sinkable-new-object 36.6432+-0.2633 ? 36.7252+-0.1604 ? slow-array-profile-convergence 3.0258+-0.3610 ? 3.1163+-0.2794 ? might be 1.0299x slower slow-convergence 3.0170+-0.1360 3.0093+-0.0834 slow-ternaries 19.4141+-0.3800 ? 19.5340+-0.2947 ? sorting-benchmark 20.4288+-0.2233 ? 20.8904+-1.7590 ? might be 1.0226x slower sparse-conditional 1.5334+-0.0369 1.5275+-0.0156 splice-to-remove 15.4173+-0.3900 ? 16.0878+-0.9037 ? might be 1.0435x slower string-char-code-at 17.9681+-0.4810 17.6215+-0.2419 might be 1.0197x faster string-concat-object 2.2531+-0.0724 ? 2.3021+-0.0538 ? might be 1.0218x slower string-concat-pair-object 2.2101+-0.1823 2.2093+-0.1749 string-concat-pair-simple 11.7041+-0.2897 ? 11.8547+-0.3716 ? might be 1.0129x slower string-concat-simple 12.2270+-0.5407 12.0445+-0.2470 might be 1.0152x faster string-cons-repeat 8.1304+-0.3160 7.8806+-0.5256 might be 1.0317x faster string-cons-tower 8.0052+-0.3428 ? 8.0276+-0.1973 ? string-equality 18.6295+-0.3478 ? 19.0002+-0.4735 ? might be 1.0199x slower string-get-by-val-big-char 7.3295+-0.2414 7.2252+-0.0996 might be 1.0144x faster string-get-by-val-out-of-bounds-insane 3.9244+-0.0414 3.9018+-0.1706 string-get-by-val-out-of-bounds 5.4972+-0.1938 ? 5.6815+-0.1329 ? might be 1.0335x slower string-get-by-val 3.6685+-0.1686 ? 3.7336+-0.0370 ? might be 1.0177x slower string-hash 2.4371+-0.1263 2.3954+-0.0807 might be 1.0174x faster string-long-ident-equality 15.6154+-0.4045 15.3831+-0.2601 might be 1.0151x faster string-out-of-bounds 12.8478+-0.4156 12.8387+-0.3508 string-repeat-arith 34.6110+-1.0393 34.1917+-2.4397 might be 1.0123x faster string-sub 70.7313+-0.1943 ^ 69.0818+-0.4489 ^ definitely 1.0239x faster string-test 3.2631+-0.0478 ? 3.3445+-0.1715 ? might be 1.0249x slower string-var-equality 34.2977+-0.8461 33.9955+-0.1745 structure-hoist-over-transitions 2.7400+-0.0622 2.7134+-0.1239 substring-concat-weird 43.3453+-1.0381 43.0583+-0.7842 substring-concat 47.2188+-0.9017 46.9208+-1.1969 substring 51.8653+-0.8646 ? 52.4946+-2.6871 ? might be 1.0121x slower switch-char-constant 3.0668+-0.0569 ? 3.0958+-0.1218 ? switch-char 6.8625+-0.2702 6.6623+-0.0978 might be 1.0301x faster switch-constant 11.0928+-0.7461 11.0499+-1.6914 switch-string-basic-big-var 22.0075+-0.3705 21.5055+-0.3714 might be 1.0233x faster switch-string-basic-big 19.7175+-0.3262 ? 20.1105+-0.1904 ? might be 1.0199x slower switch-string-basic-var 15.9337+-0.1604 ? 16.1204+-0.2862 ? might be 1.0117x slower switch-string-basic 15.1682+-0.4945 14.9330+-0.7539 might be 1.0157x faster switch-string-big-length-tower-var 21.3610+-0.6158 ? 21.5001+-0.2621 ? switch-string-length-tower-var 16.0756+-0.7110 15.8297+-0.4328 might be 1.0155x faster switch-string-length-tower 13.4177+-0.2120 13.2820+-0.2260 might be 1.0102x faster switch-string-short 13.4620+-0.2589 13.2797+-0.5204 might be 1.0137x faster switch 14.4987+-0.3938 ? 14.8499+-0.2951 ? might be 1.0242x slower tear-off-arguments-simple 3.3881+-0.2707 ? 3.4697+-0.0793 ? might be 1.0241x slower tear-off-arguments 4.6969+-0.1263 ? 4.7200+-0.2809 ? temporal-structure 14.4500+-0.2179 14.4330+-0.2158 to-int32-boolean 14.1476+-0.3757 ? 14.4440+-0.5843 ? might be 1.0209x slower try-catch-get-by-val-cloned-arguments 15.7106+-0.7948 15.5933+-0.6106 try-catch-get-by-val-direct-arguments 6.9453+-0.1399 ? 7.4100+-0.5119 ? might be 1.0669x slower try-catch-get-by-val-scoped-arguments 8.2535+-0.4974 8.1392+-0.1651 might be 1.0140x faster typed-array-get-set-by-val-profiling 30.2241+-0.5645 ? 30.3189+-0.6442 ? undefined-property-access 382.6136+-1.6418 381.9443+-1.1407 undefined-test 3.4184+-0.1295 ? 3.4193+-0.0883 ? unprofiled-licm 20.0278+-0.7352 ? 20.0485+-0.9729 ? varargs-call 14.8815+-0.3872 14.8328+-0.3921 varargs-construct-inline 26.8505+-0.5301 ? 27.1570+-0.8905 ? might be 1.0114x slower varargs-construct 23.5258+-0.5923 23.3618+-0.1625 varargs-inline 9.4118+-0.1307 ? 9.8157+-0.4786 ? might be 1.0429x slower varargs-strict-mode 10.7822+-0.1246 ? 11.0145+-0.1695 ? might be 1.0216x slower varargs 10.8675+-0.4662 10.7636+-0.4807 weird-inlining-const-prop 2.6058+-0.1340 ? 2.6479+-0.1650 ? might be 1.0162x slower <geometric> 9.3877+-0.0234 ? 9.4067+-0.0242 ? might be 1.0020x slower Base Patch AsmBench: bigfib.cpp 528.5793+-3.3852 ? 529.1025+-0.9544 ? cray.c 456.2888+-4.0944 455.0552+-3.0460 dry.c 527.4217+-5.1473 520.4431+-16.5272 might be 1.0134x faster FloatMM.c 768.4789+-7.8811 766.0724+-2.0565 gcc-loops.cpp 4200.5502+-42.5262 ? 4226.8358+-60.5876 ? n-body.c 1047.1781+-10.4612 ? 1048.1959+-3.9731 ? Quicksort.c 444.4725+-13.0951 ? 450.0363+-4.6655 ? might be 1.0125x slower stepanov_container.cpp 3930.5422+-43.8807 3927.3470+-42.9982 Towers.c 268.5123+-0.9841 268.3182+-0.7044 <geometric> 837.0230+-2.7997 837.0180+-3.4398 might be 1.0000x faster Base Patch CompressionBench: huffman 67.4948+-0.4238 66.7712+-0.7150 might be 1.0108x faster arithmetic-simple 354.3824+-1.4436 ? 355.1945+-3.7094 ? arithmetic-precise 286.4746+-0.6170 ? 286.8820+-1.5880 ? arithmetic-complex-precise 289.9983+-4.2780 288.6801+-4.6025 arithmetic-precise-order-0 363.2487+-2.1802 ? 364.5946+-2.4276 ? arithmetic-precise-order-1 341.5037+-4.9531 339.1226+-2.1590 arithmetic-precise-order-2 403.8220+-3.6805 ? 404.6668+-6.2920 ? arithmetic-simple-order-1 409.1862+-3.4871 ? 409.3912+-2.5747 ? arithmetic-simple-order-2 466.1685+-3.7014 465.3141+-1.5558 lz-string 315.7957+-10.5015 ? 320.7185+-9.8534 ? might be 1.0156x slower <geometric> 300.4539+-1.3091 ? 300.4931+-1.3449 ? might be 1.0001x slower Base Patch Geomean of preferred means: <scaled-result> 61.3229+-0.2256 ? 61.4227+-0.2358 ? might be 1.0016x slower
Comment on attachment 260974 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=260974&action=review r=me > Source/JavaScriptCore/jit/JITCode.h:129 > + return std::chrono::milliseconds(10000); // 10s It probably makes sense to have this time to live as an option. > Source/JavaScriptCore/jit/JITCode.h:131 > + return std::chrono::milliseconds(100000); // 100s Ditto.
Comment on attachment 260974 [details] Patch Clearing flags on attachment: 260974 Committed r189620: <http://trac.webkit.org/changeset/189620>
All reviewed patches have been landed. Closing bug.
> It probably makes sense to have this time to live as an option. I should be able to arrange that in a follow-up patch.
This appears to have broken CLOOP build: CompileC /Volumes/Data/slave/mavericks-cloop-debug/build/WebKitBuild/JavaScriptCore.build/Debug/JavaScriptCore.build/Objects-normal/x86_64/CodeBlock.o bytecode/CodeBlock.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler cd /Volumes/Data/slave/mavericks-cloop-debug/build/Source/JavaScriptCore export LANG=en_US.US-ASCII /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu++11 -stdlib=libc++ -Wno-trigraphs -fno-exceptions -fno-rtti -fpascal-strings -O0 -fno-common -Werror -Wno-missing-field-initializers -Wmissing-prototypes -Wnon-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wsign-compare -Wno-shorten-64-to-32 -Wnewline-eof -Wno-c++11-extensions -DHAVE_HEADER_DETECTION_H -DENABLE_3D_TRANSFORMS -DENABLE_ATTACHMENT_ELEMENT -DENABLE_CACHE_PARTITIONING -DENABLE_CANVAS_PATH -DENABLE_CHANNEL_MESSAGING -DENABLE_ES6_ARROWFUNCTION_SYNTAX -DENABLE_ES6_CLASS_SYNTAX -DENABLE_ES6_TEMPLATE_LITERAL_SYNTAX -DENABLE_CONTENT_FILTERING -DENABLE_CSS_ANIMATIONS_LEVEL_2 -DENABLE_CSS_BOX_DECORATION_BREAK -DENABLE_CSS_COMPOSITING -DENABLE_CSS_GRID_LAYOUT -DENABLE_CSS_REGIONS -DENABLE_CSS_SELECTORS_LEVEL4 -DENABLE_CSS_SHAPES -DENABLE_CURSOR_VISIBILITY -DENABLE_DASHBOARD_SUPPORT -DENABLE_DETAILS_ELEMENT -DENABLE_DOM4_EVENTS_CONSTRUCTOR -DENABLE_ENCRYPTED_MEDIA -DENABLE_ENCRYPTED_MEDIA_V2 -DENABLE_FULLSCREEN_API -DENABLE_GAMEPAD -DENABLE_GEOLOCATION -DENABLE_HIDDEN_PAGE_DOM_TIMER_THROTTLING -DENABLE_ICONDATABASE -DENABLE_INDEXED_DATABASE -DENABLE_INDIE_UI -DENABLE_INPUT_TYPE_COLOR -DENABLE_INPUT_TYPE_COLOR_POPOVER -DENABLE_INTL -DENABLE_LEGACY_CSS_VENDOR_PREFIXES -DENABLE_LEGACY_NOTIFICATIONS -DENABLE_LEGACY_VENDOR_PREFIXES -DENABLE_LEGACY_WEB_AUDIO -DENABLE_MATHML -DENABLE_MEDIA_CONTROLS_SCRIPT -DENABLE_MEDIA_STREAM -DENABLE_METER_ELEMENT -DENABLE_MOUSE_CURSOR_SCALE -DENABLE_NAVIGATOR_HWCONCURRENCY -DENABLE_NOTIFICATIONS -DENABLE_PDFKIT_PLUGIN -DENABLE_PUBLIC_SUFFIX_LIST -DENABLE_REQUEST_ANIMATION_FRAME -DENABLE_RUBBER_BANDING -DENABLE_CSS_SCROLL_SNAP -DENABLE_SPEECH_SYNTHESIS -DENABLE_STREAMS_API -DENABLE_SUBTLE_CRYPTO -DENABLE_SVG_FONTS -DENABLE_SVG_OTF_CONVERTER -DENABLE_TEMPLATE_ELEMENT -DENABLE_CSS_TRAILING_WORD -DENABLE_USERSELECT_ALL -DENABLE_VIDEO -DENABLE_VIDEO_TRACK -DENABLE_DATACUE_VALUE -DENABLE_WEBGL -DENABLE_WEB_AUDIO -DENABLE_WEB_REPLAY -DENABLE_WEB_SOCKETS -DENABLE_XHR_TIMEOUT -DENABLE_XSLT -DENABLE_FTL_JIT=0 -DENABLE_JIT=0 -DENABLE_SATURATED_LAYOUT_ARITHMETIC -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -mmacosx-version-min=10.9 -g -fvisibility=hidden -fvisibility-inlines-hidden -fno-threadsafe-statics -Wno-sign-conversion -I/Volumes/Data/slave/mavericks-cloop-debug/build/WebKitBuild/JavaScriptCore.build/Debug/JavaScriptCore.build/JavaScriptCore.hmap -I/Volumes/Data/slave/mavericks-cloop-debug/build/WebKitBuild/Debug/include -I/Volumes/Data/slave/mavericks-cloop-debug/build/WebKitBuild/Debug/DerivedSources/JavaScriptCore -I. -Iicu -I/Volumes/Data/slave/mavericks-cloop-debug/build/WebKitBuild/Debug/usr/local/LLVMForJavaScriptCore/include -I/Volumes/Data/slave/mavericks-cloop-debug/build/WebKitBuild/Debug/ExtraIncludesForLocalLLVMBuild -I/usr/local/LLVMForJavaScriptCore/include -I/Volumes/Data/slave/mavericks-cloop-debug/build/WebKitBuild/Debug/usr/local/include -I/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include -I/Volumes/Data/slave/mavericks-cloop-debug/build/WebKitBuild/JavaScriptCore.build/Debug/JavaScriptCore.build/DerivedSources/x86_64 -I/Volumes/Data/slave/mavericks-cloop-debug/build/WebKitBuild/JavaScriptCore.build/Debug/JavaScriptCore.build/DerivedSources -Wall -Wextra -Wcast-qual -Wchar-subscripts -Wextra-tokens -Wformat=2 -Winit-self -Wmissing-format-attribute -Wmissing-noreturn -Wpacked -Wpointer-arith -Wredundant-decls -Wundef -Wwrite-strings -Wexit-time-destructors -Wglobal-constructors -Wtautological-compare -Wimplicit-fallthrough -F/Volumes/Data/slave/mavericks-cloop-debug/build/WebKitBuild/Debug -fno-strict-aliasing -include /Volumes/Data/slave/mavericks-cloop-debug/build/WebKitBuild/PrecompiledHeaders/JavaScriptCorePrefix-bgfzggyfwybghlcusrgbwgdrrqyr/JavaScriptCorePrefix.h -MMD -MT dependencies -MF /Volumes/Data/slave/mavericks-cloop-debug/build/WebKitBuild/JavaScriptCore.build/Debug/JavaScriptCore.build/Objects-normal/x86_64/CodeBlock.d --serialize-diagnostics /Volumes/Data/slave/mavericks-cloop-debug/build/WebKitBuild/JavaScriptCore.build/Debug/JavaScriptCore.build/Objects-normal/x86_64/CodeBlock.dia -c /Volumes/Data/slave/mavericks-cloop-debug/build/Source/JavaScriptCore/bytecode/CodeBlock.cpp -o /Volumes/Data/slave/mavericks-cloop-debug/build/WebKitBuild/JavaScriptCore.build/Debug/JavaScriptCore.build/Objects-normal/x86_64/CodeBlock.o /Volumes/Data/slave/mavericks-cloop-debug/build/Source/JavaScriptCore/bytecode/CodeBlock.cpp:2654:22: error: use of undeclared identifier 'callLinkInfosBegin' for (auto iter = callLinkInfosBegin(); !!iter; ++iter) ^ /Volumes/Data/slave/mavericks-cloop-debug/build/Source/JavaScriptCore/bytecode/CodeBlock.cpp:2657:50: error: use of undeclared identifier 'm_stubInfos' for (Bag<StructureStubInfo>::iterator iter = m_stubInfos.begin(); !!iter; ++iter) { ^ /Volumes/Data/slave/mavericks-cloop-debug/build/Source/JavaScriptCore/bytecode/CodeBlock.cpp:2659:17: error: member access into incomplete type 'JSC::StructureStubInfo' stubInfo.visitWeakReferences(this); ^ In file included from /Volumes/Data/slave/mavericks-cloop-debug/build/Source/JavaScriptCore/bytecode/CodeBlock.cpp:59: /Volumes/Data/slave/mavericks-cloop-debug/build/Source/JavaScriptCore/jit/Repatch.h:61:8: note: forward declaration of 'JSC::StructureStubInfo' struct StructureStubInfo; ^ In file included from /Volumes/Data/slave/mavericks-cloop-debug/build/Source/JavaScriptCore/bytecode/CodeBlock.cpp:31: In file included from /Volumes/Data/slave/mavericks-cloop-debug/build/Source/JavaScriptCore/bytecode/CodeBlock.h:33: In file included from /Volumes/Data/slave/mavericks-cloop-debug/build/Source/JavaScriptCore/bytecode/ArrayProfile.h:30: In file included from /Volumes/Data/slave/mavericks-cloop-debug/build/Source/JavaScriptCore/runtime/JSArray.h:25: In file included from /Volumes/Data/slave/mavericks-cloop-debug/build/Source/JavaScriptCore/runtime/ButterflyInlines.h:31: In file included from /Volumes/Data/slave/mavericks-cloop-debug/build/Source/JavaScriptCore/heap/CopiedSpaceInlines.h:32: In file included from /Volumes/Data/slave/mavericks-cloop-debug/build/Source/JavaScriptCore/runtime/VM.h:58: /Volumes/Data/slave/mavericks-cloop-debug/build/WebKitBuild/Debug/usr/local/include/wtf/Bag.h:44:11: error: field has incomplete type 'JSC::StructureStubInfo' T m_item; ^ /Volumes/Data/slave/mavericks-cloop-debug/build/WebKitBuild/Debug/usr/local/include/wtf/Bag.h:92:28: note: in instantiation of member class 'WTF::Bag<JSC::StructureStubInfo>::Node' requested here m_node = m_node->m_next; ^ /Volumes/Data/slave/mavericks-cloop-debug/build/Source/JavaScriptCore/bytecode/CodeBlock.cpp:2657:79: note: in instantiation of member function 'WTF::Bag<JSC::StructureStubInfo>::iterator::operator++' requested here for (Bag<StructureStubInfo>::iterator iter = m_stubInfos.begin(); !!iter; ++iter) { ^ In file included from /Volumes/Data/slave/mavericks-cloop-debug/build/Source/JavaScriptCore/bytecode/CodeBlock.cpp:59: /Volumes/Data/slave/mavericks-cloop-debug/build/Source/JavaScriptCore/jit/Repatch.h:61:8: note: forward declaration of 'JSC::StructureStubInfo' struct StructureStubInfo; ^ 4 errors generated.
Committed revision 189623.