Bug 150217 - CopyBarrier must be avoided for slow TypedArrays
Summary: CopyBarrier must be avoided for slow TypedArrays
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: All All
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords:
Depends on:
Blocks: 149432
  Show dependency treegraph
 
Reported: 2015-10-15 17:45 PDT by Filip Pizlo
Modified: 2015-10-16 15:54 PDT (History)
10 users (show)

See Also:


Attachments
work in progress (23.95 KB, patch)
2015-10-15 17:48 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
possibly the patch (24.35 KB, patch)
2015-10-15 19:00 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (24.38 KB, patch)
2015-10-15 19:55 PDT, Filip Pizlo
msaboff: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Filip Pizlo 2015-10-15 17:45:58 PDT
Otherwise, we might mask off meaningful bits from a misaligned array buffer view.
Comment 1 Filip Pizlo 2015-10-15 17:48:55 PDT
Created attachment 263233 [details]
work in progress
Comment 2 Filip Pizlo 2015-10-15 19:00:11 PDT
Created attachment 263237 [details]
possibly the patch

Still need to get perf numbers.
Comment 3 Filip Pizlo 2015-10-15 19:52:24 PDT
Benchmark results:


Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on shakezilla (MacBookPro11,3).

VMs tested:
"TipOfTree" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r191150)
"FixTypedArrays" at /Volumes/Data/quinary/OpenSource/WebKitBuild/Release/jsc (r191150)

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               FixTypedArrays                                  
SunSpider:
   3d-cube                                            4.6755+-0.2353     ?      4.9148+-0.5279        ? might be 1.0512x slower
   3d-morph                                           5.2251+-0.3436     ?      5.3367+-0.2868        ? might be 1.0214x slower
   3d-raytrace                                        5.5302+-0.5715            5.2257+-0.0543          might be 1.0583x faster
   access-binary-trees                                2.1560+-0.1302     ?      2.1934+-0.1051        ? might be 1.0173x slower
   access-fannkuch                                    5.6290+-0.4100     ?      5.8903+-0.3274        ? might be 1.0464x slower
   access-nbody                                       2.5275+-0.0426     ?      2.5425+-0.0923        ?
   access-nsieve                                      3.0275+-0.0375     ?      3.0943+-0.0932        ? might be 1.0220x slower
   bitops-3bit-bits-in-byte                           1.1802+-0.0359     ?      1.2301+-0.1513        ? might be 1.0423x slower
   bitops-bits-in-byte                                3.2180+-0.0588            3.1814+-0.0523          might be 1.0115x faster
   bitops-bitwise-and                                 1.9767+-0.0181     ?      2.1115+-0.1652        ? might be 1.0682x slower
   bitops-nsieve-bits                                 3.0428+-0.1914            2.9195+-0.0230          might be 1.0422x faster
   controlflow-recursive                              2.3852+-0.1565            2.2863+-0.0896          might be 1.0432x faster
   crypto-aes                                         3.9926+-0.0887     ?      4.0430+-0.1019        ? might be 1.0126x slower
   crypto-md5                                         2.5622+-0.1803            2.5070+-0.0764          might be 1.0220x faster
   crypto-sha1                                        2.6265+-0.3373            2.4711+-0.2968          might be 1.0629x faster
   date-format-tofte                                  6.6436+-0.2660     ?      7.6729+-2.2058        ? might be 1.1549x slower
   date-format-xparb                                  4.5071+-0.1115     ?      4.6256+-0.1342        ? might be 1.0263x slower
   math-cordic                                        2.7818+-0.0271     ?      2.8073+-0.1170        ?
   math-partial-sums                                  4.8037+-0.1364     ?      4.8821+-0.2613        ? might be 1.0163x slower
   math-spectral-norm                                 2.0853+-0.3126            1.9560+-0.0645          might be 1.0661x faster
   regexp-dna                                         6.4709+-0.2139     ?      6.4905+-0.2507        ?
   string-base64                                      4.2061+-0.1009     ?      4.4519+-0.2666        ? might be 1.0585x slower
   string-fasta                                       5.9454+-0.1654     ?      5.9999+-0.3431        ?
   string-tagcloud                                    7.9501+-0.2019     ?      7.9545+-0.0691        ?
   string-unpack-code                                18.0295+-0.7721     ?     18.5337+-0.4147        ? might be 1.0280x slower
   string-validate-input                              4.4038+-0.0915     ?      4.4644+-0.1122        ? might be 1.0138x slower

   <arithmetic>                                       4.5224+-0.0684     ?      4.6072+-0.0653        ? might be 1.0187x slower

                                                        TipOfTree               FixTypedArrays                                  
LongSpider:
   3d-cube                                          807.1036+-14.0869    ?    825.0665+-50.9591       ? might be 1.0223x slower
   3d-morph                                        1499.8871+-14.4827        1492.9699+-8.6575        
   3d-raytrace                                      603.2103+-4.1717          601.5254+-5.6974        
   access-binary-trees                              792.3374+-7.2602          788.8332+-6.2210        
   access-fannkuch                                  297.4191+-9.6032          296.4521+-3.9305        
   access-nbody                                     511.7415+-3.0577     ?    512.5752+-3.6732        ?
   access-nsieve                                    379.9121+-13.6370         374.9701+-11.5504         might be 1.0132x faster
   bitops-3bit-bits-in-byte                          34.8275+-1.2653           33.7395+-0.4662          might be 1.0322x faster
   bitops-bits-in-byte                               75.0439+-1.4819           74.4906+-1.3788        
   bitops-nsieve-bits                               402.9231+-4.1815     ?    403.0334+-4.8600        ?
   controlflow-recursive                            431.5387+-10.0061    ?    437.9056+-7.3039        ? might be 1.0148x slower
   crypto-aes                                       559.1340+-21.1240         556.3987+-3.4591        
   crypto-md5                                       444.6400+-2.5304     ?    446.9867+-4.0705        ?
   crypto-sha1                                      661.9819+-2.8787          658.6925+-6.2881        
   date-format-tofte                                512.7638+-12.4225    ?    526.3571+-21.7182       ? might be 1.0265x slower
   date-format-xparb                                656.5649+-9.6052     ?    676.9935+-28.3754       ? might be 1.0311x slower
   hash-map                                         149.5555+-2.5221     ?    149.8626+-1.8073        ?
   math-cordic                                      480.2701+-2.9266          480.1611+-3.0649        
   math-partial-sums                                457.5940+-1.2293          455.8293+-0.6430        
   math-spectral-norm                               564.4707+-26.1051         553.1013+-6.6362          might be 1.0206x faster
   string-base64                                    367.7028+-14.7161    ?    375.3308+-10.9197       ? might be 1.0207x slower
   string-fasta                                     352.9664+-3.0575     ?    354.6510+-1.1583        ?
   string-tagcloud                                  174.5825+-1.5840          173.6661+-1.3829        

   <geometric>                                      388.1600+-0.6611     ?    388.5217+-1.0541        ? might be 1.0009x slower

                                                        TipOfTree               FixTypedArrays                                  
