Bug 151350

Summary: It's best for the DFG to always have some guess of basic block frequency
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, keith_miller, mark.lam, msaboff, saam
Priority: P2    
Version: WebKit Nightly Build   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 150279    
Attachments:
Description Flags
the patch ggaren: review+

Description Filip Pizlo 2015-11-17 10:31:52 PST
Previously we used PNaN whenever we weren't sure about the execution frequency. This was partly to ensure that the execution frequencies "made sense".  I think that this is the wrong approach, and it's definitely not profitable when you consider how B3 will use the frequencies.  We should define frequency by what effects it has on optimization and correctness.  I propose:

- Frequency has no effect on correctness.  It should be OK to pass any bag of double bits, including NaN, as the frequency.  Using NaN could cause the compiler to make silly and unprofitable decisions, but it shouldn't break anything.

- Frequency should be used for register allocation and layout.  Higher frequency means that we want to prioritize that basic block.  Some optimizations that frequency will affect:

    Register allocation: temporaries used in a block with higher frequency will get higher priority.

    Layout: when a block branches to multiple blocks, the block with highest frequency is likely to be scheduled closest, so that in the best case it will be the fall-through block.
Comment 1 Filip Pizlo 2015-11-17 11:35:04 PST
Created attachment 265685 [details]
the patch
Comment 2 Filip Pizlo 2015-11-17 12:19:41 PST
Looks like I didn't break anything.


Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on bigmac (MacPro5,1).

VMs tested:
"TipOfTree" at /Volumes/Data/primary/OpenSource/WebKitBuild/Release/jsc (r192514)
"Frequency" at /Volumes/Data/fromMiniMe/tertiary/OpenSource/WebKitBuild/Release/jsc (r192514)

Collected 6 samples per benchmark/VM, with 6 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.

                                                        TipOfTree                 Frequency                                     
SunSpider:
   3d-cube                                            8.2552+-0.2761     ?      8.2840+-0.2600        ?
   3d-morph                                           8.0624+-0.1060     ?      8.1407+-0.1934        ?
   3d-raytrace                                        9.1723+-0.1483            9.0389+-0.1691          might be 1.0148x faster
   access-binary-trees                                3.1639+-0.0969     ?      3.3289+-0.1065        ? might be 1.0521x slower
   access-fannkuch                                    8.9762+-0.0995     ?      9.1875+-0.1178        ? might be 1.0235x slower
   access-nbody                                       4.4832+-0.1974     ?      4.4981+-0.1389        ?
   access-nsieve                                      4.6182+-0.1009     ?      4.6332+-0.0959        ?
   bitops-3bit-bits-in-byte                           1.7852+-0.0663            1.7181+-0.0727          might be 1.0391x faster
   bitops-bits-in-byte                                5.4035+-0.0782     ?      5.4107+-0.0770        ?
   bitops-bitwise-and                                 2.8831+-0.0901     ?      2.9375+-0.1121        ? might be 1.0189x slower
   bitops-nsieve-bits                                 4.5863+-0.1098            4.5193+-0.0880          might be 1.0148x faster
   controlflow-recursive                              3.5874+-0.0719     ?      3.6277+-0.0779        ? might be 1.0112x slower
   crypto-aes                                         6.4564+-0.1544     ?      6.6393+-0.2153        ? might be 1.0283x slower
   crypto-md5                                         3.9731+-0.1205     ?      3.9788+-0.1551        ?
   crypto-sha1                                        3.5166+-0.1260     ?      3.5281+-0.0821        ?
   date-format-tofte                                 12.8392+-0.4077     ?     13.0559+-0.1864        ? might be 1.0169x slower
   date-format-xparb                                  7.3150+-0.1442            7.1263+-0.0911          might be 1.0265x faster
   math-cordic                                        4.5268+-0.1080            4.5085+-0.0759        
   math-partial-sums                                  9.8123+-0.1377     ?      9.8249+-0.1209        ?
   math-spectral-norm                                 3.1609+-0.0525     ?      3.1905+-0.0732        ?
   regexp-dna                                         9.9397+-0.2866            9.7598+-0.2963          might be 1.0184x faster
   string-base64                                      6.4617+-0.2013     ?      6.5350+-0.1473        ? might be 1.0113x slower
   string-fasta                                       9.2694+-0.0970     ?      9.3592+-0.1756        ?
   string-tagcloud                                   13.0232+-0.3141           13.0118+-0.3682        
   string-unpack-code                                26.4421+-0.3806     !     27.1060+-0.1460        ! definitely 1.0251x slower
   string-validate-input                              6.7637+-0.1101     ?      6.8742+-0.1901        ? might be 1.0163x slower

   <arithmetic>                                       7.2491+-0.0282     ?      7.3009+-0.0299        ? might be 1.0071x slower

                                                        TipOfTree                 Frequency                                     
LongSpider:
   3d-cube                                         1168.0347+-12.1911    ?   1175.0166+-24.1645       ?
   3d-morph                                        1865.5320+-1.6161         1864.3220+-1.5858        
   3d-raytrace                                      993.8361+-9.7404     ?    998.0582+-8.0634        ?
   access-binary-trees                             1345.0069+-3.6972         1344.8436+-4.8203        
   access-fannkuch                                  473.7666+-18.4344    ?    477.6772+-26.1713       ?
   access-nbody                                    1009.8978+-1.6922         1008.9511+-1.3062        
   access-nsieve                                    681.7806+-5.8602     ?    683.2169+-6.2073        ?
   bitops-3bit-bits-in-byte                          45.4134+-0.2441     ?     45.4861+-0.3360        ?
   bitops-bits-in-byte                              320.7441+-2.7017     ?    323.5087+-2.8557        ?
   bitops-nsieve-bits                               618.2791+-3.3224     ?    619.0898+-1.9934        ?
   controlflow-recursive                            749.5474+-3.8963     !    786.5164+-0.6514        ! definitely 1.0493x slower
   crypto-aes                                       893.3391+-3.1467     ?    901.0236+-5.6981        ?
   crypto-md5                                       778.0427+-2.1970     ?    780.8865+-3.5824        ?
   crypto-sha1                                     1014.7714+-15.2412        1009.3311+-6.3278        
   date-format-tofte                               1013.4473+-18.7723    ?   1017.8041+-6.3546        ?
   date-format-xparb                               1012.7555+-5.2011     ?   1047.9561+-69.4851       ? might be 1.0348x slower
   hash-map                                         229.4480+-1.1970          228.4441+-3.3908        
   math-cordic                                      632.0919+-2.0133          631.5754+-0.4726        
   math-partial-sums                               1075.7268+-2.9355     ?   1076.1337+-1.6245        ?
   math-spectral-norm                              1074.1571+-1.5023         1073.8257+-1.1795        
   string-base64                                    563.8782+-3.9463          563.5545+-1.7302        
   string-fasta                                     587.0468+-6.0297     ?    591.1757+-4.0245        ?
   string-tagcloud                                  285.8868+-1.5750          285.2466+-1.6825        

   <geometric>                                      661.1342+-1.6209     ?    664.6166+-2.5511        ? might be 1.0053x slower

                                                        TipOfTree                 Frequency                                     
