Bug 149220 - JavaScriptCore should discard baseline code after some time
Summary: JavaScriptCore should discard baseline code after some time
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Geoffrey Garen
URL:
Keywords:
Depends on: 149341
Blocks:
  Show dependency treegraph
 
Reported: 2015-09-16 10:07 PDT by Geoffrey Garen
Modified: 2015-09-18 04:42 PDT (History)
2 users (show)

See Also:


Attachments
Patch (23.22 KB, patch)
2015-09-16 10:20 PDT, Geoffrey Garen
saam: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Geoffrey Garen 2015-09-16 10:07:42 PDT
JavaScriptCore should discard baseline code after some time
Comment 1 Geoffrey Garen 2015-09-16 10:20:05 PDT
Created attachment 261317 [details]
Patch
Comment 2 Geoffrey Garen 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

=====
~>
Comment 3 Saam Barati 2015-09-16 14:16:57 PDT
Comment on attachment 261317 [details]
Patch

r=me
Comment 4 Mark Lam 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?
Comment 5 Geoffrey Garen 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.
Comment 6 Geoffrey Garen 2015-09-16 17:28:46 PDT
Committed r189889: <http://trac.webkit.org/changeset/189889>