V8Spider:
   crypto                                            50.1512+-1.3285           49.5296+-2.0599          might be 1.0125x faster
   deltablue                                         76.8331+-4.6441           76.2441+-4.5515        
   earley-boyer                                      42.6030+-2.6555           41.4417+-1.1466          might be 1.0280x faster
   raytrace                                          29.8745+-1.9163           29.4311+-1.5741          might be 1.0151x faster
   regexp                                            62.7691+-2.3527           62.3043+-1.1201        
   richards                                          53.8949+-0.9630           53.0202+-0.7027          might be 1.0165x faster
   splay                                             37.6031+-1.3839           37.1698+-1.8386          might be 1.0117x faster

   <geometric>                                       48.3841+-0.8278           47.7206+-0.9101          might be 1.0139x faster

                                                        TipOfTree               FixTypedArrays                                  
Octane:
   encrypt                                           0.15567+-0.00374    ?     0.15789+-0.00514       ? might be 1.0143x slower
   decrypt                                           2.88251+-0.04043          2.88237+-0.03601       
   deltablue                                x2       0.13776+-0.00155    ?     0.14206+-0.01011       ? might be 1.0312x slower
   earley                                            0.28496+-0.00241    ?     0.28549+-0.00358       ?
   boyer                                             4.41317+-0.17591          4.33869+-0.06195         might be 1.0172x faster
   navier-stokes                            x2       4.85244+-0.02176          4.83762+-0.01474       
   raytrace                                 x2       0.85604+-0.00361    ?     0.85931+-0.00483       ?
   richards                                 x2       0.08714+-0.00028          0.08686+-0.00065       
   splay                                    x2       0.34587+-0.00392    ?     0.35032+-0.00387       ? might be 1.0129x slower
   regexp                                   x2      24.52530+-0.51657         24.38166+-0.66761       
   pdfjs                                    x2      37.67234+-0.50416    ^    36.86837+-0.18267       ^ definitely 1.0218x faster
   mandreel                                 x2      42.58950+-0.21413    ?    42.61987+-0.48653       ?
   gbemu                                    x2      32.00740+-0.32114    ?    32.88997+-2.55039       ? might be 1.0276x slower
   closure                                           0.57335+-0.00233    ?     0.57566+-0.00248       ?
   jquery                                            7.25789+-0.05985    ?     7.33945+-0.08677       ? might be 1.0112x slower
   box2d                                    x2       9.25104+-0.05717          9.23557+-0.06538       
   zlib                                     x2     384.83218+-12.18124   ?   394.52463+-8.55038       ? might be 1.0252x slower
   typescript                               x2     669.45247+-3.25393        668.29834+-14.33074      

   <geometric>                                       5.32835+-0.01033    ?     5.35214+-0.05011       ? might be 1.0045x slower

                                                        TipOfTree               FixTypedArrays                                  
Kraken:
   ai-astar                                          127.208+-1.931      ?     134.933+-15.354        ? might be 1.0607x slower
   audio-beat-detection                               48.265+-0.202             48.206+-0.339         
   audio-dft                                          95.513+-1.726      ?      96.343+-2.564         ?
   audio-fft                                          35.419+-0.582             34.954+-0.232           might be 1.0133x faster
   audio-oscillator                                   57.540+-1.038      ?      57.863+-1.351         ?
   imaging-darkroom                                   60.736+-2.086             60.545+-2.052         
   imaging-desaturate                                 48.031+-0.379      ?      49.193+-2.656         ? might be 1.0242x slower
   imaging-gaussian-blur                              87.103+-0.837      ?      87.196+-0.716         ?
   json-parse-financial                               38.287+-2.143      ?      39.499+-1.105         ? might be 1.0317x slower
   json-stringify-tinderbox                           22.814+-1.172             22.455+-0.577           might be 1.0160x faster
   stanford-crypto-aes                                42.204+-1.662             42.017+-1.134         
   stanford-crypto-ccm                                37.143+-1.362             36.720+-1.588           might be 1.0115x faster
   stanford-crypto-pbkdf2                             95.887+-1.203      ?      96.917+-2.984         ? might be 1.0107x slower
   stanford-crypto-sha256-iterative                   36.303+-0.303      ?      36.315+-0.936         ?

   <arithmetic>                                       59.461+-0.274      ?      60.225+-1.039         ? might be 1.0129x slower

                                                        TipOfTree               FixTypedArrays                                  