V8Spider:
   crypto                                            74.1752+-1.1729     ?     74.7887+-1.2297        ?
   deltablue                                         94.1368+-2.5731     ?     96.4892+-6.3399        ? might be 1.0250x slower
   earley-boyer                                      65.5438+-0.3772     ?     66.4294+-0.6927        ? might be 1.0135x slower
   raytrace                                          43.2033+-1.3821           42.3623+-1.5541          might be 1.0199x faster
   regexp                                           102.5854+-0.3257     ?    102.9226+-0.5307        ?
   richards                                          78.4596+-1.4547           78.0616+-0.8865        
   splay                                             53.4592+-0.4520     ?     53.9432+-0.6842        ?

   <geometric>                                       70.3186+-0.5699     ?     70.6486+-0.9741        ? might be 1.0047x slower

                                                        TipOfTree                 Frequency                                     
Octane:
   encrypt                                           0.26371+-0.00710    ^     0.25493+-0.00130       ^ definitely 1.0344x faster
   decrypt                                           4.77881+-0.00690    ?     4.78716+-0.00786       ?
   deltablue                                x2       0.21822+-0.00116    ?     0.22095+-0.00158       ? might be 1.0125x slower
   earley                                            0.51106+-0.00173          0.51029+-0.00617       
   boyer                                             8.31045+-0.07589          8.22905+-0.04754       
   navier-stokes                            x2       6.32991+-0.01177          6.32397+-0.00369       
   raytrace                                 x2       1.47195+-0.00806    ?     1.47638+-0.00756       ?
   richards                                 x2       0.15245+-0.00118          0.15201+-0.00087       
   splay                                    x2       0.53307+-0.00254    ?     0.53379+-0.00373       ?
   regexp                                   x2      38.28769+-0.14871    ?    38.33249+-0.11896       ?
   pdfjs                                    x2      60.26650+-0.49908         60.15724+-0.34679       
   mandreel                                 x2      66.23484+-1.10373    ?    66.78193+-1.11426       ?
   gbemu                                    x2      55.09957+-1.23098    ?    55.68769+-1.28158       ? might be 1.0107x slower
   closure                                           0.94113+-0.00263    ?     0.94568+-0.00239       ?
   jquery                                           12.91019+-0.06343    ?    13.00293+-0.05667       ?
   box2d                                    x2      16.40449+-0.10838         16.33493+-0.14011       
   zlib                                     x2     572.64501+-20.31403   ?   582.50724+-4.82843       ? might be 1.0172x slower
   typescript                               x2    1134.73979+-5.65880    ?  1140.29716+-4.50410       ?

   <geometric>                                       8.67937+-0.02589    ?     8.69890+-0.02009       ? might be 1.0023x slower

                                                        TipOfTree                 Frequency                                     
Kraken:
   ai-astar                                          217.665+-15.310           212.015+-1.017           might be 1.0266x faster
   audio-beat-detection                               79.294+-0.787             79.111+-0.508         
   audio-dft                                         127.961+-1.334      ?     128.615+-1.129         ?
   audio-fft                                          58.320+-0.216      ?      58.447+-0.187         ?
   audio-oscillator                                   93.070+-0.222             92.951+-0.478         
   imaging-darkroom                                   94.864+-0.293      ?      95.085+-0.275         ?
   imaging-desaturate                                 90.086+-0.584             89.739+-0.202         
   imaging-gaussian-blur                             154.588+-2.042            154.556+-1.404         
   json-parse-financial                               68.341+-0.505      !      69.346+-0.497         ! definitely 1.0147x slower
   json-stringify-tinderbox                           40.844+-0.190             40.791+-0.189         
   stanford-crypto-aes                                63.431+-0.580      ?      63.509+-0.646         ?
   stanford-crypto-ccm                                62.886+-1.810      ^      60.479+-0.516         ^ definitely 1.0398x faster
   stanford-crypto-pbkdf2                            145.869+-0.630            145.718+-0.926         
   stanford-crypto-sha256-iterative                   57.971+-0.438      ?      57.990+-0.558         ?

   <arithmetic>                                       96.799+-1.023             96.311+-0.290           might be 1.0051x faster

                                                        TipOfTree                 Frequency                                     
