RESOLVED FIXED Bug 149220
JavaScriptCore should discard baseline code after some time
https://bugs.webkit.org/show_bug.cgi?id=149220
Summary JavaScriptCore should discard baseline code after some time
Geoffrey Garen
Reported 2015-09-16 10:07:42 PDT
JavaScriptCore should discard baseline code after some time
Attachments
Patch (23.22 KB, patch)
2015-09-16 10:20 PDT, Geoffrey Garen
saam: review+
Geoffrey Garen
Comment 1 2015-09-16 10:20:05 PDT
Geoffrey Garen
Comment 2 2015-09-16 10:20:53 PDT
Seems performance neutral. ~> sleep 20; run-jsc-benchmarks Base:/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. 3892/3892 Generating benchmark report at /Volumes/Big/ggaren/Base_Patch_SunSpiderLongSpiderV8SpiderOctaneKrakenJSRegressAsmBenchCompressionBench_Geoffrey-Garens-Mac-Pro_20150915_2359_report.txt And raw data at /Volumes/Big/ggaren/Base_Patch_SunSpiderLongSpiderV8SpiderOctaneKrakenJSRegressAsmBenchCompressionBench_Geoffrey-Garens-Mac-Pro_20150915_2359.json 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 (r189741) "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.5603+-0.3894 6.4139+-0.1927 might be 1.0228x faster 3d-morph 6.4872+-0.6904 6.2409+-0.0957 might be 1.0395x faster 3d-raytrace 7.3541+-0.7708 7.2534+-0.2803 might be 1.0139x faster access-binary-trees 2.5805+-0.3312 2.5168+-0.0461 might be 1.0253x faster access-fannkuch 6.6228+-0.1532 ? 6.7097+-0.6813 ? might be 1.0131x slower access-nbody 3.3103+-0.1136 3.2226+-0.1272 might be 1.0272x faster access-nsieve 3.7620+-0.0606 ? 3.8248+-0.1307 ? might be 1.0167x slower bitops-3bit-bits-in-byte 1.5037+-0.0298 ? 1.5457+-0.0849 ? might be 1.0279x slower bitops-bits-in-byte 3.8218+-0.0676 ? 3.8362+-0.0737 ? bitops-bitwise-and 2.3657+-0.0363 ? 2.4307+-0.0564 ? might be 1.0275x slower bitops-nsieve-bits 3.4626+-0.1031 ! 3.6457+-0.0131 ! definitely 1.0529x slower controlflow-recursive 3.0403+-0.2234 2.8785+-0.1383 might be 1.0562x faster crypto-aes 5.0170+-0.0225 ! 5.2024+-0.1269 ! definitely 1.0370x slower crypto-md5 3.1704+-0.1790 3.0761+-0.1488 might be 1.0307x faster crypto-sha1 3.0629+-0.1430 2.9616+-0.0640 might be 1.0342x faster date-format-tofte 10.0912+-0.2154 ? 10.8346+-0.7257 ? might be 1.0737x slower date-format-xparb 5.8612+-0.4406 5.8294+-0.0919 math-cordic 3.6912+-0.2265 3.5688+-0.1828 might be 1.0343x faster math-partial-sums 6.2147+-0.2342 6.1755+-0.3651 math-spectral-norm 2.3663+-0.0528 ? 2.3981+-0.1295 ? might be 1.0134x slower regexp-dna 7.5562+-0.1805 7.5475+-0.2346 string-base64 5.5637+-0.5075 5.3541+-0.1776 might be 1.0391x faster string-fasta 6.9385+-0.0915 6.9122+-0.1136 string-tagcloud 9.6252+-0.4637 ? 9.7869+-0.5223 ? might be 1.0168x slower string-unpack-code 21.3167+-0.2894 21.0056+-0.4787 might be 1.0148x faster string-validate-input 5.1380+-0.2240 ? 5.2619+-0.2492 ? might be 1.0241x slower <arithmetic> 5.6340+-0.0435 5.6321+-0.0518 might be 1.0003x faster Base Patch LongSpider: 3d-cube 939.7841+-12.5076 939.3315+-22.2898 3d-morph 1624.4495+-2.6792 ? 1626.9637+-5.6262 ? 3d-raytrace 741.8020+-6.5224 740.5963+-17.6069 access-binary-trees 1010.8120+-5.9944 ? 1011.6047+-3.5397 ? access-fannkuch 356.0345+-11.2057 346.3792+-11.3684 might be 1.0279x faster access-nbody 623.5544+-1.3081 623.2225+-1.9568 access-nsieve 458.7300+-3.8396 456.6512+-6.5089 bitops-3bit-bits-in-byte 41.6187+-0.4052 ? 41.8928+-0.2887 ? bitops-bits-in-byte 92.2961+-2.1921 ? 93.3606+-1.8503 ? might be 1.0115x slower bitops-nsieve-bits 459.4717+-3.8056 458.8168+-5.1771 controlflow-recursive 501.1620+-2.3375 ? 502.8552+-3.2525 ? crypto-aes 685.1367+-4.0588 684.0010+-7.5649 crypto-md5 551.4175+-42.4130 539.4528+-1.9418 might be 1.0222x faster crypto-sha1 756.2400+-6.3094 ? 759.5553+-2.8698 ? date-format-tofte 773.6315+-21.2127 ? 791.2377+-12.2896 ? might be 1.0228x slower date-format-xparb 847.0171+-55.5367 841.8094+-39.8569 hash-map 187.4117+-2.2797 ? 187.5757+-1.3145 ? math-cordic 563.0038+-1.4128 562.8652+-2.0366 math-partial-sums 628.4641+-5.3690 ? 631.0867+-3.8700 ? math-spectral-norm 600.0810+-6.3299 ? 602.4261+-5.6054 ? string-base64 422.1178+-4.5700 418.5012+-1.2900 string-fasta 426.2481+-5.9042 423.2271+-4.5535 string-tagcloud 207.5378+-1.9748 ? 208.4220+-1.1923 ? <geometric> 469.9353+-3.8542 469.5864+-1.3258 might be 1.0007x faster Base Patch V8Spider: crypto 58.2842+-1.6672 57.8063+-0.6676 deltablue 80.6270+-5.0350 79.3740+-2.4385 might be 1.0158x faster earley-boyer 48.4796+-0.5609 ? 48.4865+-0.2761 ? raytrace 33.9642+-0.6506 33.2551+-0.4022 might be 1.0213x faster regexp 77.7988+-0.9274 ? 78.0112+-0.9568 ? richards 66.1256+-0.6609 65.9355+-0.5367 splay 39.1680+-1.6157 38.8192+-0.8243 <geometric> 55.1799+-0.5398 54.7618+-0.2904 might be 1.0076x faster Base Patch Octane: encrypt 0.23311+-0.00589 0.23059+-0.00341 might be 1.0109x faster decrypt 3.89551+-0.00691 ? 3.91439+-0.06953 ? deltablue x2 0.20393+-0.01503 ? 0.21233+-0.01642 ? might be 1.0412x slower earley 0.38272+-0.00213 0.38105+-0.00272 boyer 5.57586+-0.04072 ? 5.58646+-0.04983 ? navier-stokes x2 5.44539+-0.02936 5.44528+-0.01798 raytrace x2 1.14271+-0.01533 ? 1.14844+-0.01658 ? richards x2 0.12944+-0.00262 ? 0.13058+-0.00096 ? splay x2 0.38025+-0.00464 0.37619+-0.00666 might be 1.0108x faster regexp x2 28.73626+-0.10840 ? 28.87414+-0.27187 ? pdfjs x2 44.89580+-0.32702 44.89320+-0.22547 mandreel x2 51.40183+-0.32379 51.17590+-0.36480 gbemu x2 51.15650+-3.14372 ? 52.91884+-6.41383 ? might be 1.0344x slower closure 0.77491+-0.00232 ? 0.77511+-0.00337 ? jquery 9.70526+-0.08665 ? 9.71806+-0.11101 ? box2d x2 13.50478+-0.07451 13.46200+-0.09191 zlib x2 430.84829+-33.08330 ? 439.65063+-1.16567 ? might be 1.0204x slower typescript x2 870.05603+-5.35669 ? 873.27429+-17.40847 ? <geometric> 6.93024+-0.04537 ? 6.97376+-0.03862 ? might be 1.0063x slower Base Patch Kraken: ai-astar 289.689+-6.848 284.817+-3.374 might be 1.0171x faster audio-beat-detection 62.773+-1.479 ? 63.393+-3.948 ? audio-dft 112.557+-1.971 112.456+-2.503 audio-fft 42.840+-0.470 42.655+-0.366 audio-oscillator 75.745+-2.536 74.362+-0.522 might be 1.0186x faster imaging-darkroom 73.274+-1.360 ? 76.021+-10.253 ? might be 1.0375x slower imaging-desaturate 65.269+-0.757 ? 65.438+-1.065 ? imaging-gaussian-blur 110.618+-7.622 110.242+-1.901 json-parse-financial 48.703+-1.267 ? 49.049+-0.291 ? json-stringify-tinderbox 29.129+-0.281 ? 29.329+-0.844 ? stanford-crypto-aes 48.568+-1.203 48.284+-0.777 stanford-crypto-ccm 46.413+-0.544 ? 46.611+-1.711 ? stanford-crypto-pbkdf2 107.535+-0.505 ? 107.542+-1.153 ? stanford-crypto-sha256-iterative 44.032+-0.077 ? 44.048+-1.345 ? <arithmetic> 82.653+-1.146 82.446+-1.140 might be 1.0025x faster Base Patch JSRegress: abc-forward-loop-equal 48.4385+-1.0004 47.9706+-0.6203 abc-postfix-backward-loop 47.7814+-0.5351 47.6727+-0.2708 abc-simple-backward-loop 47.8793+-0.1934 ^ 47.4250+-0.1500 ^ definitely 1.0096x faster abc-simple-forward-loop 48.3625+-2.6234 47.9471+-0.8028 abc-skippy-loop 32.7526+-0.6131 32.6213+-0.3847 abs-boolean 2.9535+-0.0738 ? 2.9558+-0.0451 ? adapt-to-double-divide 16.7516+-0.3247 16.5004+-0.1174 might be 1.0152x faster aliased-arguments-getbyval 1.4655+-0.1056 1.4310+-0.0590 might be 1.0241x faster allocate-big-object 2.7367+-0.1155 2.7336+-0.2112 arguments-named-and-reflective 11.1603+-0.2202 11.0572+-0.6253 arguments-out-of-bounds 12.3165+-0.5936 ? 12.7600+-1.1690 ? might be 1.0360x slower arguments-strict-mode 10.0324+-0.4771 9.7510+-0.2766 might be 1.0289x faster arguments 8.8114+-0.3651 8.6701+-0.4558 might be 1.0163x faster arity-mismatch-inlining 1.1770+-0.0156 1.1503+-0.0453 might be 1.0232x faster array-access-polymorphic-structure 6.5560+-0.0938 ? 6.9245+-1.0111 ? might be 1.0562x slower array-nonarray-polymorhpic-access 29.9655+-0.5710 ? 30.3783+-0.6087 ? might be 1.0138x slower array-prototype-every 87.5136+-1.0632 ? 91.4833+-6.9981 ? might be 1.0454x slower array-prototype-forEach 85.0555+-0.0747 ! 88.6065+-1.4573 ! definitely 1.0417x slower array-prototype-map 96.0403+-7.5117 94.0826+-1.8978 might be 1.0208x faster array-prototype-reduce 82.8670+-0.5863 ? 84.0671+-1.3332 ? might be 1.0145x slower array-prototype-reduceRight 82.7802+-1.2492 ? 90.2417+-11.2722 ? might be 1.0901x slower array-prototype-some 87.5215+-1.4737 ? 88.8808+-0.8430 ? might be 1.0155x slower array-splice-contiguous 27.1020+-0.8588 ? 27.5464+-0.7195 ? might be 1.0164x slower array-with-double-add 4.4654+-0.0596 4.3904+-0.0888 might be 1.0171x faster array-with-double-increment 3.5830+-0.1110 3.5472+-0.0641 might be 1.0101x faster array-with-double-mul-add 5.5158+-0.3232 5.3306+-0.0621 might be 1.0348x faster array-with-double-sum 3.5504+-0.0262 ? 3.5916+-0.1303 ? might be 1.0116x slower array-with-int32-add-sub 7.4265+-0.2709 7.3253+-0.1491 might be 1.0138x faster array-with-int32-or-double-sum 3.6985+-0.1078 ? 3.7272+-0.0976 ? ArrayBuffer-DataView-alloc-large-long-lived 32.1441+-0.4292 ? 32.1750+-0.7064 ? ArrayBuffer-DataView-alloc-long-lived 13.5419+-0.5111 13.4531+-0.1861 ArrayBuffer-Int32Array-byteOffset 4.2041+-0.3557 4.1539+-0.1202 might be 1.0121x faster ArrayBuffer-Int8Array-alloc-large-long-lived 39.4155+-0.6788 ? 39.6042+-1.2325 ? ArrayBuffer-Int8Array-alloc-long-lived-buffer 22.9980+-0.6329 22.4125+-0.0920 might be 1.0261x faster ArrayBuffer-Int8Array-alloc-long-lived 13.6879+-0.3550 ? 14.0687+-0.5706 ? might be 1.0278x slower ArrayBuffer-Int8Array-alloc 10.9440+-1.1452 10.4605+-0.1112 might be 1.0462x faster arrowfunction-call 12.2424+-0.0874 12.1793+-0.3027 asmjs_bool_bug 8.3790+-0.1161 ? 8.5815+-0.5673 ? might be 1.0242x slower assign-custom-setter-polymorphic 3.3345+-0.0533 3.3073+-0.0263 assign-custom-setter 4.6690+-0.1437 4.6430+-0.1026 basic-set 10.1022+-0.4411 10.0158+-0.1593 big-int-mul 4.3154+-0.2435 4.3023+-0.1957 boolean-test 3.4933+-0.1439 ? 3.5458+-0.2384 ? might be 1.0150x slower branch-fold 4.2195+-0.0767 4.1855+-0.0218 branch-on-string-as-boolean 18.2888+-0.4853 ? 18.4279+-0.3908 ? by-val-generic 2.8409+-0.1627 2.7807+-0.0394 might be 1.0217x faster call-spread-apply 31.2122+-0.5765 ? 31.3067+-0.9259 ? call-spread-call 25.1936+-0.8043 24.9936+-0.3568 captured-assignments 0.6902+-0.0724 0.6761+-0.0666 might be 1.0208x faster cast-int-to-double 5.9118+-0.1842 ? 5.9763+-0.3079 ? might be 1.0109x slower cell-argument 7.2664+-0.3513 ? 7.4520+-0.5276 ? might be 1.0255x slower cfg-simplify 3.1397+-0.0853 3.1320+-0.1266 chain-getter-access 8.5065+-0.3362 ? 8.5401+-0.7673 ? cmpeq-obj-to-obj-other 11.5084+-0.4295 11.5025+-0.1754 constant-test 5.3563+-0.0780 ? 5.4814+-0.2116 ? might be 1.0234x slower create-lots-of-functions 11.4005+-0.1727 11.2442+-0.2577 might be 1.0139x faster cse-new-array-buffer 2.5917+-0.0200 ? 2.6629+-0.0801 ? might be 1.0275x slower cse-new-array 2.7243+-0.0723 ? 2.7746+-0.2248 ? might be 1.0185x slower DataView-custom-properties 39.1183+-1.3141 38.1703+-1.4718 might be 1.0248x faster delay-tear-off-arguments-strictmode 14.2700+-0.5223 14.2575+-0.3649 deltablue-varargs 225.6832+-9.6355 ? 241.3152+-20.2026 ? might be 1.0693x slower destructuring-arguments 194.0278+-12.1833 190.3033+-1.2482 might be 1.0196x faster destructuring-parameters-overridden-by-function 0.7049+-0.0443 ? 0.7219+-0.0609 ? might be 1.0242x slower destructuring-swap 5.6330+-0.3935 5.5632+-0.0977 might be 1.0125x faster direct-arguments-getbyval 1.5109+-0.0760 1.4261+-0.1127 might be 1.0594x faster div-boolean-double 5.6097+-0.0607 ? 5.8747+-0.3835 ? might be 1.0472x slower div-boolean 8.3243+-0.0922 8.3233+-0.0917 double-get-by-val-out-of-bounds 4.9123+-0.1674 4.7969+-0.1003 might be 1.0241x faster double-pollution-getbyval 9.5291+-0.4897 ? 9.6265+-0.2729 ? might be 1.0102x slower double-pollution-putbyoffset 4.5397+-0.0863 ? 4.5850+-0.0651 ? double-real-use 30.5219+-0.2282 ? 30.5300+-0.2791 ? double-to-int32-typed-array-no-inline 2.8080+-0.0930 2.7819+-0.1870 double-to-int32-typed-array 2.5417+-0.0709 2.4838+-0.0225 might be 1.0233x faster double-to-uint32-typed-array-no-inline 2.7941+-0.0302 ! 2.8806+-0.0404 ! definitely 1.0310x slower double-to-uint32-typed-array 2.5236+-0.0402 ? 2.5583+-0.1419 ? might be 1.0138x slower elidable-new-object-dag 39.6432+-0.6352 ? 40.0974+-1.0421 ? might be 1.0115x slower elidable-new-object-roflcopter 41.2698+-1.6198 40.9259+-1.4380 elidable-new-object-then-call 32.6513+-1.4065 ? 32.7830+-1.4655 ? elidable-new-object-tree 44.1001+-2.2981 43.7822+-0.8057 empty-string-plus-int 5.6047+-0.5302 ? 6.0330+-1.8855 ? might be 1.0764x slower emscripten-cube2hash 40.5524+-1.1455 40.5468+-0.5237 exit-length-on-plain-object 14.2370+-0.2269 ? 14.3899+-0.4669 ? might be 1.0107x slower external-arguments-getbyval 1.5688+-0.1803 1.5364+-0.1499 might be 1.0211x faster external-arguments-putbyval 2.7455+-0.1109 2.6012+-0.0796 might be 1.0555x faster fixed-typed-array-storage-var-index 1.5784+-0.0223 ? 1.5940+-0.0336 ? fixed-typed-array-storage 1.2090+-0.0203 1.2055+-0.0592 Float32Array-matrix-mult 5.0745+-0.2028 4.9938+-0.0921 might be 1.0162x faster Float32Array-to-Float64Array-set 54.6872+-0.6227 ! 57.8745+-0.5846 ! definitely 1.0583x slower Float64Array-alloc-long-lived 87.4615+-1.0273 ? 87.5657+-2.1573 ? Float64Array-to-Int16Array-set 70.9818+-0.8323 ! 73.4004+-0.5106 ! definitely 1.0341x slower fold-double-to-int 14.7247+-0.1762 14.7180+-0.3810 fold-get-by-id-to-multi-get-by-offset-rare-int 10.6169+-0.4836 ? 10.6803+-1.0978 ? fold-get-by-id-to-multi-get-by-offset 9.4269+-0.5454 9.3851+-0.4437 fold-multi-get-by-offset-to-get-by-offset 7.8975+-0.5509 ? 7.9695+-0.5291 ? fold-multi-get-by-offset-to-poly-get-by-offset 9.1089+-0.6722 8.9977+-0.2517 might be 1.0124x faster fold-multi-put-by-offset-to-poly-put-by-offset 10.3375+-0.8193 ? 10.4849+-0.1288 ? might be 1.0143x slower fold-multi-put-by-offset-to-put-by-offset 6.4623+-0.3723 6.2089+-0.0832 might be 1.0408x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 12.9352+-0.9996 12.8314+-1.4967 fold-put-by-id-to-multi-put-by-offset 11.1688+-0.7609 11.1128+-0.6648 fold-put-by-val-with-string-to-multi-put-by-offset 11.4228+-0.8501 ? 12.1550+-0.3101 ? might be 1.0641x slower fold-put-by-val-with-symbol-to-multi-put-by-offset 12.0649+-0.7237 11.7993+-0.9112 might be 1.0225x faster fold-put-structure 5.6920+-0.1091 ? 5.9481+-0.6281 ? might be 1.0450x slower for-of-iterate-array-entries 12.8428+-0.3743 ? 13.0099+-0.6217 ? might be 1.0130x slower for-of-iterate-array-keys 4.3323+-0.4770 4.0525+-0.1044 might be 1.0691x faster for-of-iterate-array-values 4.1064+-0.3536 ? 4.1157+-0.2443 ? fround 17.2164+-0.6206 ? 17.3066+-0.9918 ? ftl-library-inlining-dataview 68.2321+-0.9907 ! 73.0328+-2.7124 ! definitely 1.0704x slower ftl-library-inlining 85.3702+-6.7550 ! 101.7737+-7.7224 ! definitely 1.1921x slower function-call 12.5651+-0.3200 12.4426+-0.1514 function-dot-apply 2.5968+-0.0251 2.5919+-0.0569 function-test 3.2151+-0.1027 ? 3.2335+-0.0647 ? function-with-eval 110.6265+-0.2985 ? 113.4136+-6.3099 ? might be 1.0252x slower gcse-poly-get-less-obvious 22.8365+-0.8640 22.7455+-0.2198 gcse-poly-get 27.0750+-4.2601 26.7712+-4.2581 might be 1.0113x faster gcse 4.7331+-0.1899 ? 4.8594+-0.5172 ? might be 1.0267x slower get-by-id-bimorphic-check-structure-elimination-simple 3.0269+-0.1322 2.9584+-0.0252 might be 1.0231x faster get-by-id-bimorphic-check-structure-elimination 6.5823+-0.3329 6.5514+-0.3677 get-by-id-chain-from-try-block 6.0735+-0.2163 ? 6.0839+-0.1297 ? get-by-id-check-structure-elimination 5.5975+-0.2537 5.5656+-0.4807 get-by-id-proto-or-self 18.6448+-3.0953 17.3132+-0.6520 might be 1.0769x faster get-by-id-quadmorphic-check-structure-elimination-simple 3.5404+-0.1842 3.4754+-0.0478 might be 1.0187x faster get-by-id-self-or-proto 18.1985+-2.7713 ? 18.2787+-2.8901 ? get-by-val-out-of-bounds 4.7210+-0.1550 4.6721+-0.0106 might be 1.0105x faster get-by-val-with-string-bimorphic-check-structure-elimination-simple 3.2297+-0.1534 3.0924+-0.1255 might be 1.0444x faster get-by-val-with-string-bimorphic-check-structure-elimination 7.5812+-0.0975 ? 7.5825+-0.1449 ? get-by-val-with-string-chain-from-try-block 6.0710+-0.0904 ? 6.1572+-0.2256 ? might be 1.0142x slower get-by-val-with-string-check-structure-elimination 6.5306+-0.2523 6.4643+-0.1619 might be 1.0103x faster get-by-val-with-string-proto-or-self 19.9135+-4.9856 19.2968+-5.7446 might be 1.0320x faster get-by-val-with-string-quadmorphic-check-structure-elimination-simple 4.0856+-0.2684 3.9866+-0.1921 might be 1.0248x faster get-by-val-with-string-self-or-proto 18.5351+-2.7989 ? 18.7604+-3.4143 ? might be 1.0122x slower get-by-val-with-symbol-bimorphic-check-structure-elimination-simple 4.1290+-0.4875 3.9883+-0.0945 might be 1.0353x faster get-by-val-with-symbol-bimorphic-check-structure-elimination 14.6425+-0.2303 ? 14.6533+-0.0690 ? get-by-val-with-symbol-chain-from-try-block 6.0824+-0.0775 ? 6.1449+-0.1674 ? might be 1.0103x slower get-by-val-with-symbol-check-structure-elimination 13.9239+-0.1994 13.7551+-0.0959 might be 1.0123x faster get-by-val-with-symbol-proto-or-self 18.6318+-3.5699 ? 18.7146+-2.5463 ? get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple 4.7333+-0.3114 4.7100+-0.2787 get-by-val-with-symbol-self-or-proto 17.7708+-0.6492 ? 18.6176+-2.6605 ? might be 1.0476x slower get_callee_monomorphic 2.6976+-0.0471 ? 2.7240+-0.1908 ? get_callee_polymorphic 3.7998+-0.1303 ? 3.8251+-0.2281 ? getter-no-activation 5.5576+-0.1153 5.5035+-0.1976 getter-prototype 12.3812+-0.2393 ? 12.6035+-0.1623 ? might be 1.0180x slower getter-richards 108.2291+-2.8455 107.9364+-0.6112 getter 5.9042+-0.0994 ? 5.9968+-0.2472 ? might be 1.0157x slower global-object-access-with-mutating-structure 6.0942+-0.3015 ? 6.1329+-0.2211 ? global-var-const-infer-fire-from-opt 1.0330+-0.1687 1.0047+-0.0282 might be 1.0282x faster global-var-const-infer 1.0078+-0.1775 ? 1.0210+-0.2820 ? might be 1.0131x slower hard-overflow-check-equal 53.1231+-0.2406 52.6664+-0.7344 hard-overflow-check 52.6982+-0.5580 52.3494+-0.6300 HashMap-put-get-iterate-keys 29.3154+-0.5712 ? 29.7616+-0.7079 ? might be 1.0152x slower HashMap-put-get-iterate 29.3003+-0.3060 ? 29.4941+-0.4633 ? HashMap-string-put-get-iterate 29.4344+-1.3981 28.4036+-0.8598 might be 1.0363x faster hoist-make-rope 9.5923+-1.7123 9.1724+-1.6214 might be 1.0458x faster hoist-poly-check-structure-effectful-loop 5.5543+-0.0241 ? 5.5661+-0.1551 ? hoist-poly-check-structure 3.9246+-0.0387 ? 3.9791+-0.1378 ? might be 1.0139x slower imul-double-only 6.6705+-0.4220 6.5861+-0.3112 might be 1.0128x faster imul-int-only 7.4628+-0.2407 7.4296+-0.3006 imul-mixed 6.2333+-0.9204 ? 6.4494+-0.8369 ? might be 1.0347x slower in-four-cases 22.0026+-0.2791 ? 22.1445+-0.7918 ? in-one-case-false 12.2765+-0.3877 11.9660+-0.2262 might be 1.0259x faster in-one-case-true 12.0403+-0.1916 ? 12.2253+-0.2184 ? might be 1.0154x slower in-two-cases 13.1022+-0.1742 13.0113+-0.2153 indexed-properties-in-objects 3.3224+-0.1155 ? 4.0531+-2.0128 ? might be 1.2199x slower infer-closure-const-then-mov-no-inline 4.4571+-0.1659 ? 4.4952+-0.0924 ? infer-closure-const-then-mov 18.2888+-0.4157 18.0943+-0.6814 might be 1.0108x faster infer-closure-const-then-put-to-scope-no-inline 13.1842+-0.5077 ? 13.3171+-0.1392 ? might be 1.0101x slower infer-closure-const-then-put-to-scope 23.6145+-1.4146 ? 24.5007+-0.5680 ? might be 1.0375x slower infer-closure-const-then-reenter-no-inline 59.4333+-0.1783 ? 59.4834+-0.2891 ? infer-closure-const-then-reenter 23.7703+-0.4772 ? 24.7847+-1.0060 ? might be 1.0427x slower infer-constant-global-property 3.9059+-0.1343 3.8763+-0.0484 infer-constant-property 3.1425+-0.1200 2.9939+-0.0915 might be 1.0496x faster infer-one-time-closure-ten-vars 9.7555+-0.6599 9.6486+-0.3119 might be 1.0111x faster infer-one-time-closure-two-vars 9.1502+-0.4508 ? 9.2570+-0.0655 ? might be 1.0117x slower infer-one-time-closure 8.9015+-0.2623 ? 9.1566+-0.5591 ? might be 1.0287x slower infer-one-time-deep-closure 15.5337+-0.5211 ? 15.5502+-0.3177 ? inline-arguments-access 4.3012+-0.1332 4.2126+-0.0711 might be 1.0210x faster inline-arguments-aliased-access 4.2302+-0.0886 ? 4.3643+-0.2766 ? might be 1.0317x slower inline-arguments-local-escape 4.2955+-0.0822 4.2557+-0.1938 inline-get-scoped-var 5.5092+-0.1719 ? 5.5130+-0.0333 ? inlined-put-by-id-transition 11.0466+-0.3856 ? 11.2091+-0.7156 ? might be 1.0147x slower inlined-put-by-val-with-string-transition 49.7241+-0.8599 49.5027+-0.6879 inlined-put-by-val-with-symbol-transition 49.6205+-0.8762 49.5827+-0.1764 int-or-other-abs-then-get-by-val 5.2975+-0.3505 ? 5.3448+-0.2639 ? int-or-other-abs-zero-then-get-by-val 17.8883+-0.3787 17.8868+-0.5562 int-or-other-add-then-get-by-val 4.7955+-0.1422 4.7725+-0.2178 int-or-other-add 5.8253+-0.2411 ? 5.8278+-0.1798 ? int-or-other-div-then-get-by-val 4.4576+-0.0827 ? 4.5757+-0.1726 ? might be 1.0265x slower int-or-other-max-then-get-by-val 4.7620+-0.1570 ? 4.8051+-0.3309 ? int-or-other-min-then-get-by-val 4.5877+-0.1047 ? 4.6812+-0.1460 ? might be 1.0204x slower int-or-other-mod-then-get-by-val 4.0624+-0.0934 ? 4.1971+-0.1286 ? might be 1.0332x slower int-or-other-mul-then-get-by-val 4.3468+-0.0839 4.3175+-0.1514 int-or-other-neg-then-get-by-val 4.9346+-0.2368 4.8440+-0.1689 might be 1.0187x faster int-or-other-neg-zero-then-get-by-val 17.6385+-0.3398 ? 18.3288+-1.5514 ? might be 1.0391x slower int-or-other-sub-then-get-by-val 4.9095+-0.0498 ? 4.9121+-0.1112 ? int-or-other-sub 3.9445+-0.0954 ? 4.0037+-0.0641 ? might be 1.0150x slower int-overflow-local 4.9790+-0.1559 4.9189+-0.1659 might be 1.0122x faster Int16Array-alloc-long-lived 53.8672+-1.0874 ? 53.9400+-1.0696 ? Int16Array-bubble-sort-with-byteLength 21.7380+-0.2041 ! 23.3881+-0.7897 ! definitely 1.0759x slower Int16Array-bubble-sort 21.0056+-0.7643 ! 23.3905+-0.3603 ! definitely 1.1135x slower Int16Array-load-int-mul 1.8010+-0.0349 ? 1.8264+-0.0887 ? might be 1.0141x slower Int16Array-to-Int32Array-set 58.4927+-0.4355 ^ 53.3931+-1.5254 ^ definitely 1.0955x faster Int32Array-alloc-large 20.7781+-0.5200 ? 21.2060+-0.5504 ? might be 1.0206x slower Int32Array-alloc-long-lived 64.6129+-1.4303 ? 65.4820+-1.4588 ? might be 1.0135x slower Int32Array-alloc 2.7354+-0.0396 ? 2.8274+-0.1967 ? might be 1.0336x slower Int32Array-Int8Array-view-alloc 6.7985+-0.1783 6.6442+-0.0447 might be 1.0232x faster int52-spill 5.8488+-0.2469 5.8333+-0.1249 Int8Array-alloc-long-lived 47.7485+-0.4171 47.7425+-0.9773 Int8Array-load-with-byteLength 3.6738+-0.0676 ? 3.6968+-0.0672 ? Int8Array-load 3.7245+-0.0640 3.7166+-0.1518 integer-divide 12.6697+-1.1481 12.4412+-0.1683 might be 1.0184x faster integer-modulo 2.4300+-0.1035 2.3798+-0.0791 might be 1.0211x faster is-boolean-fold-tricky 4.4983+-0.0679 ? 4.5880+-0.2703 ? might be 1.0199x slower is-boolean-fold 3.1512+-0.1145 ? 3.1630+-0.1106 ? is-function-fold-tricky-internal-function 12.1884+-0.0773 ! 12.7218+-0.1508 ! definitely 1.0438x slower is-function-fold-tricky 4.6455+-0.1064 ? 4.7042+-0.2289 ? might be 1.0126x slower is-function-fold 3.1310+-0.0807 3.1069+-0.0884 is-number-fold-tricky 4.5527+-0.1503 4.5072+-0.0733 might be 1.0101x faster is-number-fold 3.1432+-0.2023 3.0825+-0.1145 might be 1.0197x faster is-object-or-null-fold-functions 3.2886+-0.1961 3.2835+-0.2464 is-object-or-null-fold-less-tricky 4.6042+-0.1916 4.5967+-0.0856 is-object-or-null-fold-tricky 6.3550+-0.1745 6.3372+-0.1004 is-object-or-null-fold 3.2062+-0.2001 3.1422+-0.0611 might be 1.0204x faster is-object-or-null-trickier-function 4.7308+-0.1447 4.6909+-0.1330 is-object-or-null-trickier-internal-function 12.6672+-0.2128 ? 12.8444+-0.1458 ? might be 1.0140x slower is-object-or-null-tricky-function 4.6712+-0.0479 ? 4.8320+-0.2071 ? might be 1.0344x slower is-object-or-null-tricky-internal-function 9.4990+-0.0386 ! 9.6522+-0.1068 ! definitely 1.0161x slower is-string-fold-tricky 4.5215+-0.0648 4.4880+-0.0849 is-string-fold 3.0846+-0.0405 ? 3.1155+-0.1024 ? might be 1.0100x slower is-undefined-fold-tricky 3.7652+-0.1062 3.7279+-0.0408 might be 1.0100x faster is-undefined-fold 3.1428+-0.0810 3.0930+-0.0617 might be 1.0161x faster JSONP-negative-0 0.3908+-0.0331 ? 0.3962+-0.0536 ? might be 1.0137x slower large-int-captured 4.7368+-0.2116 4.7290+-0.1282 large-int-neg 16.0886+-0.4964 ? 16.1848+-0.5565 ? large-int 14.6126+-0.6274 14.5823+-0.5471 load-varargs-elimination 24.8365+-0.7590 ? 24.9482+-0.3441 ? logical-not-weird-types 3.8774+-0.0830 3.8004+-0.0746 might be 1.0203x faster logical-not 5.0198+-0.0935 ? 5.0700+-0.0805 ? lots-of-fields 12.2990+-0.9051 12.1740+-0.3648 might be 1.0103x faster make-indexed-storage 3.4527+-0.1677 3.1910+-0.4418 might be 1.0820x faster make-rope-cse 3.9208+-0.4063 3.8467+-0.2791 might be 1.0192x faster marsaglia-larger-ints 40.5367+-1.0501 39.8842+-0.9609 might be 1.0164x faster marsaglia-osr-entry 22.1937+-0.6693 ? 22.4345+-0.5269 ? might be 1.0108x slower math-with-out-of-bounds-array-values 25.1246+-0.3113 ? 25.4286+-0.3949 ? might be 1.0121x slower max-boolean 2.7662+-0.1314 ? 2.8574+-0.1025 ? might be 1.0330x slower method-on-number 18.3702+-0.6622 ? 19.0658+-0.3204 ? might be 1.0379x slower min-boolean 2.8196+-0.0674 2.8105+-0.0745 minus-boolean-double 3.5003+-0.2126 ? 3.5027+-0.0991 ? minus-boolean 2.6059+-0.0448 ? 2.6720+-0.1017 ? might be 1.0254x slower misc-strict-eq 32.9980+-2.1335 ? 33.9673+-1.0231 ? might be 1.0294x slower mod-boolean-double 11.6408+-0.1082 11.4771+-0.1813 might be 1.0143x faster mod-boolean 8.3013+-0.0469 ? 8.3367+-0.1115 ? mul-boolean-double 4.0350+-0.1238 ? 4.0991+-0.1007 ? might be 1.0159x slower mul-boolean 3.1696+-0.1403 ? 3.2272+-0.1162 ? might be 1.0182x slower neg-boolean 3.6008+-0.2842 3.4625+-0.0613 might be 1.0400x faster negative-zero-divide 0.5229+-0.0401 ? 0.5325+-0.0179 ? might be 1.0183x slower negative-zero-modulo 0.5060+-0.0339 ? 0.5262+-0.0151 ? might be 1.0398x slower negative-zero-negate 0.5250+-0.0258 ? 0.5654+-0.1424 ? might be 1.0770x slower nested-function-parsing 55.2430+-1.1088 ^ 53.0649+-0.9822 ^ definitely 1.0410x faster new-array-buffer-dead 106.6616+-1.0923 ? 107.2172+-1.2857 ? new-array-buffer-push 6.9430+-0.2282 6.9383+-0.2599 new-array-dead 17.1138+-2.5506 14.9310+-0.5942 might be 1.1462x faster new-array-push 4.0809+-0.1468 3.9954+-0.1363 might be 1.0214x faster no-inline-constructor 37.6915+-0.3192 37.5555+-0.4416 number-test 3.4291+-0.0442 ? 3.4589+-0.2106 ? object-closure-call 6.2952+-0.0631 ? 6.4268+-0.4713 ? might be 1.0209x slower object-get-own-property-symbols-on-large-array 4.1165+-0.3802 4.0236+-0.0947 might be 1.0231x faster object-test 3.3125+-0.1854 3.1569+-0.0269 might be 1.0493x faster obvious-sink-pathology-taken 124.5929+-0.5280 ? 125.0524+-0.6721 ? obvious-sink-pathology 117.5924+-1.1300 117.2501+-1.2841 obviously-elidable-new-object 29.8876+-4.3213 28.8047+-1.0649 might be 1.0376x faster plus-boolean-arith 2.8110+-0.0537 ? 2.8268+-0.0629 ? plus-boolean-double 3.5860+-0.3055 3.5031+-0.1497 might be 1.0237x faster plus-boolean 2.6479+-0.0940 ? 2.6753+-0.0461 ? might be 1.0103x slower poly-chain-access-different-prototypes-simple 4.4873+-0.1377 4.4645+-0.2329 poly-chain-access-different-prototypes 4.5804+-0.3487 4.5065+-0.1887 might be 1.0164x faster poly-chain-access-simpler 4.4668+-0.1540 ? 4.5073+-0.2103 ? poly-chain-access 4.4688+-0.0546 ? 4.4688+-0.1069 ? poly-stricteq 65.2650+-0.3076 ^ 64.1461+-0.7799 ^ definitely 1.0174x faster polymorphic-array-call 1.6577+-0.1252 ? 1.7103+-0.0656 ? might be 1.0317x slower polymorphic-get-by-id 3.7065+-0.0583 3.6837+-0.0312 polymorphic-put-by-id 35.5652+-0.8091 34.9481+-0.3013 might be 1.0177x faster polymorphic-put-by-val-with-string 36.6308+-0.6685 ? 36.6917+-0.4215 ? polymorphic-put-by-val-with-symbol 36.7618+-0.1500 ? 37.0685+-0.8657 ? polymorphic-structure 16.0342+-0.3852 15.7387+-0.2286 might be 1.0188x faster polyvariant-monomorphic-get-by-id 9.2830+-0.2353 ? 9.3631+-0.7306 ? proto-getter-access 8.3293+-0.3494 ? 8.6104+-0.3477 ? might be 1.0337x slower prototype-access-with-mutating-prototype 5.7056+-0.3315 ? 5.8647+-0.3423 ? might be 1.0279x slower put-by-id-replace-and-transition 9.7278+-0.4674 9.6188+-0.1756 might be 1.0113x faster put-by-id-slightly-polymorphic 3.1567+-0.1258 3.1434+-0.1298 put-by-id 12.6862+-0.3990 ? 12.8585+-0.4686 ? might be 1.0136x slower put-by-val-direct 0.5599+-0.0108 ? 0.5620+-0.0399 ? put-by-val-large-index-blank-indexing-type 5.8495+-0.4444 5.5744+-0.0711 might be 1.0493x faster put-by-val-machine-int 2.9068+-0.0831 ? 2.9146+-0.2627 ? put-by-val-with-string-replace-and-transition 14.4487+-1.3228 13.9974+-0.3094 might be 1.0322x faster put-by-val-with-string-slightly-polymorphic 4.1116+-0.1238 ? 4.2819+-0.6686 ? might be 1.0414x slower put-by-val-with-string 13.2440+-0.2700 ? 13.3961+-0.5930 ? might be 1.0115x slower put-by-val-with-symbol-replace-and-transition 15.0317+-0.5304 15.0240+-0.3735 put-by-val-with-symbol-slightly-polymorphic 4.0765+-0.1027 4.0488+-0.1598 put-by-val-with-symbol 13.2420+-0.0778 ? 13.3092+-0.5175 ? rare-osr-exit-on-local 15.0540+-0.4468 ? 15.3038+-0.7393 ? might be 1.0166x slower register-pressure-from-osr 23.0023+-0.5199 22.8749+-0.6278 repeat-multi-get-by-offset 25.2162+-0.2813 ? 25.5941+-0.5384 ? might be 1.0150x slower setter-prototype 7.5236+-0.2044 ? 7.6197+-0.7912 ? might be 1.0128x slower setter 6.1618+-0.2152 6.1022+-0.0705 simple-activation-demo 26.6537+-0.3498 26.5323+-0.2905 simple-getter-access 11.2228+-0.2778 11.2035+-0.9184 simple-poly-call-nested 7.9392+-0.1828 ? 8.0836+-0.2967 ? might be 1.0182x slower simple-poly-call 1.6960+-0.0452 1.6802+-0.0418 sin-boolean 18.2958+-0.1517 18.1707+-0.3601 singleton-scope 65.7258+-0.6610 ? 65.8408+-1.3708 ? sink-function 10.1452+-0.4399 ? 10.1749+-0.4044 ? sink-huge-activation 16.2695+-0.3357 ? 16.4393+-0.5550 ? might be 1.0104x slower sinkable-new-object-dag 64.5400+-8.6404 ? 67.0403+-1.7564 ? might be 1.0387x slower sinkable-new-object-taken 49.2160+-0.4686 49.0378+-1.2202 sinkable-new-object 36.5236+-0.3121 35.7310+-3.5649 might be 1.0222x faster slow-array-profile-convergence 3.1595+-0.0540 ? 3.1852+-0.1749 ? slow-convergence 3.0402+-0.2725 3.0206+-0.0409 slow-ternaries 19.1595+-0.5126 ? 19.2150+-0.4439 ? sorting-benchmark 20.3738+-0.3620 19.9596+-0.1493 might be 1.0208x faster sparse-conditional 1.5189+-0.0424 ? 1.5336+-0.0508 ? splice-to-remove 15.7368+-0.9727 15.3914+-0.1856 might be 1.0224x faster string-char-code-at 17.4854+-0.1670 ? 17.5253+-0.6077 ? string-concat-object 2.3218+-0.1292 ? 2.3701+-0.2554 ? might be 1.0208x slower string-concat-pair-object 2.1503+-0.0451 ? 2.1808+-0.0991 ? might be 1.0142x slower string-concat-pair-simple 11.6962+-0.1592 11.5507+-0.1605 might be 1.0126x faster string-concat-simple 12.0999+-0.3453 12.0681+-0.3436 string-cons-repeat 7.6475+-0.1501 ? 7.7543+-0.2845 ? might be 1.0140x slower string-cons-tower 8.0410+-0.6392 7.8224+-0.1678 might be 1.0279x faster string-equality 18.5906+-0.1861 18.4943+-0.3761 string-get-by-val-big-char 7.2769+-0.1642 ? 7.3173+-0.1132 ? string-get-by-val-out-of-bounds-insane 3.8461+-0.0590 ? 3.9437+-0.1560 ? might be 1.0254x slower string-get-by-val-out-of-bounds 5.5264+-0.2404 ? 5.5761+-0.2715 ? string-get-by-val 3.6389+-0.0782 3.6154+-0.2378 string-hash 2.3807+-0.0986 ? 2.4231+-0.1512 ? might be 1.0178x slower string-long-ident-equality 15.4088+-0.2734 15.3124+-0.4170 string-out-of-bounds 12.7224+-0.2176 12.5309+-0.2523 might be 1.0153x faster string-repeat-arith 34.3174+-2.0218 33.6370+-0.6571 might be 1.0202x faster string-sub 70.6385+-0.7024 69.2532+-1.5395 might be 1.0200x faster string-test 3.2553+-0.0524 ? 3.3680+-0.1940 ? might be 1.0346x slower string-var-equality 34.0363+-0.5889 ? 34.2701+-0.2880 ? structure-hoist-over-transitions 2.6616+-0.0532 ? 2.7012+-0.1455 ? might be 1.0149x slower substring-concat-weird 43.2397+-0.7307 ? 43.5719+-2.0647 ? substring-concat 46.9651+-0.6640 46.6758+-0.6189 substring 52.0125+-1.7227 51.3823+-0.6849 might be 1.0123x faster switch-char-constant 3.0483+-0.0252 ? 3.0612+-0.0981 ? switch-char 6.9095+-0.2386 6.6958+-0.1456 might be 1.0319x faster switch-constant 11.7318+-1.1099 11.2012+-1.0747 might be 1.0474x faster switch-string-basic-big-var 22.0388+-0.6644 ? 22.1835+-1.3931 ? switch-string-basic-big 19.3062+-0.4938 ? 19.4990+-0.5091 ? switch-string-basic-var 16.1727+-0.2487 ^ 15.8146+-0.0661 ^ definitely 1.0226x faster switch-string-basic 15.0780+-0.7544 ? 15.2633+-0.9609 ? might be 1.0123x slower switch-string-big-length-tower-var 21.2589+-0.4049 ? 21.2808+-0.5299 ? switch-string-length-tower-var 15.8157+-0.4398 ? 15.8580+-0.4894 ? switch-string-length-tower 13.3525+-0.3404 13.2632+-0.2221 switch-string-short 13.4604+-0.2416 13.3218+-0.3024 might be 1.0104x faster switch 14.8997+-0.6189 14.7243+-0.4209 might be 1.0119x faster tear-off-arguments-simple 3.4080+-0.0668 3.3970+-0.0567 tear-off-arguments 4.4963+-0.0434 ? 4.6071+-0.1783 ? might be 1.0247x slower temporal-structure 14.0770+-0.2420 ? 14.3173+-0.4359 ? might be 1.0171x slower to-int32-boolean 14.1996+-0.3602 ? 14.2188+-0.1128 ? try-catch-get-by-val-cloned-arguments 15.8323+-1.2526 15.7555+-0.9223 try-catch-get-by-val-direct-arguments 7.0589+-0.1250 ? 7.1021+-0.1582 ? try-catch-get-by-val-scoped-arguments 8.2290+-0.2692 ? 8.4306+-0.7312 ? might be 1.0245x slower typed-array-get-set-by-val-profiling 30.4668+-1.2228 30.0059+-0.3001 might be 1.0154x faster undefined-property-access 381.8022+-1.2962 380.6481+-1.1555 undefined-test 3.5732+-0.2782 3.3777+-0.0545 might be 1.0579x faster unprofiled-licm 20.0573+-0.4678 19.9504+-0.3552 varargs-call 14.8782+-0.2887 14.7787+-0.2599 varargs-construct-inline 26.8729+-0.8669 ? 27.1504+-1.1152 ? might be 1.0103x slower varargs-construct 23.6143+-0.6193 23.4274+-0.4016 varargs-inline 9.4180+-0.1135 ? 9.6813+-0.4002 ? might be 1.0280x slower varargs-strict-mode 10.6765+-0.1564 ? 10.9326+-0.4810 ? might be 1.0240x slower varargs 10.6583+-0.1391 ? 10.6970+-0.1308 ? weird-inlining-const-prop 2.7065+-0.2282 2.6072+-0.0594 might be 1.0381x faster <geometric> 9.3874+-0.0404 ? 9.4019+-0.0213 ? might be 1.0015x slower Base Patch AsmBench: bigfib.cpp 530.6050+-4.7992 528.9125+-4.5683 cray.c 455.1603+-1.6152 454.4106+-3.5056 dry.c 518.4598+-18.3419 ? 536.6057+-64.9103 ? might be 1.0350x slower FloatMM.c 764.1703+-3.1253 ? 764.9570+-2.0790 ? gcc-loops.cpp 4190.6880+-16.4163 ? 4200.0031+-35.8657 ? n-body.c 1044.6917+-2.9882 ? 1070.4802+-85.7897 ? might be 1.0247x slower Quicksort.c 443.0504+-12.8461 ? 445.0960+-11.5144 ? stepanov_container.cpp 3920.7372+-44.1427 3905.0117+-39.4533 Towers.c 267.6252+-1.1371 ? 273.6849+-10.8426 ? might be 1.0226x slower <geometric> 833.7482+-2.6284 ? 840.9349+-8.1292 ? might be 1.0086x slower Base Patch CompressionBench: huffman 66.2660+-0.7296 ? 67.2934+-2.0024 ? might be 1.0155x slower arithmetic-simple 354.0092+-1.5137 353.5115+-2.5230 arithmetic-precise 286.8986+-2.8166 ? 287.7123+-0.8299 ? arithmetic-complex-precise 287.8580+-1.4566 ? 292.2696+-8.6534 ? might be 1.0153x slower arithmetic-precise-order-0 364.5208+-3.1957 363.2017+-1.2000 arithmetic-precise-order-1 339.4022+-1.2620 337.0495+-3.1161 arithmetic-precise-order-2 400.4547+-3.7089 ? 401.1214+-4.8419 ? arithmetic-simple-order-1 409.5321+-3.5236 406.4100+-3.1946 arithmetic-simple-order-2 469.2952+-2.6152 468.1528+-2.1794 lz-string 316.1329+-8.0798 ? 333.2802+-29.8763 ? might be 1.0542x slower <geometric> 299.6219+-0.9096 ? 301.5640+-2.2076 ? might be 1.0065x slower Base Patch Geomean of preferred means: <scaled-result> 61.1781+-0.0963 ? 61.2673+-0.1508 ? might be 1.0015x slower ===== ~>
Saam Barati
Comment 3 2015-09-16 14:16:57 PDT
Comment on attachment 261317 [details] Patch r=me
Mark Lam
Comment 4 2015-09-16 14:37:21 PDT
Comment on attachment 261317 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=261317&action=review > Source/JavaScriptCore/bytecode/CodeBlock.cpp:2345 > // their weak references go stale. So if a basline JIT CodeBlock gets typo in "basline". Might as well fix it. > Source/JavaScriptCore/bytecode/CodeBlock.cpp:-3109 > - RELEASE_ASSERT(JITCode::isOptimizingJIT(jitType())); > - > - if (Profiler::Compilation* compilation = jitCode()->dfgCommon()->compilation.get()) > - compilation->setJettisonReason(reason, detail); If I'm reading this code correctly, you're allowing jettison() to be called on baseline codeBlocks, yes? If so, according to the source on ToT, CodeBlock::jettison() has all the interesting bits guarded under #if ENABLE(DFG_JIT). Should the #if ENABLE(DFG_JIT) be removed now? If so, something should be done about the "if (DFG::shouldShowDisassembly())" case above this. Do we want to do the disassembly for jettisoning non-DFG codeBlocks as well? Or am I reading this wrong?
Geoffrey Garen
Comment 5 2015-09-16 14:39:33 PDT
Comment on attachment 261317 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=261317&action=review >> Source/JavaScriptCore/bytecode/CodeBlock.cpp:-3109 >> - compilation->setJettisonReason(reason, detail); > > If I'm reading this code correctly, you're allowing jettison() to be called on baseline codeBlocks, yes? > If so, according to the source on ToT, CodeBlock::jettison() has all the interesting bits guarded under #if ENABLE(DFG_JIT). Should the #if ENABLE(DFG_JIT) be removed now? > If so, something should be done about the "if (DFG::shouldShowDisassembly())" case above this. Do we want to do the disassembly for jettisoning non-DFG codeBlocks as well? > > Or am I reading this wrong? Yeah, I think you're right about this -- I think this patch breaks the no DFG build.
Geoffrey Garen
Comment 6 2015-09-16 17:28:46 PDT
Note You need to log in before you can comment on or make changes to this bug.