JSRegress:
   abc-forward-loop-equal                            31.0927+-1.9296           29.8762+-0.5329          might be 1.0407x faster
   abc-postfix-backward-loop                         29.9893+-1.0076           29.7627+-1.3935        
   abc-simple-backward-loop                          30.4796+-1.2833           29.4466+-0.6556          might be 1.0351x faster
   abc-simple-forward-loop                           29.7594+-0.7295     ?     30.4085+-2.2949        ? might be 1.0218x slower
   abc-skippy-loop                                   22.1582+-1.2899           21.9531+-0.7308        
   abs-boolean                                        2.4873+-0.1003            2.4866+-0.0982        
   adapt-to-double-divide                            17.3431+-1.2898           16.8473+-0.7329          might be 1.0294x faster
   aliased-arguments-getbyval                         1.3196+-0.1024            1.2140+-0.0679          might be 1.0870x faster
   allocate-big-object                                2.4339+-0.2178            2.4143+-0.2139        
   arguments-named-and-reflective                    10.7690+-0.6431           10.6882+-0.4090        
   arguments-out-of-bounds                            9.4322+-0.2263     ?      9.5230+-0.3845        ?
   arguments-strict-mode                              9.6622+-0.4029     ?      9.7098+-0.4942        ?
   arguments                                          8.3950+-0.1056            8.2901+-0.2182          might be 1.0127x faster
   arity-mismatch-inlining                            0.8798+-0.0505            0.8552+-0.0168          might be 1.0287x faster
   array-access-polymorphic-structure                 7.0806+-0.4019     ?      7.3749+-0.4838        ? might be 1.0416x slower
   array-nonarray-polymorhpic-access                 24.3443+-0.4147     ?     24.6886+-0.2575        ? might be 1.0141x slower
   array-prototype-every                             77.8590+-2.4816           75.5841+-1.5885          might be 1.0301x faster
   array-prototype-forEach                           78.9625+-7.3875           75.3428+-2.4010          might be 1.0480x faster
   array-prototype-map                               82.4921+-1.4967     ?     83.0734+-2.2950        ?
   array-prototype-reduce                            73.1525+-1.6652           71.7512+-1.0850          might be 1.0195x faster
   array-prototype-reduceRight                       71.9115+-1.7057     ?     72.0090+-1.2505        ?
   array-prototype-some                              77.0450+-3.0661           76.3105+-2.3869        
   array-splice-contiguous                           23.7245+-0.7259     ?     23.8662+-0.6740        ?
   array-with-double-add                              3.7537+-0.1437            3.6162+-0.0692          might be 1.0380x faster
   array-with-double-increment                        3.1456+-0.0555     ?      3.2147+-0.1382        ? might be 1.0220x slower
   array-with-double-mul-add                          4.4718+-0.0814     ?      4.5636+-0.3012        ? might be 1.0205x slower
   array-with-double-sum                              3.2773+-0.2085            3.2044+-0.0626          might be 1.0227x faster
   array-with-int32-add-sub                           6.4082+-0.3506            6.2344+-0.0758          might be 1.0279x faster
   array-with-int32-or-double-sum                     3.2937+-0.1209            3.2572+-0.0167          might be 1.0112x faster
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     25.2486+-0.3291     ?     26.5835+-1.8787        ? might be 1.0529x slower
   ArrayBuffer-DataView-alloc-long-lived             12.2546+-0.9133           11.7771+-0.3538          might be 1.0405x faster
   ArrayBuffer-Int32Array-byteOffset                  3.6260+-0.1436            3.5179+-0.0807          might be 1.0307x faster
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     26.3239+-1.4210     ?     26.6003+-1.1463        ? might be 1.0105x slower
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     19.6241+-0.5554           19.4623+-0.4262        
   ArrayBuffer-Int8Array-alloc-long-lived            11.5064+-0.5558     ?     11.5287+-0.9831        ?
   ArrayBuffer-Int8Array-alloc                        9.9383+-0.9913            9.7600+-0.5465          might be 1.0183x faster
   arrowfunction-call                                11.0581+-0.3122           10.7692+-0.2540          might be 1.0268x faster
   asmjs_bool_bug                                     8.0190+-0.1103     ?      8.0400+-0.1240        ?
   assign-custom-setter-polymorphic                   2.4292+-0.0340            2.4204+-0.0260        
   assign-custom-setter                               3.4403+-0.2009     ?      3.6208+-0.6266        ? might be 1.0525x slower
   basic-set                                          7.5606+-0.5460     ?      7.5678+-0.5027        ?
   big-int-mul                                        3.5603+-0.1883            3.4512+-0.0696          might be 1.0316x faster
   boolean-test                                       3.1439+-0.0543            3.0585+-0.0589          might be 1.0279x faster
   branch-fold                                        3.6268+-0.0644     ?      3.6636+-0.1897        ? might be 1.0102x slower
   branch-on-string-as-boolean                       18.1233+-1.3416           16.8998+-0.3129          might be 1.0724x faster
   by-val-generic                                     2.4035+-0.0813     ?      2.5402+-0.2906        ? might be 1.0569x slower
   call-spread-apply                                 29.0624+-2.5099           27.3295+-0.6675          might be 1.0634x faster
   call-spread-call                                  22.5938+-1.1307     ?     23.1843+-0.9583        ? might be 1.0261x slower
   captured-assignments                               0.4434+-0.0186     ?      0.4492+-0.0253        ? might be 1.0131x slower
   cast-int-to-double                                 5.1336+-0.1009     ?      5.2716+-0.2613        ? might be 1.0269x slower
   cell-argument                                      5.8134+-0.2399     ?      5.9707+-0.1681        ? might be 1.0271x slower
   cfg-simplify                                       2.8882+-0.0797     ?      2.9320+-0.1201        ? might be 1.0151x slower
   chain-getter-access                                8.3837+-0.2364     ?      8.5754+-0.7095        ? might be 1.0229x slower
   cmpeq-obj-to-obj-other                            13.3990+-0.5344           12.3402+-1.3015          might be 1.0858x faster
   constant-test                                      4.7842+-0.0784     ?      4.9994+-0.4603        ? might be 1.0450x slower
   create-lots-of-functions                           9.8050+-0.5512     ?     10.2470+-0.7445        ? might be 1.0451x slower
   cse-new-array-buffer                               2.4255+-0.2998            2.2566+-0.0800          might be 1.0748x faster
   cse-new-array                                      2.4021+-0.0843            2.3833+-0.0634        
   custom-setter-getter-as-put-get-by-id              0.5149+-0.0138     ?      0.5311+-0.0482        ? might be 1.0316x slower
   DataView-custom-properties                        31.7720+-0.9919           30.6098+-0.4949          might be 1.0380x faster
   delay-tear-off-arguments-strictmode               13.8116+-1.3775           12.8873+-0.4010          might be 1.0717x faster
   deltablue-varargs                                167.1303+-8.8122          164.4567+-3.5430          might be 1.0163x faster
   destructuring-arguments                          161.9123+-2.6871     ?    162.4801+-5.5176        ?
   destructuring-parameters-overridden-by-function   
                                                      0.4661+-0.0096     ?      0.5470+-0.1659        ? might be 1.1736x slower
   destructuring-swap                                 4.7025+-0.0456     ?      4.7719+-0.0581        ? might be 1.0148x slower
   direct-arguments-getbyval                          1.2814+-0.0778            1.1964+-0.0808          might be 1.0710x faster
   div-boolean-double                                 5.3061+-0.1289     ?      5.3101+-0.1646        ?
   div-boolean                                        8.1257+-0.0453     ?      8.2454+-0.2545        ? might be 1.0147x slower
   double-get-by-val-out-of-bounds                    4.4421+-0.2499            4.3992+-0.1226        
   double-pollution-getbyval                          8.4325+-0.2384     ?      8.5347+-0.2260        ? might be 1.0121x slower
   double-pollution-putbyoffset                       3.6669+-0.0499     ?      3.7161+-0.1595        ? might be 1.0134x slower
   double-real-use                                   25.4960+-2.6154           25.4238+-1.9654        
   double-to-int32-typed-array-no-inline              2.2325+-0.0952            2.2005+-0.0387          might be 1.0146x faster
   double-to-int32-typed-array                        2.1437+-0.1479            2.1234+-0.0729        
   double-to-uint32-typed-array-no-inline             2.3052+-0.0416     ?      2.4191+-0.2895        ? might be 1.0494x slower
   double-to-uint32-typed-array                       2.1281+-0.0862            2.0841+-0.0590          might be 1.0211x faster
   elidable-new-object-dag                           33.6698+-0.5494     ?     34.3348+-0.7559        ? might be 1.0197x slower
   elidable-new-object-roflcopter                    34.0736+-2.7862           33.4689+-2.0238          might be 1.0181x faster
   elidable-new-object-then-call                     31.4364+-0.5026     ?     32.5750+-2.1314        ? might be 1.0362x slower
   elidable-new-object-tree                          38.5257+-2.2479           37.3382+-0.6333          might be 1.0318x faster
   empty-string-plus-int                              4.8053+-0.1762            4.7284+-0.1769          might be 1.0163x faster
   emscripten-cube2hash                              28.6513+-1.5792           27.1165+-2.1451          might be 1.0566x faster
   exit-length-on-plain-object                       16.5004+-1.6742           15.6743+-0.8383          might be 1.0527x faster
   external-arguments-getbyval                        1.3432+-0.1115     ?      1.3445+-0.1715        ?
   external-arguments-putbyval                        2.1862+-0.0586     ?      2.2974+-0.1205        ? might be 1.0509x slower
   fixed-typed-array-storage-var-index                1.2632+-0.0355     ?      1.2925+-0.0743        ? might be 1.0232x slower
   fixed-typed-array-storage                          0.9705+-0.0571            0.9385+-0.0430          might be 1.0340x faster
   Float32Array-matrix-mult                           4.2920+-0.1829     ?      4.3029+-0.0718        ?
   Float32Array-to-Float64Array-set                  55.7461+-1.4968     ?     56.0960+-1.2790        ?
   Float64Array-alloc-long-lived                     63.3628+-3.2052           62.6022+-5.3707          might be 1.0121x faster
   Float64Array-to-Int16Array-set                    68.0363+-3.0724           66.1285+-1.2798          might be 1.0289x faster
   fold-double-to-int                                12.5230+-0.5195           12.4101+-0.0307        
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     10.8395+-0.8643           10.4779+-1.6876          might be 1.0345x faster
   fold-get-by-id-to-multi-get-by-offset              9.6016+-0.4957     ?     10.0576+-1.5550        ? might be 1.0475x slower
   fold-multi-get-by-offset-to-get-by-offset   
                                                      9.3087+-0.7359     ?      9.5105+-3.2947        ? might be 1.0217x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      8.6207+-1.9752            8.2169+-1.4230          might be 1.0491x faster
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      9.3075+-1.1972     ?      9.9071+-0.9441        ? might be 1.0644x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                     10.4509+-1.0130           10.0514+-0.6803          might be 1.0398x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                      9.5518+-0.5165     ?     10.0827+-0.8402        ? might be 1.0556x slower
   fold-put-by-id-to-multi-put-by-offset             11.3182+-1.4073           10.3466+-0.6027          might be 1.0939x faster
   fold-put-by-val-with-string-to-multi-put-by-offset   
                                                     10.7965+-0.3594           10.3021+-1.1569          might be 1.0480x faster
   fold-put-by-val-with-symbol-to-multi-put-by-offset   
                                                     11.3555+-1.1772     ?     11.4647+-2.2769        ?
   fold-put-structure                                 7.8201+-1.2063     ?      8.3320+-0.2853        ? might be 1.0655x slower
   for-of-iterate-array-entries                      10.9705+-0.1045           10.8724+-0.2832        
   for-of-iterate-array-keys                          3.4368+-0.1113     ?      3.4732+-0.0802        ? might be 1.0106x slower
   for-of-iterate-array-values                        3.3634+-0.0830     ?      3.4400+-0.1054        ? might be 1.0228x slower
   fround                                            17.6005+-0.2331     ?     18.3544+-0.6875        ? might be 1.0428x slower
   ftl-library-inlining-dataview                     58.4534+-0.8219           57.5145+-1.0322          might be 1.0163x faster
   ftl-library-inlining                              97.2646+-1.5214     ?     97.3380+-2.2384        ?
   function-call                                     10.9799+-0.5515           10.9279+-0.2273        
   function-dot-apply                                 2.1121+-0.2604            2.0664+-0.1306          might be 1.0221x faster
   function-test                                      2.7017+-0.0390     ?      2.7150+-0.0545        ?
   function-with-eval                                84.8234+-2.3168           83.3398+-2.0072          might be 1.0178x faster
   gcse-poly-get-less-obvious                        22.0080+-0.8781           21.8831+-1.0476        
   gcse-poly-get                                     23.4668+-2.5892           23.2593+-2.3710        
   gcse                                               3.4080+-0.0960     ?      3.4190+-0.0849        ?
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.8289+-0.5400            2.6041+-0.0621          might be 1.0863x faster
   get-by-id-bimorphic-check-structure-elimination   
                                                      4.7952+-0.2644     ?      4.8009+-0.1696        ?
   get-by-id-chain-from-try-block                     2.4097+-0.0515            2.4037+-0.0400        
   get-by-id-check-structure-elimination              4.0038+-0.1874            3.8947+-0.0579          might be 1.0280x faster
   get-by-id-proto-or-self                           16.8782+-1.2671     ?     17.3020+-2.0487        ? might be 1.0251x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      3.1760+-0.6887            2.8711+-0.0090          might be 1.1062x faster
   get-by-id-self-or-proto                           16.3996+-1.0600     ?     16.9084+-1.7665        ? might be 1.0310x slower
   get-by-val-out-of-bounds                           4.2660+-0.1604     ?      4.3388+-0.1782        ? might be 1.0171x slower
   get-by-val-with-string-bimorphic-check-structure-elimination-simple   
                                                      2.7282+-0.0632     ?      2.7510+-0.0676        ?
   get-by-val-with-string-bimorphic-check-structure-elimination   
                                                      6.2389+-0.2556            6.1148+-0.1447          might be 1.0203x faster
   get-by-val-with-string-chain-from-try-block   
                                                      2.4500+-0.0781     ?      2.5061+-0.1189        ? might be 1.0229x slower
   get-by-val-with-string-check-structure-elimination   
                                                      5.8942+-0.5540            5.7714+-0.3206          might be 1.0213x faster
   get-by-val-with-string-proto-or-self              17.3044+-1.4453           17.0768+-1.2327          might be 1.0133x faster
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple   
                                                      3.2170+-0.2174            3.0653+-0.0382          might be 1.0495x faster
   get-by-val-with-string-self-or-proto              16.0715+-0.9508     ?     17.9040+-1.3271        ? might be 1.1140x slower
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple   
                                                      2.9622+-0.0775     ?      3.0072+-0.1894        ? might be 1.0152x slower
   get-by-val-with-symbol-bimorphic-check-structure-elimination   
                                                     12.3483+-0.0782     ?     12.5448+-0.3215        ? might be 1.0159x slower
   get-by-val-with-symbol-chain-from-try-block   
                                                      2.4094+-0.0212            2.4017+-0.0236        
   get-by-val-with-symbol-check-structure-elimination   
                                                     11.5970+-0.1611           11.3781+-0.1142          might be 1.0192x faster
   get-by-val-with-symbol-proto-or-self              17.8220+-1.9411     ?     19.6051+-5.9143        ? might be 1.1001x slower
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple   
                                                      3.9483+-0.4281            3.7843+-0.1692          might be 1.0433x faster
   get-by-val-with-symbol-self-or-proto              16.8226+-0.9041     ?     16.8480+-0.9508        ?
   get_callee_monomorphic                             2.3410+-0.0956     ?      2.3663+-0.1303        ? might be 1.0108x slower
   get_callee_polymorphic                             3.3159+-0.0954     ?      3.3712+-0.1915        ? might be 1.0167x slower
   getter-no-activation                               4.6759+-0.0375     ?      4.7959+-0.2713        ? might be 1.0257x slower
   getter-prototype                                   8.1947+-0.4088            8.0652+-0.3090          might be 1.0161x faster
   getter-richards-try-catch                        992.7869+-13.4064    ?    994.5620+-30.1986       ?
   getter-richards                                  116.1336+-5.8495     ?    116.1407+-10.6008       ?
   getter                                             6.2823+-0.6527            6.0592+-0.8015          might be 1.0368x faster
   global-object-access-with-mutating-structure   
                                                      5.7669+-0.2197            5.5824+-0.1345          might be 1.0330x faster
   global-var-const-infer-fire-from-opt               0.8110+-0.2501            0.7299+-0.0712          might be 1.1110x faster
   global-var-const-infer                             0.6270+-0.0043     ?      0.7387+-0.2649        ? might be 1.1781x slower
   hard-overflow-check-equal                         27.8706+-1.4336           26.9848+-0.8886          might be 1.0328x faster
   hard-overflow-check                               28.6785+-5.4685           26.7874+-1.1787          might be 1.0706x faster
   HashMap-put-get-iterate-keys                      25.3370+-2.0624     ?     25.3493+-1.9561        ?
   HashMap-put-get-iterate                           28.1456+-1.6107           26.9978+-0.8372          might be 1.0425x faster
   HashMap-string-put-get-iterate                    23.5836+-1.2954     ?     23.6125+-0.8809        ?
   hoist-make-rope                                    9.4350+-0.9535            8.2667+-0.7252          might be 1.1413x faster
   hoist-poly-check-structure-effectful-loop   
                                                      3.7502+-0.1988            3.6750+-0.1192          might be 1.0205x faster
   hoist-poly-check-structure                         3.0741+-0.0639     ?      3.0768+-0.0861        ?
   imul-double-only                                   7.9147+-0.3148            7.6329+-0.4657          might be 1.0369x faster
   imul-int-only                                      8.3127+-1.1536     ?      8.7782+-0.8526        ? might be 1.0560x slower
   imul-mixed                                         6.6013+-0.4838     ?      7.2727+-0.5756        ? might be 1.1017x slower
   in-four-cases                                     18.5927+-0.1814           18.5143+-0.5769        
   in-one-case-false                                 10.2596+-0.3963     ?     10.3009+-0.5120        ?
   in-one-case-true                                  10.2393+-0.3506     ?     11.2048+-1.2044        ? might be 1.0943x slower
   in-two-cases                                      10.9005+-0.4330           10.3783+-0.1683          might be 1.0503x faster
   indexed-properties-in-objects                      2.8714+-0.1031            2.8083+-0.0547          might be 1.0225x faster
   infer-closure-const-then-mov-no-inline             3.7791+-0.3221            3.5868+-0.0664          might be 1.0536x faster
   infer-closure-const-then-mov                      16.5603+-0.8124     ?     16.6721+-0.8106        ?
   infer-closure-const-then-put-to-scope-no-inline   
                                                     11.1938+-0.4561     ?     11.4203+-0.5590        ? might be 1.0202x slower
   infer-closure-const-then-put-to-scope             22.9852+-0.3947     ?     23.8832+-2.2957        ? might be 1.0391x slower
   infer-closure-const-then-reenter-no-inline   
                                                     48.9607+-2.1837           48.6713+-0.9288        
   infer-closure-const-then-reenter                  23.0061+-0.6219     ?     23.3152+-0.9227        ? might be 1.0134x slower
   infer-constant-global-property                     3.4694+-0.1063     ?      3.5272+-0.3112        ? might be 1.0167x slower
   infer-constant-property                            2.6419+-0.0466     ?      2.6423+-0.1264        ?
   infer-one-time-closure-ten-vars                    7.8046+-0.2471     ?      8.1130+-0.6076        ? might be 1.0395x slower
   infer-one-time-closure-two-vars                    7.5980+-0.4516            7.2353+-0.1869          might be 1.0501x faster
   infer-one-time-closure                             7.5259+-0.8189     ?      7.6914+-0.5581        ? might be 1.0220x slower
   infer-one-time-deep-closure                       10.9885+-0.7923           10.8795+-0.4877          might be 1.0100x faster
   inline-arguments-access                            3.5878+-0.0832            3.5158+-0.0434          might be 1.0205x faster
   inline-arguments-aliased-access                    3.7395+-0.2848            3.6331+-0.0945          might be 1.0293x faster
   inline-arguments-local-escape                      3.6153+-0.1084     ?      3.7188+-0.1852        ? might be 1.0286x slower
   inline-get-scoped-var                              4.5223+-0.1339     ?      4.6993+-0.2849        ? might be 1.0391x slower
   inlined-put-by-id-transition                       9.4242+-0.3242            9.2286+-0.3719          might be 1.0212x faster
   inlined-put-by-val-with-string-transition   
                                                     43.5955+-2.8156     ^     39.9722+-0.7901        ^ definitely 1.0906x faster
   inlined-put-by-val-with-symbol-transition   
                                                     42.6478+-1.0417           41.5377+-3.3960          might be 1.0267x faster
   int-or-other-abs-then-get-by-val                   4.5490+-0.1577            4.4775+-0.1037          might be 1.0160x faster
   int-or-other-abs-zero-then-get-by-val             16.6730+-1.6883           15.9936+-0.7787          might be 1.0425x faster
   int-or-other-add-then-get-by-val                   4.2308+-0.1003     ?      4.2711+-0.0891        ?
   int-or-other-add                                   5.0546+-0.2264            4.9940+-0.2037          might be 1.0121x faster
   int-or-other-div-then-get-by-val                   3.9037+-0.2919            3.8580+-0.1952          might be 1.0118x faster
   int-or-other-max-then-get-by-val                   4.0508+-0.3075            3.8774+-0.0959          might be 1.0447x faster
   int-or-other-min-then-get-by-val                   3.8597+-0.1128     ?      3.9283+-0.1265        ? might be 1.0178x slower
   int-or-other-mod-then-get-by-val                   3.6749+-0.0462            3.6688+-0.0846        
   int-or-other-mul-then-get-by-val                   3.6091+-0.0824     ?      3.6178+-0.0942        ?
   int-or-other-neg-then-get-by-val                   4.1997+-0.1435            4.1973+-0.0362        
   int-or-other-neg-zero-then-get-by-val             15.8937+-0.4966           15.6053+-0.3247          might be 1.0185x faster
   int-or-other-sub-then-get-by-val                   4.1460+-0.0725     ?      4.1923+-0.1202        ? might be 1.0112x slower
   int-or-other-sub                                   3.6641+-0.4615            3.4844+-0.1123          might be 1.0516x faster
   int-overflow-local                                 4.1543+-0.0838     ?      4.1646+-0.0853        ?
   Int16Array-alloc-long-lived                       44.3691+-1.9770     ?     45.2637+-2.7784        ? might be 1.0202x slower
   Int16Array-bubble-sort-with-byteLength            19.2190+-0.7877     !     21.9874+-1.0321        ! definitely 1.1440x slower
   Int16Array-bubble-sort                            17.5399+-0.3147     !     22.6990+-1.2413        ! definitely 1.2941x slower
   Int16Array-load-int-mul                            1.5055+-0.0895            1.5015+-0.1256        
   Int16Array-to-Int32Array-set                      53.9383+-1.2035     ?     54.8022+-3.3360        ? might be 1.0160x slower
   Int32Array-alloc-large                            12.3273+-0.4767     ?     13.2561+-0.8981        ? might be 1.0753x slower
   Int32Array-alloc-long-lived                       50.1804+-1.4181     ?     50.5647+-1.3398        ?
   Int32Array-alloc                                   3.1170+-0.3787            3.0968+-0.2491        
   Int32Array-Int8Array-view-alloc                    6.0201+-0.1471     ?      6.0294+-0.1489        ?
   int52-spill                                        4.5867+-0.1860     ?      4.7198+-0.3061        ? might be 1.0290x slower
   Int8Array-alloc-long-lived                        39.7928+-1.2493           39.6075+-1.0681        
   Int8Array-load-with-byteLength                     3.5017+-0.1700            3.4180+-0.0576          might be 1.0245x faster
   Int8Array-load                                     3.4460+-0.0644            3.3787+-0.0478          might be 1.0199x faster
   integer-divide                                    10.3551+-0.0867     ?     10.5255+-0.2332        ? might be 1.0165x slower
   integer-modulo                                     1.6243+-0.0432     ?      1.6278+-0.0446        ?
   is-boolean-fold-tricky                             3.9016+-0.2756            3.7879+-0.0816          might be 1.0300x faster
   is-boolean-fold                                    2.8711+-0.4946            2.6576+-0.0593          might be 1.0804x faster
   is-function-fold-tricky-internal-function   
                                                      9.8294+-0.6242            9.5801+-0.4122          might be 1.0260x faster
   is-function-fold-tricky                            4.0274+-0.0938     ?      4.1469+-0.1147        ? might be 1.0297x slower
   is-function-fold                                   2.7547+-0.1353            2.6627+-0.0347          might be 1.0346x faster
   is-number-fold-tricky                              3.9329+-0.0798            3.9097+-0.0630        
   is-number-fold                                     2.7143+-0.0734     ?      2.8186+-0.3826        ? might be 1.0384x slower
   is-object-or-null-fold-functions                   2.7126+-0.0583            2.6912+-0.0366        
   is-object-or-null-fold-less-tricky                 4.1460+-0.2714     ?      4.2613+-0.3908        ? might be 1.0278x slower
   is-object-or-null-fold-tricky                      4.8401+-0.1279            4.8169+-0.1193        
   is-object-or-null-fold                             2.7273+-0.0925            2.7024+-0.0413        
   is-object-or-null-trickier-function                4.0023+-0.0763     ?      4.0451+-0.0488        ? might be 1.0107x slower
   is-object-or-null-trickier-internal-function   
                                                      9.7083+-0.0716     !      9.9345+-0.0495        ! definitely 1.0233x slower
   is-object-or-null-tricky-function                  4.0051+-0.0829     ?      4.0870+-0.1287        ? might be 1.0204x slower
   is-object-or-null-tricky-internal-function   
                                                      7.4683+-0.1166     ?      7.5951+-0.5935        ? might be 1.0170x slower
   is-string-fold-tricky                              3.9449+-0.0405     ?      4.0000+-0.1293        ? might be 1.0140x slower
   is-string-fold                                     2.7402+-0.0527     ?      2.7572+-0.1848        ?
   is-undefined-fold-tricky                           3.3676+-0.0999     ?      3.4154+-0.1357        ? might be 1.0142x slower
   is-undefined-fold                                  2.6436+-0.0340     ?      2.8532+-0.4918        ? might be 1.0793x slower
   JSONP-negative-0                                   0.2601+-0.0067     ?      0.2671+-0.0153        ? might be 1.0269x slower
   large-int-captured                                 4.0829+-0.1604     ?      4.1488+-0.1531        ? might be 1.0161x slower
   large-int-neg                                     13.9969+-0.4780     ?     14.3792+-0.4035        ? might be 1.0273x slower
   large-int                                         12.9623+-0.4696           12.7332+-0.1913          might be 1.0180x faster
   load-varargs-elimination                          21.1470+-0.9345     ?     21.9924+-2.1536        ? might be 1.0400x slower
   logical-not-weird-types                            3.2255+-0.3228            3.0785+-0.0607          might be 1.0478x faster
   logical-not                                        4.4348+-0.2300            4.3525+-0.0961          might be 1.0189x faster
   lots-of-fields                                     9.6707+-0.5069            9.5348+-0.4361          might be 1.0142x faster
   make-indexed-storage                               2.8672+-0.1111            2.8136+-0.1091          might be 1.0191x faster
   make-rope-cse                                      3.7703+-0.5333            3.5830+-0.2371          might be 1.0523x faster
   marsaglia-larger-ints                             32.7215+-0.8256           31.7130+-0.6451          might be 1.0318x faster
   marsaglia-osr-entry                               22.0717+-1.0383           21.3654+-0.4778          might be 1.0331x faster
   math-with-out-of-bounds-array-values              22.5090+-0.7910           22.3395+-1.9997        
   max-boolean                                        2.6957+-0.0857            2.5842+-0.0480          might be 1.0432x faster
   method-on-number                                  15.6602+-0.3764     ?     15.6711+-0.2982        ?
   min-boolean                                        2.5663+-0.0180     ?      2.6998+-0.1228        ? might be 1.0520x slower
   minus-boolean-double                               3.0898+-0.0515            3.0670+-0.0349        
   minus-boolean                                      2.3418+-0.0500     ?      2.3499+-0.0270        ?
   misc-strict-eq                                    29.4897+-1.8717           29.4255+-1.1191        
   mod-boolean-double                                11.0142+-0.1260     ?     11.0843+-0.3174        ?
   mod-boolean                                        8.2898+-0.1463     ?      8.3278+-0.1250        ?
   mul-boolean-double                                 3.6007+-0.0193     ?      3.7164+-0.2623        ? might be 1.0321x slower
   mul-boolean                                        2.8538+-0.1283            2.8204+-0.0515          might be 1.0118x faster
   neg-boolean                                        3.1006+-0.0397     ?      3.1519+-0.1557        ? might be 1.0165x slower
   negative-zero-divide                               0.3603+-0.0271            0.3539+-0.0130          might be 1.0181x faster
   negative-zero-modulo                               0.3595+-0.0472            0.3451+-0.0255          might be 1.0419x faster
   negative-zero-negate                               0.3956+-0.1745            0.3726+-0.1178          might be 1.0617x faster
   nested-function-parsing                           45.4869+-1.1094           45.3610+-0.6013        
   new-array-buffer-dead                             86.5184+-1.0162     ?     87.0897+-1.5186        ?
   new-array-buffer-push                              6.1712+-0.4178     ?      6.7629+-1.3450        ? might be 1.0959x slower
   new-array-dead                                    14.6422+-0.6460     ?     15.0940+-1.2980        ? might be 1.0309x slower
   new-array-push                                     4.1853+-0.5005     ?      4.4191+-0.3164        ? might be 1.0559x slower
   no-inline-constructor                             30.3115+-0.1857     ?     30.8079+-0.7586        ? might be 1.0164x slower
   number-test                                        3.0863+-0.1049            3.0660+-0.0517        
   object-closure-call                                4.9685+-0.3475            4.9170+-0.1655          might be 1.0105x faster
   object-get-own-property-symbols-on-large-array   
                                                      4.1582+-0.2319     ?      4.9455+-1.6857        ? might be 1.1893x slower
   object-test                                        2.7819+-0.1201            2.7814+-0.1848        
   obvious-sink-pathology-taken                      97.3273+-2.6316           96.2664+-0.5799          might be 1.0110x faster
   obvious-sink-pathology                            29.8297+-1.0041           29.2858+-0.2103          might be 1.0186x faster
   obviously-elidable-new-object                     29.5202+-1.3468           28.5475+-0.7236          might be 1.0341x faster
   plus-boolean-arith                                 2.3905+-0.0429     ?      2.4235+-0.0678        ? might be 1.0138x slower
   plus-boolean-double                                3.1105+-0.0875            3.1048+-0.0546        
   plus-boolean                                       2.5422+-0.0533     ?      2.5684+-0.0326        ? might be 1.0103x slower
   poly-chain-access-different-prototypes-simple   
                                                      2.5789+-0.0633            2.5733+-0.0480        
   poly-chain-access-different-prototypes             2.5759+-0.1077            2.5445+-0.0254          might be 1.0124x faster
   poly-chain-access-simpler                          2.6742+-0.1467            2.5953+-0.0620          might be 1.0304x faster
   poly-chain-access                                  2.5953+-0.0945            2.5551+-0.0609          might be 1.0158x faster
   poly-stricteq                                     53.3066+-0.8642     ?     54.0068+-0.9026        ? might be 1.0131x slower
   polymorphic-array-call                             1.3609+-0.2843            1.3099+-0.0674          might be 1.0390x faster
   polymorphic-get-by-id                              3.0155+-0.1405     ?      3.0264+-0.3663        ?
   polymorphic-put-by-id                             28.3276+-1.1037           27.8229+-2.0446          might be 1.0181x faster
   polymorphic-put-by-val-with-string                28.6014+-1.5058     ?     28.9659+-1.2040        ? might be 1.0127x slower
   polymorphic-put-by-val-with-symbol                28.9093+-1.7676     ?     30.0766+-1.4747        ? might be 1.0404x slower
   polymorphic-structure                             12.3825+-0.2076     ?     12.4467+-0.2354        ?
   polyvariant-monomorphic-get-by-id                  6.5904+-1.3639            6.3175+-1.0490          might be 1.0432x faster
   proto-getter-access                                8.3752+-0.1309     ?      8.4305+-0.4739        ?
   prototype-access-with-mutating-prototype           5.5090+-0.2489            5.4708+-0.2002        
   put-by-id-replace-and-transition                   7.7155+-0.6916     ?      7.9016+-0.1337        ? might be 1.0241x slower
   put-by-id-slightly-polymorphic                     2.7266+-0.1373     ?      2.7805+-0.1213        ? might be 1.0198x slower
   put-by-id                                          9.8710+-0.6053     ?     10.3940+-0.6286        ? might be 1.0530x slower
   put-by-val-direct                                  0.4257+-0.1020            0.3604+-0.0271          might be 1.1811x faster
   put-by-val-large-index-blank-indexing-type   
                                                      5.2903+-0.2986     ?      5.5057+-0.2220        ? might be 1.0407x slower
   put-by-val-machine-int                             2.5803+-0.2059     ?      2.6082+-0.0445        ? might be 1.0108x slower
   put-by-val-with-string-replace-and-transition   
                                                     10.0514+-0.2223     ?     10.1804+-0.2622        ? might be 1.0128x slower
   put-by-val-with-string-slightly-polymorphic   
                                                      2.9986+-0.0760     ?      3.0892+-0.2253        ? might be 1.0302x slower
   put-by-val-with-string                            10.7861+-0.8985           10.1041+-0.3579          might be 1.0675x faster
   put-by-val-with-symbol-replace-and-transition   
                                                     11.8815+-0.8467     ?     12.2748+-0.9716        ? might be 1.0331x slower
   put-by-val-with-symbol-slightly-polymorphic   
                                                      3.1875+-0.1314     ?      3.2053+-0.1127        ?
   put-by-val-with-symbol                            10.6102+-0.5622     ?     11.3527+-1.6864        ? might be 1.0700x slower
   rare-osr-exit-on-local                            13.9960+-0.5574           13.7491+-0.1790          might be 1.0180x faster
   raytrace-with-empty-try-catch                      5.1869+-0.0991     ?      5.2808+-0.2137        ? might be 1.0181x slower
   raytrace-with-try-catch                           10.6875+-1.9143            9.8283+-0.1595          might be 1.0874x faster
   register-pressure-from-osr                        16.6332+-0.4665     ?     16.7360+-0.9802        ?
   repeat-multi-get-by-offset                        21.8057+-0.3584     ?     21.8926+-0.3818        ?
   richards-empty-try-catch                          74.3780+-5.3041           71.9070+-0.8755          might be 1.0344x faster
   richards-try-catch                               239.3179+-3.5609          239.0817+-2.6214        
   setter-prototype                                   7.6549+-0.1719     ?      7.8158+-0.2220        ? might be 1.0210x slower
   setter                                             5.7700+-0.6307     ?      5.9686+-0.5573        ? might be 1.0344x slower
   simple-activation-demo                            25.3677+-2.4201           23.9065+-0.4862          might be 1.0611x faster
   simple-getter-access                              10.7190+-0.1445     ?     10.8053+-0.3692        ?
   simple-poly-call-nested                            8.9128+-0.1961     ^      8.1351+-0.2538        ^ definitely 1.0956x faster
   simple-poly-call                                   1.3015+-0.0377            1.2719+-0.0136          might be 1.0233x faster
   sin-boolean                                       20.3957+-2.3641     ?     20.4177+-2.0080        ?
   singleton-scope                                   64.6046+-0.8147     ?     65.3915+-3.9945        ? might be 1.0122x slower
   sink-function                                     10.0085+-0.5826            9.8361+-0.5310          might be 1.0175x faster
   sink-huge-activation                              15.9982+-0.7873     ?     16.0951+-0.9178        ?
   sinkable-new-object-dag                           52.5722+-1.6208     ?     53.9578+-1.3311        ? might be 1.0264x slower
   sinkable-new-object-taken                         42.0554+-2.8651           41.8710+-1.8188        
   sinkable-new-object                               30.3323+-0.9850           29.9370+-1.0771          might be 1.0132x faster
   slow-array-profile-convergence                     2.6786+-0.3899            2.5658+-0.0763          might be 1.0440x faster
   slow-convergence                                   2.5324+-0.3700            2.4353+-0.0850          might be 1.0399x faster
   slow-ternaries                                    17.9741+-2.0193     ?     18.2394+-0.6936        ? might be 1.0148x slower
   sorting-benchmark                                 17.9370+-1.9839           17.3289+-0.8577          might be 1.0351x faster
   sparse-conditional                                 1.2079+-0.0887            1.1474+-0.0300          might be 1.0527x faster
   splice-to-remove                                  11.9471+-0.1626     ?     12.2808+-0.2354        ? might be 1.0279x slower
   string-char-code-at                               14.0491+-1.8032           13.3432+-0.1386          might be 1.0529x faster
   string-concat-object                               2.0555+-0.0741     !      2.2218+-0.0765        ! definitely 1.0809x slower
   string-concat-pair-object                          2.1524+-0.0665     ?      2.1763+-0.3326        ? might be 1.0111x slower
   string-concat-pair-simple                          9.2703+-0.8202     ?      9.8757+-0.8698        ? might be 1.0653x slower
   string-concat-simple                               9.2830+-0.4726     ?      9.3847+-0.5806        ? might be 1.0110x slower
   string-cons-repeat                                 6.3584+-0.2959     ?      6.3909+-0.1796        ?
   string-cons-tower                                  6.7253+-0.2840     ?      6.7628+-0.4403        ?
   string-equality                                   18.2227+-0.4993     ?     18.2762+-0.3492        ?
   string-get-by-val-big-char                         6.6605+-0.3269            6.5715+-0.2941          might be 1.0136x faster
   string-get-by-val-out-of-bounds-insane             3.1292+-0.2463            3.1209+-0.0788        
   string-get-by-val-out-of-bounds                    3.9599+-0.0544     ?      3.9658+-0.1018        ?
   string-get-by-val                                  2.9615+-0.3173            2.9000+-0.1865          might be 1.0212x faster
   string-hash                                        1.8637+-0.0582     ?      2.0415+-0.4906        ? might be 1.0954x slower
   string-long-ident-equality                        14.9573+-0.2425     ?     17.0123+-4.3041        ? might be 1.1374x slower
   string-out-of-bounds                              10.2200+-0.4328     ?     10.2749+-0.3256        ?
   string-repeat-arith                               27.8573+-1.7793           26.1894+-0.6476          might be 1.0637x faster
   string-sub                                        53.8776+-1.7725           53.4518+-1.3816        
   string-test                                        3.0089+-0.2012            2.9293+-0.0578          might be 1.0272x faster
   string-var-equality                               27.9538+-1.2092           27.7765+-0.6906        
   structure-hoist-over-transitions                   2.3455+-0.1541     ?      2.3493+-0.0895        ?
   substring-concat-weird                            36.4498+-1.3935           35.2572+-0.6354          might be 1.0338x faster
   substring-concat                                  40.0091+-1.3473           39.9498+-0.6150        
   substring                                         44.5387+-0.6216     ?     45.8658+-1.9812        ? might be 1.0298x slower
   switch-char-constant                               2.7269+-0.0747     ?      2.8300+-0.2726        ? might be 1.0378x slower
   switch-char                                        6.1075+-0.8898     ?      7.2946+-1.0348        ? might be 1.1944x slower
   switch-constant                                    8.4682+-1.9924     ?      8.5909+-0.5828        ? might be 1.0145x slower
   switch-string-basic-big-var                       15.4037+-1.0604           14.6535+-0.3735          might be 1.0512x faster
   switch-string-basic-big                           15.6580+-1.0469           15.3359+-0.5397          might be 1.0210x faster
   switch-string-basic-var                           13.9017+-0.4184           13.6331+-0.1605          might be 1.0197x faster
   switch-string-basic                               13.5162+-1.0244           13.0433+-0.3221          might be 1.0363x faster
   switch-string-big-length-tower-var                17.9424+-0.7651     ?     19.6864+-3.4159        ? might be 1.0972x slower
   switch-string-length-tower-var                    13.5350+-0.3771           13.4826+-0.4590        
   switch-string-length-tower                        11.9269+-0.4415     ?     11.9522+-0.2741        ?
   switch-string-short                               12.0498+-0.2178           11.8941+-0.1424          might be 1.0131x faster
   switch                                            11.7178+-0.7366           10.7767+-0.6704          might be 1.0873x faster
   tear-off-arguments-simple                          3.1733+-0.2451            3.1030+-0.2233          might be 1.0227x faster
   tear-off-arguments                                 4.1434+-0.3423            4.0858+-0.1514          might be 1.0141x faster
   temporal-structure                                11.8474+-0.1388     ?     11.9392+-0.5749        ?
   to-int32-boolean                                  13.1618+-1.3214           12.9657+-0.6678          might be 1.0151x faster
   try-catch-get-by-val-cloned-arguments              9.2507+-0.0728     ?      9.7059+-0.4841        ? might be 1.0492x slower
   try-catch-get-by-val-direct-arguments              2.0297+-0.1273     ?      2.1478+-0.0624        ? might be 1.0582x slower
   try-catch-get-by-val-scoped-arguments              4.5055+-0.1272     ?      4.7029+-0.4568        ? might be 1.0438x slower
   typed-array-get-set-by-val-profiling              27.3417+-0.9059           27.1536+-1.0229        
   undefined-property-access                        218.5614+-9.1123          216.0439+-3.9517          might be 1.0117x faster
   undefined-test                                     3.1117+-0.1214     ?      3.1145+-0.0452        ?
   unprofiled-licm                                    9.2321+-0.3206            9.2237+-0.2395        
   v8-raytrace-with-empty-try-catch                  24.1367+-1.1382     ?     24.3754+-0.6670        ?
   v8-raytrace-with-try-catch                        62.4555+-2.1813           61.1191+-1.5280          might be 1.0219x faster
   varargs-call                                      13.5537+-0.7236           13.1660+-0.3678          might be 1.0294x faster
   varargs-construct-inline                          22.1469+-0.7822           21.6859+-0.6986          might be 1.0213x faster
   varargs-construct                                 20.3550+-0.5962     ?     20.4996+-0.9027        ?
   varargs-inline                                     9.0896+-0.3637            9.0470+-0.3395        
   varargs-strict-mode                               10.4887+-1.1153           10.0518+-0.2820          might be 1.0435x faster
   varargs                                            9.9513+-0.3653     ?     10.0995+-0.8521        ? might be 1.0149x slower
   weird-inlining-const-prop                          2.4817+-0.6337            2.1095+-0.0539          might be 1.1764x faster

   <geometric>                                        8.1025+-0.0187            8.0940+-0.0242          might be 1.0011x faster

                                                        TipOfTree               FixTypedArrays                                  