JSRegress:
   abc-forward-loop-equal                            57.0983+-0.2538     ?     57.3503+-0.2090        ?
   abc-postfix-backward-loop                         56.4307+-0.2428           56.3666+-0.3390        
   abc-simple-backward-loop                          56.1778+-0.2163           56.1366+-0.3775        
   abc-simple-forward-loop                           56.2855+-0.2317     ?     56.3087+-0.2990        ?
   abc-skippy-loop                                   39.1727+-0.5026     ?     39.1855+-0.3193        ?
   abs-boolean                                        3.9651+-0.1179            3.9112+-0.1225          might be 1.0138x faster
   adapt-to-double-divide                            18.3339+-0.4632     ?     18.5698+-0.6657        ? might be 1.0129x slower
   aliased-arguments-getbyval                         1.7688+-0.1182            1.6714+-0.1238          might be 1.0582x faster
   allocate-big-object                                3.8809+-0.1258            3.8010+-0.2487          might be 1.0210x faster
   arguments-named-and-reflective                    15.7146+-0.4914     ?     15.8170+-0.2779        ?
   arguments-out-of-bounds                           15.4960+-0.7647           15.4152+-0.3545        
   arguments-strict-mode                             13.5990+-0.4249     ?     14.0136+-0.4564        ? might be 1.0305x slower
   arguments                                         12.4825+-0.2911     ?     12.5939+-0.4013        ?
   arity-mismatch-inlining                            1.3049+-0.1009     ?      1.3665+-0.0427        ? might be 1.0472x slower
   array-access-polymorphic-structure                11.3781+-0.1995           11.2727+-0.2174        
   array-nonarray-polymorhpic-access                 41.0453+-1.1471           40.2336+-0.9435          might be 1.0202x faster
   array-prototype-every                            121.2574+-1.0143     ?    123.1488+-1.3473        ? might be 1.0156x slower
   array-prototype-forEach                          120.3295+-1.7792     ?    122.2520+-1.6872        ? might be 1.0160x slower
   array-prototype-map                              135.0972+-2.6303          134.1022+-0.9705        
   array-prototype-reduce                           113.1060+-1.7755     ?    114.2478+-1.0232        ? might be 1.0101x slower
   array-prototype-reduceRight                      113.0359+-1.2512     ?    113.9913+-1.0491        ?
   array-prototype-some                             121.9730+-1.4999     ?    123.6344+-1.2052        ? might be 1.0136x slower
   array-splice-contiguous                           36.9843+-0.3626           36.5884+-0.1229          might be 1.0108x faster
   array-with-double-add                              5.8028+-0.0909     ?      5.8685+-0.0551        ? might be 1.0113x slower
   array-with-double-increment                        4.4583+-0.1673     ?      4.5825+-0.0616        ? might be 1.0279x slower
   array-with-double-mul-add                          7.5203+-0.1324     ?      7.6060+-0.0655        ? might be 1.0114x slower
   array-with-double-sum                              4.4840+-0.1434            4.4698+-0.0817        
   array-with-int32-add-sub                          10.3043+-0.1270     ?     10.3253+-0.1200        ?
   array-with-int32-or-double-sum                     4.5514+-0.1102            4.4947+-0.0473          might be 1.0126x faster
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     44.9657+-0.8675     !     47.3111+-0.6038        ! definitely 1.0522x slower
   ArrayBuffer-DataView-alloc-long-lived             18.3693+-0.2542     ?     18.7700+-0.2688        ? might be 1.0218x slower
   ArrayBuffer-Int32Array-byteOffset                  5.6102+-0.1639            5.4830+-0.1433          might be 1.0232x faster
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     46.4411+-0.9064     ?     47.2448+-0.8976        ? might be 1.0173x slower
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     30.4200+-1.0734           30.0104+-0.3538          might be 1.0136x faster
   ArrayBuffer-Int8Array-alloc-long-lived            16.8656+-0.1217     !     17.6127+-0.1921        ! definitely 1.0443x slower
   ArrayBuffer-Int8Array-alloc                       14.3457+-0.2404     ?     14.7969+-0.2428        ? might be 1.0315x slower
   arrowfunction-call                                15.5462+-0.3329     ?     15.5569+-0.1598        ?
   asmjs_bool_bug                                     9.7297+-0.1208            9.7226+-0.0847        
   assign-custom-setter-polymorphic                   4.3818+-0.1728            4.3228+-0.1048          might be 1.0137x faster
   assign-custom-setter                               5.9789+-0.1805     ?      6.0598+-0.2984        ? might be 1.0135x slower
   basic-set                                         11.1920+-0.2630     ?     11.3861+-0.1673        ? might be 1.0173x slower
   big-int-mul                                        5.8753+-0.0962            5.8583+-0.0958        
   boolean-test                                       4.5658+-0.0864     ?      4.5758+-0.1044        ?
   branch-fold                                        4.8533+-0.0537            4.7940+-0.0251          might be 1.0124x faster
   branch-on-string-as-boolean                       25.6907+-0.5471     ?     25.8632+-0.7428        ?
   by-val-generic                                     3.8268+-0.0660            3.7692+-0.1106          might be 1.0153x faster
   call-spread-apply                                 39.9024+-0.4669     !     42.6313+-0.5600        ! definitely 1.0684x slower
   call-spread-call                                  31.7376+-0.3114     !     35.6080+-0.7018        ! definitely 1.1219x slower
   captured-assignments                               0.7252+-0.0182     ?      0.7817+-0.0870        ? might be 1.0779x slower
   cast-int-to-double                                 8.6973+-0.0862            8.6458+-0.0668        
   cell-argument                                      8.5935+-0.1722     ?      8.8319+-0.3781        ? might be 1.0277x slower
   cfg-simplify                                       3.9362+-0.0950            3.8846+-0.0246          might be 1.0133x faster
   chain-getter-access                               11.8465+-0.3948     ?     11.9659+-0.4620        ? might be 1.0101x slower
   cmpeq-obj-to-obj-other                            14.6276+-0.6998     ?     14.9112+-0.5574        ? might be 1.0194x slower
   constant-test                                      8.1577+-0.0795            8.1075+-0.1030        
   create-lots-of-functions                          16.4913+-0.1914     ?     16.5217+-0.2581        ?
   cse-new-array-buffer                               3.4190+-0.1208     ?      3.5041+-0.1442        ? might be 1.0249x slower
   cse-new-array                                      3.5027+-0.1389            3.4843+-0.1432        
   custom-setter-getter-as-put-get-by-id              0.9612+-0.0206            0.8764+-0.1163          might be 1.0967x faster
   DataView-custom-properties                        52.5960+-0.9036     !     54.1355+-0.5778        ! definitely 1.0293x slower
   delay-tear-off-arguments-strictmode               19.7168+-0.2547     ?     19.9641+-0.5668        ? might be 1.0125x slower
   deltablue-varargs                                277.7861+-1.7032     ?    278.2091+-1.2912        ?
   destructuring-arguments                          247.8931+-1.6977     ?    248.3360+-1.2859        ?
   destructuring-parameters-overridden-by-function   
                                                      0.8606+-0.0495     ^      0.7229+-0.0539        ^ definitely 1.1905x faster
   destructuring-swap                                 7.8481+-0.0810     ?      7.8485+-0.0642        ?
   direct-arguments-getbyval                          1.6495+-0.1329     ?      1.7591+-0.1796        ? might be 1.0665x slower
   div-boolean-double                                 5.6467+-0.0846            5.6053+-0.1048        
   div-boolean                                        9.8783+-0.1199     ?      9.9780+-0.0794        ? might be 1.0101x slower
   double-get-by-val-out-of-bounds                    6.4038+-0.1216            6.3774+-0.0829        
   double-pollution-getbyval                          9.8056+-0.0631            9.7885+-0.0649        
   double-pollution-putbyoffset                       5.5431+-0.0314     ?      5.5819+-0.1753        ?
   double-real-use                                   40.3544+-0.0845     ?     40.4128+-0.1090        ?
   double-to-int32-typed-array-no-inline              3.1081+-0.0794     ?      3.1814+-0.1159        ? might be 1.0236x slower
   double-to-int32-typed-array                        2.9550+-0.1040     ?      2.9802+-0.0825        ?
   double-to-uint32-typed-array-no-inline             3.3137+-0.0899     ?      3.3534+-0.1214        ? might be 1.0120x slower
   double-to-uint32-typed-array                       2.9344+-0.1152            2.9108+-0.1193        
   elidable-new-object-dag                           54.8728+-0.6164           54.7115+-1.2883        
   elidable-new-object-roflcopter                    55.2279+-0.7517     ?     55.3599+-0.5616        ?
   elidable-new-object-then-call                     56.3457+-1.2811           55.9964+-1.1966        
   elidable-new-object-tree                          65.0552+-1.5554           64.8909+-0.5423        
   empty-string-plus-int                              7.5897+-0.1114     !      7.7972+-0.0953        ! definitely 1.0273x slower
   emscripten-cube2hash                              49.3171+-0.1771     ?     49.8178+-0.9033        ? might be 1.0102x slower
   exit-length-on-plain-object                       23.6861+-0.7966     ?     24.4648+-0.7077        ? might be 1.0329x slower
   external-arguments-getbyval                        1.7907+-0.1235            1.7424+-0.1007          might be 1.0277x faster
   external-arguments-putbyval                        3.4541+-0.0722     ?      3.5121+-0.1115        ? might be 1.0168x slower
   fixed-typed-array-storage-var-index                1.6320+-0.0570     ?      1.6402+-0.0690        ?
   fixed-typed-array-storage                          1.3944+-0.0940            1.3942+-0.1237        
   Float32Array-matrix-mult                           6.7694+-0.2178     ?      6.8583+-0.1313        ? might be 1.0131x slower
   Float32Array-to-Float64Array-set                  79.6664+-0.6509     ?     81.4068+-1.5160        ? might be 1.0218x slower
   Float64Array-alloc-long-lived                     95.5214+-0.2796     ?     95.8938+-1.1558        ?
   Float64Array-to-Int16Array-set                    89.5785+-0.8263           89.5246+-1.2445        
   fold-double-to-int                                19.2267+-0.0926     ?     19.2496+-0.2315        ?
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     12.2999+-0.1347     ?     12.5632+-0.3575        ? might be 1.0214x slower
   fold-get-by-id-to-multi-get-by-offset             10.6818+-0.1570           10.5540+-0.2904          might be 1.0121x faster
   fold-multi-get-by-offset-to-get-by-offset   
                                                      9.1057+-0.4509     ?      9.3018+-0.0904        ? might be 1.0215x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      9.6507+-0.4378     ?      9.8204+-0.0715        ? might be 1.0176x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                     10.9620+-0.5526     ?     11.1475+-0.4818        ? might be 1.0169x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                     10.6500+-0.3414     ?     10.6687+-0.3862        ?
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     15.7686+-0.7384     ?     16.1527+-0.8078        ? might be 1.0244x slower
   fold-put-by-id-to-multi-put-by-offset             12.5382+-0.5663     ?     12.6263+-0.6438        ?
   fold-put-by-val-with-string-to-multi-put-by-offset   
                                                     12.7654+-0.4801           12.7620+-0.3853        
   fold-put-by-val-with-symbol-to-multi-put-by-offset   
                                                     12.6740+-0.5141     ?     12.7136+-0.5907        ?
   fold-put-structure                                 8.5662+-0.1402     ?      8.6390+-0.0951        ?
   for-of-iterate-array-entries                      16.2968+-0.2299     ?     16.4652+-0.5820        ? might be 1.0103x slower
   for-of-iterate-array-keys                          5.4843+-0.2253            5.2854+-0.0851          might be 1.0376x faster
   for-of-iterate-array-values                        5.1651+-0.1945     ?      5.2494+-0.2495        ? might be 1.0163x slower
   fround                                            21.9996+-0.3972           21.7922+-0.6335        
   ftl-library-inlining-dataview                     92.7352+-0.6036     ?     93.2347+-2.6847        ?
   ftl-library-inlining                             104.3940+-18.5195    ?    110.2295+-15.3709       ? might be 1.0559x slower
   ftl-object-sub                                    43.4895+-0.2921     ?     44.1049+-0.3424        ? might be 1.0141x slower
   function-call                                     15.6743+-0.4775     ?     15.8781+-0.3365        ? might be 1.0130x slower
   function-dot-apply                                 3.1146+-0.0489     ?      3.1611+-0.0721        ? might be 1.0149x slower
   function-test                                      4.4167+-0.0895     ?      4.4204+-0.1407        ?
   function-with-eval                               127.6180+-0.6862          127.5048+-0.8736        
   gcse-poly-get-less-obvious                        33.7295+-0.3657           33.6196+-0.4753        
   gcse-poly-get                                     34.4694+-0.2421           34.4655+-0.1281        
   gcse                                               6.8016+-0.0993            6.7325+-0.1271          might be 1.0103x faster
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.2883+-0.1008     ?      3.3011+-0.0757        ?
   get-by-id-bimorphic-check-structure-elimination   
                                                      8.1949+-0.1870     !      9.2222+-0.0553        ! definitely 1.1254x slower
   get-by-id-chain-from-try-block                     3.5213+-0.1665     ?      3.6216+-0.0574        ? might be 1.0285x slower
   get-by-id-check-structure-elimination              7.6797+-0.0633     ?      7.6962+-0.0779        ?
   get-by-id-proto-or-self                           23.8837+-0.9044     ?     24.9967+-2.3163        ? might be 1.0466x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      4.0430+-0.1053     ?      4.1126+-0.0652        ? might be 1.0172x slower
   get-by-id-self-or-proto                           24.3988+-2.7313     ?     26.4021+-2.0253        ? might be 1.0821x slower
   get-by-val-out-of-bounds                           6.3533+-0.0724            6.2799+-0.1426          might be 1.0117x faster
   get-by-val-with-string-bimorphic-check-structure-elimination-simple   
                                                      3.9530+-0.0691     ?      4.0201+-0.0700        ? might be 1.0170x slower
   get-by-val-with-string-bimorphic-check-structure-elimination   
                                                     10.7635+-0.1282           10.7199+-0.1371        
   get-by-val-with-string-chain-from-try-block   
                                                      3.6471+-0.0892            3.6293+-0.1191        
   get-by-val-with-string-check-structure-elimination   
                                                      9.4814+-0.2151     ?      9.5975+-0.0868        ? might be 1.0122x slower
   get-by-val-with-string-proto-or-self              25.9869+-2.2157           24.8047+-1.4677          might be 1.0477x faster
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple   
                                                      4.9911+-0.0981            4.9811+-0.0621        
   get-by-val-with-string-self-or-proto              24.5103+-1.5050     ?     25.2354+-2.0932        ? might be 1.0296x slower
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple   
                                                      4.9439+-0.0817     ^      4.6611+-0.0829        ^ definitely 1.0607x faster
   get-by-val-with-symbol-bimorphic-check-structure-elimination   
                                                     20.0223+-0.3784     ^     19.3363+-0.0848        ^ definitely 1.0355x faster
   get-by-val-with-symbol-chain-from-try-block   
                                                      3.7142+-0.1475            3.7054+-0.0861        
   get-by-val-with-symbol-check-structure-elimination   
                                                     18.4132+-0.1418     ?     18.4937+-0.2357        ?
   get-by-val-with-symbol-proto-or-self              23.6595+-0.6481     ?     25.4265+-1.9439        ? might be 1.0747x slower
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple   
                                                      6.0933+-0.0745            6.0926+-0.0780        
   get-by-val-with-symbol-self-or-proto              24.8387+-1.4891     ?     24.9672+-1.5565        ?
   get_callee_monomorphic                             3.7059+-0.1258     ?      3.7793+-0.1871        ? might be 1.0198x slower
   get_callee_polymorphic                             4.7537+-0.1145     ?      4.9031+-0.1258        ? might be 1.0314x slower
   getter-no-activation                               5.9128+-0.0726            5.8993+-0.0625        
   getter-prototype                                  12.8278+-0.3666     ?     12.9014+-0.4076        ?
   getter-richards-try-catch                       1749.6302+-75.4854    ?   1787.0940+-38.6182       ? might be 1.0214x slower
   getter-richards                                  139.5913+-2.5437     ?    142.0457+-2.4650        ? might be 1.0176x slower
   getter                                             7.3012+-0.0608     ?      7.3964+-0.0607        ? might be 1.0130x slower
   global-object-access-with-mutating-structure   
                                                      8.4238+-0.0605            8.3014+-0.0936          might be 1.0147x faster
   global-var-const-infer-fire-from-opt               1.2204+-0.1059            1.2137+-0.1500        
   global-var-const-infer                             1.1641+-0.1487     ?      1.2026+-0.1259        ? might be 1.0330x slower
   hard-overflow-check-equal                         45.7783+-0.4128     ?     45.7867+-0.2912        ?
   hard-overflow-check                               45.5964+-0.2521           45.5181+-0.2560        
   HashMap-put-get-iterate-keys                      34.0174+-0.5459     ?     34.2996+-0.5372        ?
   HashMap-put-get-iterate                           34.6268+-0.5229           34.2650+-0.4785          might be 1.0106x faster
   HashMap-string-put-get-iterate                    36.8429+-0.8913           36.7206+-0.7599        
   hoist-make-rope                                   15.6480+-1.6355           15.5031+-0.0625        
   hoist-poly-check-structure-effectful-loop   
                                                      6.6705+-0.0896     ?      6.6854+-0.1166        ?
   hoist-poly-check-structure                         4.5125+-0.0868     ?      4.5402+-0.1049        ?
   imul-double-only                                  10.3415+-0.1922     ?     10.5275+-0.1114        ? might be 1.0180x slower
   imul-int-only                                     12.7636+-0.5724           11.8916+-0.4341          might be 1.0733x faster
   imul-mixed                                        10.4492+-0.5651           10.0872+-0.6026          might be 1.0359x faster
   in-four-cases                                     28.3348+-0.1295     ?     28.5244+-0.2241        ?
   in-one-case-false                                 16.3925+-0.1248     ?     16.4686+-0.0830        ?
   in-one-case-true                                  16.3980+-0.1330           16.3694+-0.1101        
   in-two-cases                                      17.0072+-0.2031     ?     17.0748+-0.0974        ?
   indexed-properties-in-objects                      4.0548+-0.0933     ?      4.1419+-0.0787        ? might be 1.0215x slower
   infer-closure-const-then-mov-no-inline             5.4362+-0.0724            5.4341+-0.0762        
   infer-closure-const-then-mov                      22.9956+-0.2372     !     23.3829+-0.0877        ! definitely 1.0168x slower
   infer-closure-const-then-put-to-scope-no-inline   
                                                     16.2022+-0.1610           16.0630+-0.2222        
   infer-closure-const-then-put-to-scope             27.9715+-0.2309     ?     28.0444+-0.2400        ?
   infer-closure-const-then-reenter-no-inline   
                                                     71.1827+-0.3376     ?     71.2020+-0.2826        ?
   infer-closure-const-then-reenter                  32.8709+-0.1836           32.8066+-0.2669        
   infer-constant-global-property                     4.9312+-0.1268            4.8401+-0.0889          might be 1.0188x faster
   infer-constant-property                            3.3669+-0.0871     ?      3.3763+-0.1018        ?
   infer-one-time-closure-ten-vars                   12.7410+-0.2000           12.7057+-0.3127        
   infer-one-time-closure-two-vars                   11.9638+-0.2842     ?     12.2467+-0.4121        ? might be 1.0236x slower
   infer-one-time-closure                            11.8714+-0.2557     ?     12.0137+-0.1061        ? might be 1.0120x slower
   infer-one-time-deep-closure                       19.2411+-0.3103     ?     19.3161+-0.4689        ?
   inline-arguments-access                            6.0874+-0.0499            6.0605+-0.1347        
   inline-arguments-aliased-access                    6.1289+-0.1361            6.0913+-0.1208        
   inline-arguments-local-escape                      6.2095+-0.0951     ?      6.2177+-0.2467        ?
   inline-get-scoped-var                              5.8250+-0.0756     ?      5.8311+-0.0754        ?
   inlined-put-by-id-transition                      15.4196+-0.2735     ?     15.7765+-0.3028        ? might be 1.0231x slower
   inlined-put-by-val-with-string-transition   
                                                     67.8275+-1.3571     ?     70.5634+-2.3386        ? might be 1.0403x slower
   inlined-put-by-val-with-symbol-transition   
                                                     69.0780+-0.7154     !     70.6784+-0.7863        ! definitely 1.0232x slower
   int-or-other-abs-then-get-by-val                   6.7251+-0.1049            6.7104+-0.1391        
   int-or-other-abs-zero-then-get-by-val             27.7333+-0.1094     ?     27.9215+-0.2033        ?
   int-or-other-add-then-get-by-val                   6.5792+-0.0823            6.5244+-0.1013        
   int-or-other-add                                   8.2566+-0.0650     ?      8.3608+-0.0499        ? might be 1.0126x slower
   int-or-other-div-then-get-by-val                   5.1211+-0.1494     ?      5.2274+-0.0865        ? might be 1.0208x slower
   int-or-other-max-then-get-by-val                   5.1191+-0.0427            5.1122+-0.0481        
   int-or-other-min-then-get-by-val                   5.1471+-0.1064     ?      5.2186+-0.0881        ? might be 1.0139x slower
   int-or-other-mod-then-get-by-val                   5.0021+-0.0860            4.9881+-0.0513        
   int-or-other-mul-then-get-by-val                   5.2786+-0.0745            5.2708+-0.0833        
   int-or-other-neg-then-get-by-val                   5.8306+-0.0946     ?      5.9118+-0.0840        ? might be 1.0139x slower
   int-or-other-neg-zero-then-get-by-val             28.2672+-0.1215           28.2529+-0.1326        
   int-or-other-sub-then-get-by-val                   6.5256+-0.0645            6.4811+-0.0907        
   int-or-other-sub                                   5.4032+-0.1023            5.4016+-0.0630        
   int-overflow-local                                 6.1253+-0.0293     ?      6.1509+-0.0732        ?
   Int16Array-alloc-long-lived                       66.6381+-0.5658           66.3757+-0.4909        
   Int16Array-bubble-sort-with-byteLength            39.5272+-0.1838     ?     39.5333+-0.1507        ?
   Int16Array-bubble-sort                            40.6455+-0.1613     ?     40.7747+-0.2388        ?
   Int16Array-load-int-mul                            2.1605+-0.0485            2.1537+-0.0784        
   Int16Array-to-Int32Array-set                      71.9015+-1.3447           70.3369+-0.6989          might be 1.0222x faster
   Int32Array-alloc-large                            32.7819+-0.5169           32.4024+-0.5608          might be 1.0117x faster
   Int32Array-alloc-long-lived                       75.4653+-0.4022           75.0424+-0.5180        
   Int32Array-alloc                                   4.6605+-0.0696     ?      4.6726+-0.0306        ?
   Int32Array-Int8Array-view-alloc                    9.4331+-0.1680     ?      9.5736+-0.1477        ? might be 1.0149x slower
   int52-spill                                        7.0711+-0.5007     ?      7.1612+-0.1852        ? might be 1.0127x slower
   Int8Array-alloc-long-lived                        59.4503+-0.5762           59.0886+-0.7708        
   Int8Array-load-with-byteLength                     4.8617+-0.0920            4.8241+-0.0869        
   Int8Array-load                                     4.8970+-0.0621            4.8305+-0.0734          might be 1.0138x faster
   integer-divide                                    13.9936+-0.0962           13.9883+-0.1202        
   integer-modulo                                     2.7795+-0.0957            2.7738+-0.1158        
   is-boolean-fold-tricky                             5.7353+-0.0843     ?      5.7359+-0.0749        ?
   is-boolean-fold                                    4.1177+-0.0878            4.0837+-0.1390        
   is-function-fold-tricky-internal-function   
                                                     15.8111+-0.1496     ^     14.8999+-0.3564        ^ definitely 1.0612x faster
   is-function-fold-tricky                            5.8927+-0.0528     ?      5.8937+-0.0741        ?
   is-function-fold                                   4.1699+-0.0709     ?      4.1995+-0.0728        ?
   is-number-fold-tricky                              5.8431+-0.1509            5.7969+-0.0721        
   is-number-fold                                     4.0403+-0.0915     ?      4.0958+-0.0802        ? might be 1.0137x slower
   is-object-or-null-fold-functions                   4.1721+-0.0965     ?      4.2415+-0.0932        ? might be 1.0166x slower
   is-object-or-null-fold-less-tricky                 5.7939+-0.0966     ?      5.8828+-0.1163        ? might be 1.0153x slower
   is-object-or-null-fold-tricky                      7.4220+-0.1519     ?      7.4763+-0.0723        ?
   is-object-or-null-fold                             4.1857+-0.1096            4.1496+-0.1063        
   is-object-or-null-trickier-function                5.9767+-0.0931     ?      5.9780+-0.0472        ?
   is-object-or-null-trickier-internal-function   
                                                     15.5227+-0.1056           15.4780+-0.3312        
   is-object-or-null-tricky-function                  5.8551+-0.0826     ?      5.9474+-0.1443        ? might be 1.0158x slower
   is-object-or-null-tricky-internal-function   
                                                     11.5699+-0.5058           11.4434+-0.1067          might be 1.0111x faster
   is-string-fold-tricky                              5.7255+-0.0679     ?      5.8018+-0.1048        ? might be 1.0133x slower
   is-string-fold                                     4.0684+-0.1091            4.0566+-0.1007        
   is-undefined-fold-tricky                           4.7871+-0.0862     ?      4.8720+-0.1076        ? might be 1.0177x slower
   is-undefined-fold                                  4.0771+-0.0784     ?      4.0839+-0.0778        ?
   JSONP-negative-0                                   0.4478+-0.0413     ?      0.4587+-0.0574        ? might be 1.0243x slower
   large-int-captured                                 7.0445+-0.1316            6.7862+-0.1566          might be 1.0381x faster
   large-int-neg                                     21.6218+-0.2117           21.4717+-0.1588        
   large-int                                         18.9154+-0.2272     ?     19.1070+-0.2924        ? might be 1.0101x slower
   load-varargs-elimination                          30.6027+-1.0911     ?     30.8670+-0.4962        ?
   logical-not-weird-types                            5.3874+-0.1765            5.2458+-0.0911          might be 1.0270x faster
   logical-not                                        6.5876+-0.0702     ?      6.6953+-0.1807        ? might be 1.0163x slower
   lots-of-fields                                    17.3774+-0.2392     ?     17.6038+-0.2433        ? might be 1.0130x slower
   make-indexed-storage                               4.5338+-0.1115            4.3968+-0.2308          might be 1.0312x faster
   make-rope-cse                                      6.4963+-0.1345     ?      6.5212+-0.1271        ?
   marsaglia-larger-ints                             53.4628+-0.6801           52.5704+-0.6183          might be 1.0170x faster
   marsaglia-osr-entry                               28.4028+-0.4762     ?     28.5441+-0.2763        ?
   math-with-out-of-bounds-array-values              34.1890+-0.7777     ?     35.8037+-2.0009        ? might be 1.0472x slower
   max-boolean                                        3.3975+-0.1106            3.3753+-0.0606        
   method-on-number                                  23.6970+-0.7063     ?     24.1791+-0.1689        ? might be 1.0203x slower
   min-boolean                                        3.3794+-0.1060     ?      3.4165+-0.0669        ? might be 1.0110x slower
   minus-boolean-double                               4.2959+-0.0920            4.2818+-0.0637        
   minus-boolean                                      3.3947+-0.0765            3.3875+-0.0862        
   misc-strict-eq                                    50.1497+-2.5427     ?     50.2730+-2.1787        ?
   mod-boolean-double                                11.8858+-0.1480     ?     11.9358+-0.0610        ?
   mod-boolean                                        9.2092+-0.0377            9.0761+-0.1944          might be 1.0147x faster
   mul-boolean-double                                 4.9768+-0.0547            4.9539+-0.0669        
   mul-boolean                                        3.6112+-0.1161            3.5927+-0.0631        
   neg-boolean                                        4.3506+-0.0603            4.3073+-0.0757          might be 1.0101x faster
   negative-zero-divide                               0.6000+-0.0642     ?      0.6083+-0.0826        ? might be 1.0138x slower
   negative-zero-modulo                               0.5892+-0.0772            0.5708+-0.0722          might be 1.0322x faster
   negative-zero-negate                               0.6181+-0.0642            0.5745+-0.0707          might be 1.0759x faster
   nested-function-parsing                           73.1155+-0.1388           73.0922+-0.4471        
   new-array-buffer-dead                            144.3565+-0.9545     ?    144.6703+-0.8298        ?
   new-array-buffer-push                              9.9153+-0.2110            9.8831+-0.2906        
   new-array-dead                                    23.1180+-1.5206     ?     24.8457+-0.9605        ? might be 1.0747x slower
   new-array-push                                     5.5283+-0.1711            5.5090+-0.1935        
   no-inline-constructor                             50.1815+-0.6416           49.9788+-0.4621        
   number-test                                        4.4834+-0.1296     ?      4.5343+-0.1010        ? might be 1.0114x slower
   object-closure-call                                7.5328+-0.1646     ?      7.6873+-0.0626        ? might be 1.0205x slower
   object-get-own-property-symbols-on-large-array   
                                                      5.3242+-0.3472            5.2199+-0.2904          might be 1.0200x faster
   object-test                                        4.3305+-0.1341     ?      4.4122+-0.1232        ? might be 1.0189x slower
   obvious-sink-pathology-taken                     166.9730+-1.6237          165.3880+-0.5837        
   obvious-sink-pathology                            52.7712+-1.5720           52.3824+-0.9857        
   obviously-elidable-new-object                     49.8206+-1.6329           49.2730+-3.0416          might be 1.0111x faster
   plus-boolean-arith                                 3.3374+-0.0666            3.3171+-0.0755        
   plus-boolean-double                                4.3700+-0.0846            4.3111+-0.0543          might be 1.0136x faster
   plus-boolean                                       3.2889+-0.0707            3.2817+-0.0807        
   poly-chain-access-different-prototypes-simple   
                                                      3.9633+-0.0904            3.9441+-0.0452        
   poly-chain-access-different-prototypes             3.4301+-0.0988            3.4136+-0.0680        
   poly-chain-access-simpler                          3.9430+-0.0833            3.9246+-0.0845        
   poly-chain-access                                  3.3568+-0.0745     ?      3.3639+-0.0640        ?
   poly-stricteq                                     83.6080+-2.0937           82.1537+-0.1467          might be 1.0177x faster
   polymorphic-array-call                             2.0964+-0.2685            1.9938+-0.2174          might be 1.0514x faster
   polymorphic-get-by-id                              4.2185+-0.0454     ?      4.3202+-0.3527        ? might be 1.0241x slower
   polymorphic-put-by-id                             54.6951+-3.2458           53.5030+-6.6871          might be 1.0223x faster
   polymorphic-put-by-val-with-string                44.5520+-0.6760           44.2771+-0.8165        
   polymorphic-put-by-val-with-symbol                43.9569+-0.2389     ?     44.6213+-0.6032        ? might be 1.0151x slower
   polymorphic-structure                             25.1838+-0.0744     ?     25.1941+-0.1499        ?
   polyvariant-monomorphic-get-by-id                 11.6264+-0.0383     ?     11.6609+-0.0698        ?
   proto-getter-access                               11.7205+-0.4204     ?     11.8282+-0.2868        ?
   prototype-access-with-mutating-prototype           7.9210+-0.2569     ?      8.2675+-0.4219        ? might be 1.0438x slower
   put-by-id-replace-and-transition                  12.4801+-0.1428     ?     12.6898+-0.1724        ? might be 1.0168x slower
   put-by-id-slightly-polymorphic                     3.6768+-0.0837            3.6603+-0.0893        
   put-by-id                                         18.4882+-0.2465     ?     18.5260+-0.2936        ?
   put-by-val-direct                                  0.6434+-0.0788     ?      0.6848+-0.0501        ? might be 1.0644x slower
   put-by-val-large-index-blank-indexing-type   
                                                      8.6146+-0.2073     ?      8.8374+-0.1631        ? might be 1.0259x slower
   put-by-val-machine-int                             3.7202+-0.1348     ?      3.7581+-0.1606        ? might be 1.0102x slower
   put-by-val-with-string-replace-and-transition   
                                                     19.2592+-0.2911           19.2561+-0.1744        
   put-by-val-with-string-slightly-polymorphic   
                                                      4.8575+-0.1319            4.7395+-0.0961          might be 1.0249x faster
   put-by-val-with-string                            19.3541+-0.5955     ?     19.3998+-0.3106        ?
   put-by-val-with-symbol-replace-and-transition   
                                                     20.7117+-0.2157     ?     20.8037+-0.3222        ?
   put-by-val-with-symbol-slightly-polymorphic   
                                                      5.0675+-0.1013            5.0565+-0.0882        
   put-by-val-with-symbol                            19.3127+-0.4178     ?     19.6142+-0.2714        ? might be 1.0156x slower
   rare-osr-exit-on-local                            17.5236+-0.3287     ?     17.6647+-0.2309        ?
   raytrace-with-empty-try-catch                      9.3656+-0.2319     ?      9.3791+-0.0742        ?
   raytrace-with-try-catch                           16.8841+-0.1882     !     17.2826+-0.1138        ! definitely 1.0236x slower
   register-pressure-from-osr                        25.1679+-0.1008     ?     25.1740+-0.1573        ?
   repeat-multi-get-by-offset                        28.4865+-0.2664     ?     28.6497+-0.3563        ?
   richards-empty-try-catch                          89.3465+-1.2759     ?     90.4603+-1.5702        ? might be 1.0125x slower
   richards-try-catch                               386.8007+-3.3703     ?    390.6119+-6.9005        ?
   setter-prototype                                  13.3212+-0.7881     ?     13.9446+-1.0998        ? might be 1.0468x slower
   setter                                             6.8726+-0.0455     ?      6.9880+-0.0908        ? might be 1.0168x slower
   simple-activation-demo                            35.2362+-0.1845     ^     34.8442+-0.1786        ^ definitely 1.0112x faster
   simple-getter-access                              15.4832+-0.1581     ?     15.5696+-0.2999        ?
   simple-poly-call-nested                           10.7813+-0.3056     ?     10.9715+-0.0732        ? might be 1.0176x slower
   simple-poly-call                                   1.8656+-0.0693     ?      1.8928+-0.1042        ? might be 1.0145x slower
   sin-boolean                                       27.3680+-0.6626           25.2616+-2.1553          might be 1.0834x faster
   singleton-scope                                   84.1790+-0.1416     ?     84.2393+-0.2853        ?
   sink-function                                     14.4853+-1.3394     ?     14.9600+-1.3678        ? might be 1.0328x slower
   sink-huge-activation                              21.7392+-0.3921     ?     22.2689+-0.5066        ? might be 1.0244x slower
   sinkable-new-object-dag                           87.6818+-4.4613     ?     90.0717+-2.0848        ? might be 1.0273x slower
   sinkable-new-object-taken                         67.6926+-3.2551           67.5728+-2.9152        
   sinkable-new-object                               53.7617+-1.5398           53.4140+-0.4930        
   slow-array-profile-convergence                     4.2314+-0.1709            4.1525+-0.2136          might be 1.0190x faster
   slow-convergence                                   3.8775+-0.0617     !      4.1629+-0.1238        ! definitely 1.0736x slower
   slow-ternaries                                    33.2450+-0.7067           33.0503+-0.2491        
   sorting-benchmark                                 26.3014+-0.6654     ?     26.3295+-0.1906        ?
   sparse-conditional                                 1.7994+-0.0965            1.7603+-0.0315          might be 1.0222x faster
   splice-to-remove                                  19.7700+-0.1933           19.7144+-0.2010        
   string-char-code-at                               20.8072+-0.0563           20.6416+-0.1420        
   string-concat-object                               3.2555+-0.0681     ?      3.2596+-0.0537        ?
   string-concat-pair-object                          3.2552+-0.1644            3.1650+-0.0664          might be 1.0285x faster
   string-concat-pair-simple                         17.0635+-0.2728           17.0041+-0.2824        
   string-concat-simple                              17.4845+-0.3216           17.2687+-0.0966          might be 1.0125x faster
   string-cons-repeat                                11.1936+-0.1384     ?     11.3032+-0.1006        ?
   string-cons-tower                                 10.8926+-0.0377           10.8531+-0.1282        
   string-equality                                   24.8263+-0.1569           24.7982+-0.1104        
   string-get-by-val-big-char                        10.5704+-0.1915           10.4684+-0.4285        
   string-get-by-val-out-of-bounds-insane             5.1607+-0.1438     !      5.5033+-0.1097        ! definitely 1.0664x slower
   string-get-by-val-out-of-bounds                    6.7981+-0.0867     ?      6.8143+-0.1119        ?
   string-get-by-val                                  4.8422+-0.0558     ?      4.8600+-0.0642        ?
   string-hash                                        2.9015+-0.0523            2.8294+-0.1025          might be 1.0255x faster
   string-long-ident-equality                        20.0990+-0.1817     ?     20.1384+-0.1333        ?
   string-out-of-bounds                              16.3010+-0.1650           16.2238+-0.3899        
   string-repeat-arith                               42.7288+-0.4380           42.3068+-0.1965        
   string-rope-with-object                           26.2848+-0.4786           26.1248+-0.3179        
   string-sub                                        57.1286+-0.8624           56.2855+-0.7947          might be 1.0150x faster
   string-test                                        4.5101+-0.1435            4.4410+-0.0506          might be 1.0156x faster
   string-var-equality                               60.6885+-2.3217     ?     60.8813+-2.3835        ?
   structure-hoist-over-transitions                   3.5516+-0.0955     ?      3.5581+-0.1204        ?
   substring-concat-weird                            57.4040+-0.3022     ?     57.4198+-0.5872        ?
   substring-concat                                  62.2273+-0.1579           62.1440+-0.3078        
   substring                                         68.5945+-0.2007     ?     68.8549+-0.2347        ?
   switch-char-constant                               3.4122+-0.0946     ?      3.4912+-0.0675        ? might be 1.0232x slower
   switch-char                                        8.1829+-0.0737     ?      8.2107+-0.0466        ?
   switch-constant                                   11.4731+-0.1806     ?     11.4901+-0.3727        ?
   switch-string-basic-big-var                       32.7152+-0.2694           32.4896+-0.3740        
   switch-string-basic-big                           28.3410+-1.9483     ?     29.1737+-0.3171        ? might be 1.0294x slower
   switch-string-basic-var                           32.1380+-0.7536     ?     32.4493+-0.2491        ?
   switch-string-basic                               22.9763+-0.4111     ?     23.6620+-0.9364        ? might be 1.0298x slower
   switch-string-big-length-tower-var                28.3169+-0.5712     ?     28.5033+-0.2486        ?
   switch-string-length-tower-var                    21.2496+-0.2364     ?     21.2511+-0.1600        ?
   switch-string-length-tower                        15.5093+-0.1384     ?     15.5658+-0.2037        ?
   switch-string-short                               15.5840+-0.1930     ?     15.7295+-0.3400        ?
   switch                                            18.2242+-0.2254           17.9987+-0.2816          might be 1.0125x faster
   symbol-tostringtag                                 4.9302+-0.0928            4.8675+-0.0600          might be 1.0129x faster
   tear-off-arguments-simple                          4.6292+-0.1216            4.5649+-0.1787          might be 1.0141x faster
   tear-off-arguments                                 6.4578+-0.2642     ?      6.4879+-0.3139        ?
   temporal-structure                                16.5257+-0.1780     ?     16.5586+-0.1056        ?
   to-int32-boolean                                  21.1988+-0.1618     ?     26.3770+-13.6216       ? might be 1.2443x slower
   try-catch-get-by-val-cloned-arguments             14.9428+-0.1063     ?     14.9723+-0.0942        ?
   try-catch-get-by-val-direct-arguments              3.3309+-0.1137            3.3014+-0.1194        
   try-catch-get-by-val-scoped-arguments              7.0446+-0.1097     ?      7.0958+-0.1089        ?
   typed-array-get-set-by-val-profiling              37.5870+-0.9462     ?     39.6179+-2.9118        ? might be 1.0540x slower
   undefined-property-access                        439.3280+-0.5299          438.6209+-0.7152        
   undefined-test                                     4.6315+-0.1149     ?      4.6982+-0.0783        ? might be 1.0144x slower
   unprofiled-licm                                   16.4383+-0.1698     ?     16.6578+-0.2684        ? might be 1.0134x slower
   v8-raytrace-with-empty-try-catch                  90.4266+-0.9780           90.2095+-0.4018        
   v8-raytrace-with-try-catch                       110.6370+-1.1344     !    112.5999+-0.7846        ! definitely 1.0177x slower
   varargs-call                                      18.8903+-0.3807           18.8372+-0.4026        
   varargs-construct-inline                          37.0325+-0.2108     ?     37.0343+-0.3272        ?
   varargs-construct                                 28.7948+-0.2164     ?     28.7979+-0.2762        ?
   varargs-inline                                    12.7139+-0.2457           12.6523+-0.2690        
   varargs-strict-mode                               14.5151+-0.1396     ?     14.6667+-0.2298        ? might be 1.0104x slower
   varargs                                           14.3920+-0.1949     ?     14.5308+-0.1105        ?
   weird-inlining-const-prop                          3.2130+-0.0788     ?      3.2983+-0.1285        ? might be 1.0265x slower

   <geometric>                                       12.3044+-0.0070     !     12.3556+-0.0237        ! definitely 1.0042x slower

                                                        TipOfTree                 Frequency                                     