AsmBench:
   bigfib.cpp                                       455.6811+-17.9760         451.0170+-8.6408          might be 1.0103x faster
   cray.c                                           399.7716+-12.7590         393.4328+-4.0822          might be 1.0161x faster
   dry.c                                            418.2099+-7.8111     ?    428.7768+-4.8235        ? might be 1.0253x slower
   FloatMM.c                                        683.4253+-3.9365     ?    697.5125+-21.6773       ? might be 1.0206x slower
   gcc-loops.cpp                                   3437.7587+-18.4866        3435.3886+-11.2602       
   n-body.c                                         825.6740+-3.1108          824.7231+-3.5658        
   Quicksort.c                                      410.4412+-3.1251          404.5633+-3.7980          might be 1.0145x faster
   stepanov_container.cpp                          3507.5177+-24.6336    ?   3510.5180+-40.3811       ?
   Towers.c                                         233.9105+-2.5730     ?    234.1923+-4.7442        ?

   <geometric>                                      716.4165+-5.0675     ?    716.8283+-3.5049        ? might be 1.0006x slower

                                                        TipOfTree               FixTypedArrays                                  
CompressionBench:
   huffman                                           61.3783+-1.1002           61.2773+-0.9089        
   arithmetic-simple                                275.7478+-2.5129     ?    276.8722+-3.2416        ?
   arithmetic-precise                               260.6422+-8.9025          252.6284+-1.7609          might be 1.0317x faster
   arithmetic-complex-precise                       255.1493+-3.5902          252.1502+-2.4573          might be 1.0119x faster
   arithmetic-precise-order-0                       288.8969+-1.8505          288.2190+-5.3246        
   arithmetic-precise-order-1                       304.6100+-3.8419     ?    307.0992+-5.7264        ?
   arithmetic-precise-order-2                       357.5446+-3.5684          355.9205+-3.6199        
   arithmetic-simple-order-1                        325.6619+-3.2901          324.2571+-2.1061        
   arithmetic-simple-order-2                        374.7574+-7.7205          370.0241+-0.9437          might be 1.0128x faster
   lz-string                                        319.6182+-11.5394    ?    321.3376+-14.1132       ?

   <geometric>                                      259.4075+-2.2816          258.0886+-1.6328          might be 1.0051x faster

                                                        TipOfTree               FixTypedArrays                                  
Geomean of preferred means:
   <scaled-result>                                   50.2280+-0.1077     ?     50.3366+-0.2434        ? might be 1.0022x slower
Comment 4 Filip Pizlo 2015-10-15 19:55:01 PDT
Created attachment 263240 [details]
the patch
Comment 5 Michael Saboff 2015-10-16 15:42:11 PDT
Comment on attachment 263240 [details]
the patch

r=me
As we discussed, please write a byte offset test as well and include it in the patch.
Comment 6 Filip Pizlo 2015-10-16 15:50:18 PDT
(In reply to comment #5)
> Comment on attachment 263240 [details]
> the patch
> 
> r=me
> As we discussed, please write a byte offset test as well and include it in
> the patch.

Yup, I added it.  Indeed, it fails on trunk.
Comment 7 Filip Pizlo 2015-10-16 15:54:22 PDT
Landed in http://trac.webkit.org/changeset/191221