AsmBench:
   bigfib.cpp                                       684.8822+-10.9716    ?    690.7452+-2.0853        ?
   cray.c                                           627.1713+-7.5147          622.0252+-2.9838        
   dry.c                                            646.8788+-17.8046         635.8453+-17.2113         might be 1.0174x faster
   FloatMM.c                                        915.1520+-0.5706     ?    915.1570+-0.3972        ?
   gcc-loops.cpp                                   5893.5286+-9.7096         5893.0811+-15.7535       
   n-body.c                                        1674.8983+-0.7053     ?   1675.1260+-0.9040        ?
   Quicksort.c                                      576.1181+-2.3870          564.4794+-9.5388          might be 1.0206x faster
   stepanov_container.cpp                          4856.4435+-101.1813       4823.5172+-26.7501       
   Towers.c                                         399.8617+-0.5545     ?    402.3874+-2.4832        ?

   <geometric>                                     1121.4956+-4.3812         1116.8261+-5.3731          might be 1.0042x faster

                                                        TipOfTree                 Frequency                                     
CompressionBench:
   huffman                                           81.6700+-0.2910           81.3780+-0.5075        
   arithmetic-simple                                435.9021+-0.8128     ?    436.6113+-0.0977        ?
   arithmetic-precise                               366.2816+-0.9817     ?    366.8237+-3.9121        ?
   arithmetic-complex-precise                       366.0766+-3.4060     ?    366.4592+-3.1309        ?
   arithmetic-precise-order-0                       450.7275+-1.1283          450.3326+-1.3063        
   arithmetic-precise-order-1                       421.2679+-1.5494     ?    422.3979+-2.3416        ?
   arithmetic-precise-order-2                       492.6092+-3.4004          492.3882+-2.4296        
   arithmetic-simple-order-1                        500.1158+-0.8141          499.9897+-0.9909        
   arithmetic-simple-order-2                        566.5458+-1.3574          565.6265+-1.5757        
   lz-string                                        429.7642+-6.6971     ^    416.6518+-3.2410        ^ definitely 1.0315x faster

   <geometric>                                      374.5668+-1.0647          373.4095+-0.2755          might be 1.0031x faster

                                                        TipOfTree                 Frequency                                     
Geomean of preferred means:
   <scaled-result>                                   78.6449+-0.1891     ?     78.7542+-0.1754        ? might be 1.0014x slower
Comment 3 Geoffrey Garen 2015-11-17 13:39:18 PST
Comment on attachment 265685 [details]
the patch

r=me
Comment 4 Filip Pizlo 2015-11-17 13:43:19 PST
Landed in http://trac.webkit.org/changeset/192529