Bug 147760 - Introduce put_by_id like IC into put_by_val when the given name is String or Symbol
Summary: Introduce put_by_id like IC into put_by_val when the given name is String or ...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Yusuke Suzuki
URL:
Keywords:
Depends on: 149158
Blocks:
  Show dependency treegraph
 
Reported: 2015-08-06 17:49 PDT by Yusuke Suzuki
Modified: 2015-09-15 04:11 PDT (History)
5 users (show)

See Also:


Attachments
Patch (30.40 KB, patch)
2015-08-07 14:17 PDT, Yusuke Suzuki
no flags Details | Formatted Diff | Diff
Patch (69.36 KB, patch)
2015-08-07 16:53 PDT, Yusuke Suzuki
no flags Details | Formatted Diff | Diff
Patch (69.22 KB, patch)
2015-08-07 17:00 PDT, Yusuke Suzuki
no flags Details | Formatted Diff | Diff
Patch (82.98 KB, patch)
2015-08-07 18:44 PDT, Yusuke Suzuki
no flags Details | Formatted Diff | Diff
Patch (82.95 KB, patch)
2015-08-09 19:10 PDT, Yusuke Suzuki
no flags Details | Formatted Diff | Diff
Patch (82.60 KB, patch)
2015-08-11 18:48 PDT, Yusuke Suzuki
fpizlo: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yusuke Suzuki 2015-08-06 17:49:28 PDT
Apply https://bugs.webkit.org/show_bug.cgi?id=147480 optimization to put_by_val case.
It improves the performance of the code using ES6 Symbol.
Comment 1 Yusuke Suzuki 2015-08-07 14:17:27 PDT
Created attachment 258527 [details]
Patch

WIP: the logic is almost completed. I'll do a refactoring & add tests (splitting out the ident guard in baseline code to the function etc.)
Comment 2 Yusuke Suzuki 2015-08-07 15:26:24 PDT
This will improve the following

var obj = {
  [key]: value
};

initializations at the same time :)
Comment 3 Yusuke Suzuki 2015-08-07 16:53:02 PDT
Created attachment 258544 [details]
Patch
Comment 4 Yusuke Suzuki 2015-08-07 16:59:14 PDT
Benchmark results.

Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, and JSRegress on Yusukes-MacBook-Pro (MacBookPro11,3).

VMs tested:
"master" at /Users/yusukesuzuki/development/WebKit/WebKitBuild/master-for-put-by-val/Release/jsc
"ic" at /Users/yusukesuzuki/development/WebKit/WebKitBuild/put-by-val/Release/jsc

Collected 4 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample measurements.
Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level
timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds.

                                                          master                      ic                                        
SunSpider:
   3d-cube                                            4.6475+-0.5510            4.5507+-0.2860          might be 1.0213x faster
   3d-morph                                           5.3203+-0.0821     ?      5.4310+-0.5118        ? might be 1.0208x slower
   3d-raytrace                                        5.6584+-0.7394            5.4026+-0.4226          might be 1.0473x faster
   access-binary-trees                                1.9963+-0.1685            1.9078+-0.1089          might be 1.0464x faster
   access-fannkuch                                    5.4057+-0.2264     ?      5.5830+-0.3601        ? might be 1.0328x slower
   access-nbody                                       2.5447+-0.0383     ?      2.6700+-0.2888        ? might be 1.0492x slower
   access-nsieve                                      2.9828+-0.0873     ?      3.1432+-0.3277        ? might be 1.0538x slower
   bitops-3bit-bits-in-byte                           1.4982+-0.0742            1.4454+-0.0591          might be 1.0366x faster
   bitops-bits-in-byte                                3.2570+-0.0762     ?      3.3142+-0.1078        ? might be 1.0176x slower
   bitops-bitwise-and                                 2.1485+-0.3037            1.9880+-0.0391          might be 1.0807x faster
   bitops-nsieve-bits                                 2.9438+-0.0831            2.9420+-0.0261        
   controlflow-recursive                              2.0002+-0.1176     ?      2.0281+-0.1715        ? might be 1.0139x slower
   crypto-aes                                         3.8498+-0.2089     ?      4.0342+-0.4514        ? might be 1.0479x slower
   crypto-md5                                         2.4705+-0.1021     ?      2.5795+-0.1916        ? might be 1.0441x slower
   crypto-sha1                                        2.4130+-0.1983     ?      2.5687+-0.5378        ? might be 1.0645x slower
   date-format-tofte                                  6.7535+-0.2203     ?      6.7904+-0.2469        ?
   date-format-xparb                                  4.7384+-0.6966            4.5208+-0.2107          might be 1.0481x faster
   math-cordic                                        2.8754+-0.3016            2.7780+-0.0323          might be 1.0351x faster
   math-partial-sums                                  5.3906+-0.1271            5.3134+-0.1641          might be 1.0145x faster
   math-spectral-norm                                 1.8530+-0.0518            1.8110+-0.0554          might be 1.0232x faster
   regexp-dna                                         6.6661+-0.1668            6.5053+-0.2547          might be 1.0247x faster
   string-base64                                      4.3551+-0.2986     ?      4.3760+-0.1540        ?
   string-fasta                                       5.7739+-0.1392     ?      5.7973+-0.0913        ?
   string-tagcloud                                    8.2440+-0.3629     ?      8.2941+-0.4753        ?
   string-unpack-code                                20.2731+-0.5952     ?     20.5186+-0.8743        ? might be 1.0121x slower
   string-validate-input                              4.6454+-0.2557            4.6300+-0.3546        

   <arithmetic>                                       4.6425+-0.0577     ?      4.6509+-0.0370        ? might be 1.0018x slower

                                                          master                      ic                                        
LongSpider:
   3d-cube                                          790.6931+-13.5212         787.5883+-10.1992       
   3d-morph                                        1557.5891+-37.6890        1540.4322+-5.6723          might be 1.0111x faster
   3d-raytrace                                      640.2073+-11.8724    ?    642.3800+-6.6345        ?
   access-binary-trees                              834.2610+-7.5012          826.9417+-16.3687       
   access-fannkuch                                  283.0827+-10.2899    ?    283.9883+-5.2871        ?
   access-nbody                                     524.9025+-11.3726         524.0589+-6.5879        
   access-nsieve                                    364.8574+-20.5739         362.6217+-22.9277       
   bitops-3bit-bits-in-byte                          41.2823+-2.6050           41.0333+-0.7918        
   bitops-bits-in-byte                               81.5703+-2.0667     ?     81.7900+-1.6201        ?
   bitops-nsieve-bits                               414.2668+-11.9621    ?    421.4171+-9.9181        ? might be 1.0173x slower
   controlflow-recursive                            432.9592+-8.9942     ?    435.4891+-7.3905        ?
   crypto-aes                                       591.4529+-14.4930    ?    600.5972+-11.5379       ? might be 1.0155x slower
   crypto-md5                                       483.5461+-8.4535          481.2392+-3.3776        
   crypto-sha1                                      657.1677+-28.2210         650.8355+-6.2456        
   date-format-tofte                                517.4740+-5.5356     ?    519.7972+-4.6140        ?
   date-format-xparb                                640.6627+-5.5499     ?    645.3862+-4.8937        ?
   hash-map                                         154.9420+-2.8106     ?    155.7394+-2.9022        ?
   math-cordic                                      504.1088+-6.9831          498.2603+-6.9737          might be 1.0117x faster
   math-partial-sums                                505.8552+-5.5137          503.8810+-6.6426        
   math-spectral-norm                               567.8605+-8.4526     ?    570.8371+-7.9574        ?
   string-base64                                    355.7360+-8.6966     ?    358.8772+-13.1868       ?
   string-fasta                                     371.1290+-4.3836          369.3702+-6.7752        
   string-tagcloud                                  184.1840+-2.9461          183.5414+-3.3726        

   <geometric>                                      400.6519+-3.0585     ?    400.7128+-2.3267        ? might be 1.0002x slower

                                                          master                      ic                                        
V8Spider:
   crypto                                            49.8808+-3.4730     ?     51.0818+-2.9611        ? might be 1.0241x slower
   deltablue                                         82.6540+-4.0320     ?     87.5795+-11.8431       ? might be 1.0596x slower
   earley-boyer                                      39.6241+-1.1683     ?     39.9680+-0.9492        ?
   raytrace                                          29.6940+-3.4426     ?     29.8050+-0.9096        ?
   regexp                                            71.5437+-20.3625          63.4915+-1.5867          might be 1.1268x faster
   richards                                          71.1310+-2.1558     ?     71.3584+-1.4709        ?
   splay                                             32.9628+-1.7137     ?     35.0010+-1.3698        ? might be 1.0618x slower

   <geometric>                                       50.1934+-1.5189     ?     50.5430+-1.5713        ? might be 1.0070x slower

                                                          master                      ic                                        
Octane:
   encrypt                                           0.20858+-0.00695          0.20772+-0.00529       
   decrypt                                           3.55052+-0.10304          3.49026+-0.09273         might be 1.0173x faster
   deltablue                                x2       0.15801+-0.00199    ?     0.15917+-0.00111       ?
   earley                                            0.28187+-0.00428    ?     0.28201+-0.00501       ?
   boyer                                             4.29192+-0.17404    ?     4.32426+-0.27663       ?
   navier-stokes                            x2       5.12083+-0.08797    ?     5.17124+-0.10096       ?
   raytrace                                 x2       1.11400+-0.03343          1.04216+-0.10683         might be 1.0689x faster
   richards                                 x2       0.10178+-0.00182    ?     0.10476+-0.00515       ? might be 1.0293x slower
   splay                                    x2       0.35192+-0.01115          0.34540+-0.00302         might be 1.0188x faster
   regexp                                   x2      25.63553+-0.39604    !    26.44431+-0.34988       ! definitely 1.0315x slower
   pdfjs                                    x2      38.47738+-0.74088    ?    38.53297+-0.74144       ?
   mandreel                                 x2      45.99513+-1.43799    ?    46.45711+-1.72120       ? might be 1.0100x slower
   gbemu                                    x2      36.10856+-3.06677         34.82200+-0.56778         might be 1.0369x faster
   closure                                           0.57473+-0.00418    ?     0.57615+-0.00307       ?
   jquery                                            7.46465+-0.18401          7.36353+-0.16144         might be 1.0137x faster
   box2d                                    x2      10.26098+-0.28105    ?    10.31194+-0.17225       ?
   zlib                                     x2     392.32231+-7.39001        389.48822+-6.64758       
   typescript                               x2     664.83917+-26.82186   ?   677.30731+-20.06463      ? might be 1.0188x slower

   <geometric>                                       5.79189+-0.04609          5.78043+-0.03344         might be 1.0020x faster

                                                          master                      ic                                        
Kraken:
   ai-astar                                          241.365+-5.118            238.731+-14.272          might be 1.0110x faster
   audio-beat-detection                               59.148+-0.479             58.943+-0.492         
   audio-dft                                          97.255+-2.436      ?      99.207+-3.193         ? might be 1.0201x slower
   audio-fft                                          35.490+-0.199             35.489+-0.064         
   audio-oscillator                                   62.692+-0.703             62.353+-0.472         
   imaging-darkroom                                   60.752+-0.993             60.462+-0.494         
   imaging-desaturate                                 56.198+-0.811             54.646+-5.503           might be 1.0284x faster
   imaging-gaussian-blur                              85.531+-2.129             85.211+-1.705         
   json-parse-financial                               39.943+-0.670             39.793+-0.742         
   json-stringify-tinderbox                           23.121+-0.621      ?      24.341+-1.220         ? might be 1.0527x slower
   stanford-crypto-aes                                41.827+-0.675      ?      42.299+-1.026         ? might be 1.0113x slower
   stanford-crypto-ccm                                36.805+-4.181             35.615+-0.989           might be 1.0334x faster
   stanford-crypto-pbkdf2                             96.699+-1.800      ?      96.792+-1.776         ?
   stanford-crypto-sha256-iterative                   37.039+-0.777      ?      37.141+-0.543         ?

   <arithmetic>                                       69.562+-0.584             69.359+-1.025           might be 1.0029x faster

                                                          master                      ic                                        
JSRegress:
   abc-forward-loop-equal                            29.5349+-0.4325     ?     30.1417+-0.7411        ? might be 1.0205x slower
   abc-postfix-backward-loop                         30.3881+-1.8454           29.7782+-0.6846          might be 1.0205x faster
   abc-simple-backward-loop                          29.2748+-0.9834     ?     29.7107+-1.0847        ? might be 1.0149x slower
   abc-simple-forward-loop                           29.4175+-0.6109     ?     29.5807+-1.3308        ?
   abc-skippy-loop                                   21.0942+-0.9842     ?     21.4785+-0.8209        ? might be 1.0182x slower
   abs-boolean                                        2.4377+-0.0390     ?      2.4465+-0.1482        ?
   adapt-to-double-divide                            17.0712+-1.5894           16.5235+-0.4986          might be 1.0331x faster
   aliased-arguments-getbyval                         1.1270+-0.0960     ?      1.1277+-0.0559        ?
   allocate-big-object                                2.3806+-0.5520            2.3558+-0.2988          might be 1.0105x faster
   arguments-named-and-reflective                    10.9250+-0.2171     ?     10.9985+-0.1123        ?
   arguments-out-of-bounds                           10.2409+-0.4871           10.0610+-0.8294          might be 1.0179x faster
   arguments-strict-mode                              9.5701+-0.0788     ?      9.9498+-0.6374        ? might be 1.0397x slower
   arguments                                          8.4837+-0.1373            8.4786+-0.3615        
   arity-mismatch-inlining                            0.8566+-0.0383     ?      0.8638+-0.0807        ?
   array-access-polymorphic-structure                 5.9321+-0.0565            5.8259+-0.4725          might be 1.0182x faster
   array-nonarray-polymorhpic-access                 25.6738+-2.9647           24.9973+-0.4445          might be 1.0271x faster
   array-prototype-every                             74.7607+-0.7317     !     77.0168+-1.3753        ! definitely 1.0302x slower
   array-prototype-forEach                           76.3755+-3.8228     ?     76.5848+-1.6686        ?
   array-prototype-map                               84.6031+-3.8424     ?     84.9257+-1.1804        ?
   array-prototype-reduce                            71.3008+-0.8740     !     72.7335+-0.4567        ! definitely 1.0201x slower
   array-prototype-reduceRight                       70.7880+-0.3378     !     72.3152+-0.7542        ! definitely 1.0216x slower
   array-prototype-some                              75.0168+-1.2033     ?     77.4734+-2.3301        ? might be 1.0327x slower
   array-splice-contiguous                           21.6472+-1.4235     ?     21.6954+-3.2630        ?
   array-with-double-add                              3.4468+-0.2582            3.4083+-0.0832          might be 1.0113x faster
   array-with-double-increment                        3.1373+-0.4050            3.1258+-0.1265        
   array-with-double-mul-add                          4.2200+-0.1570     ?      4.2841+-0.1567        ? might be 1.0152x slower
   array-with-double-sum                              3.1790+-0.0181     ?      3.2094+-0.0800        ?
   array-with-int32-add-sub                           6.0376+-0.3826            5.9330+-0.2281          might be 1.0176x faster
   array-with-int32-or-double-sum                     3.1977+-0.0380     ?      3.2883+-0.1684        ? might be 1.0283x slower
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     27.5721+-0.4786           27.1799+-0.2859          might be 1.0144x faster
   ArrayBuffer-DataView-alloc-long-lived             12.7885+-0.9658           12.4843+-0.3017          might be 1.0244x faster
   ArrayBuffer-Int32Array-byteOffset                  3.6060+-0.0626     ?      3.6370+-0.1378        ?
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     27.5753+-0.3262     ?     27.6735+-0.3342        ?
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     22.3538+-3.6202           20.5285+-0.8385          might be 1.0889x faster
   ArrayBuffer-Int8Array-alloc-long-lived            11.7630+-0.4432     ?     11.8922+-0.4388        ? might be 1.0110x slower
   ArrayBuffer-Int8Array-alloc                       10.2290+-0.6987           10.2125+-0.0908        
   asmjs_bool_bug                                     7.3741+-0.2386     ?      7.3948+-0.5272        ?
   assign-custom-setter-polymorphic                   2.5842+-0.2781     ?      2.5860+-0.0752        ?
   assign-custom-setter                               3.5677+-0.1675     ?      3.6045+-0.1705        ? might be 1.0103x slower
   basic-set                                          8.1844+-0.2188     ?      8.4503+-0.7564        ? might be 1.0325x slower
   big-int-mul                                        3.5646+-0.0882     ?      3.5755+-0.2538        ?
   boolean-test                                       2.8558+-0.0346     ?      2.8853+-0.0761        ? might be 1.0103x slower
   branch-fold                                        3.6555+-0.0953            3.6146+-0.0345          might be 1.0113x faster
   branch-on-string-as-boolean                       16.6915+-0.7732     ?     16.7361+-1.7111        ?
   by-val-generic                                     6.2684+-0.7254     ^      2.4961+-0.2687        ^ definitely 2.5113x faster
   call-spread-apply                                 27.1887+-0.4604           27.0333+-0.7023        
   call-spread-call                                  21.2281+-0.2446     ?     21.7821+-0.5512        ? might be 1.0261x slower
   captured-assignments                               0.4021+-0.0034     ?      0.4115+-0.0232        ? might be 1.0234x slower
   cast-int-to-double                                 5.1140+-0.0789     ?      5.2098+-0.2577        ? might be 1.0187x slower
   cell-argument                                      6.7245+-0.7767            6.3568+-0.4255          might be 1.0579x faster
   cfg-simplify                                       2.8438+-0.2415            2.7834+-0.0855          might be 1.0217x faster
   chain-getter-access                                8.2030+-0.2021     ?      8.2617+-0.3916        ?
   cmpeq-obj-to-obj-other                            11.7332+-0.8180     ?     12.2717+-0.7339        ? might be 1.0459x slower
   constant-test                                      4.8991+-0.1095            4.8477+-0.0431          might be 1.0106x faster
   create-lots-of-functions                           9.4425+-0.7893            9.3236+-0.5627          might be 1.0128x faster
   cse-new-array-buffer                               2.2452+-0.2537            2.1927+-0.1405          might be 1.0239x faster
   cse-new-array                                      2.3092+-0.2842            2.2518+-0.1467          might be 1.0255x faster
   DataView-custom-properties                        31.9301+-0.9217     ?     32.0884+-0.6309        ?
   delay-tear-off-arguments-strictmode               12.9837+-0.3987     ?     13.0328+-0.9882        ?
   deltablue-varargs                                148.5550+-3.7878     ?    148.5592+-1.1082        ?
   destructuring-arguments                          167.8102+-3.7216          165.8862+-1.8769          might be 1.0116x faster
   destructuring-parameters-overridden-by-function   
                                                      0.4476+-0.0664            0.4343+-0.0290          might be 1.0305x faster
   destructuring-swap                                 4.7032+-0.1038     ?      4.7423+-0.0462        ?
   direct-arguments-getbyval                          1.1734+-0.1909            1.1034+-0.0831          might be 1.0634x faster
   div-boolean-double                                 5.4445+-0.1707            5.3592+-0.0598          might be 1.0159x faster
   div-boolean                                        8.5214+-0.5778            8.4855+-0.2853        
   double-get-by-val-out-of-bounds                    4.0983+-0.2070     ?      4.2200+-0.0727        ? might be 1.0297x slower
   double-pollution-getbyval                          8.8740+-0.3789     ?      8.9913+-0.3688        ? might be 1.0132x slower
   double-pollution-putbyoffset                       3.6915+-0.1230     ?      3.7455+-0.0925        ? might be 1.0146x slower
   double-real-use                                   27.3335+-3.1459           24.5205+-0.9451          might be 1.1147x faster
   double-to-int32-typed-array-no-inline              2.0599+-0.1598     ?      2.0674+-0.1083        ?
   double-to-int32-typed-array                        1.7359+-0.0900     ?      1.8422+-0.1020        ? might be 1.0612x slower
   double-to-uint32-typed-array-no-inline             2.1698+-0.0972     ?      2.1833+-0.1366        ?
   double-to-uint32-typed-array                       1.8335+-0.0348            1.8116+-0.0837          might be 1.0121x faster
   elidable-new-object-dag                           33.7630+-0.4547     ?     33.8813+-0.7400        ?
   elidable-new-object-roflcopter                    32.9035+-0.4113     ?     33.5746+-1.4670        ? might be 1.0204x slower
   elidable-new-object-then-call                     31.2815+-0.7437     ?     32.1315+-1.6459        ? might be 1.0272x slower
   elidable-new-object-tree                          36.0837+-0.5270     ?     36.5898+-0.5270        ? might be 1.0140x slower
   empty-string-plus-int                              5.0132+-0.4494            4.9120+-0.1849          might be 1.0206x faster
   emscripten-cube2hash                              26.1191+-2.2572     ?     32.4125+-17.6311       ? might be 1.2410x slower
   exit-length-on-plain-object                       12.8331+-0.2757     ?     13.5498+-2.3257        ? might be 1.0559x slower
   external-arguments-getbyval                        1.1732+-0.0919            1.1390+-0.0269          might be 1.0300x faster
   external-arguments-putbyval                        2.2215+-0.1638            2.0906+-0.0551          might be 1.0626x faster
   fixed-typed-array-storage-var-index                1.1741+-0.0366            1.1584+-0.0949          might be 1.0135x faster
   fixed-typed-array-storage                          0.8331+-0.0151     ?      0.8456+-0.0588        ? might be 1.0149x slower
   Float32Array-matrix-mult                           3.9724+-0.2496     ?      4.2046+-0.6259        ? might be 1.0584x slower
   Float32Array-to-Float64Array-set                  46.4340+-1.8513           45.9855+-0.5095        
   Float64Array-alloc-long-lived                     57.8806+-0.5310     ?     59.2067+-2.7125        ? might be 1.0229x slower
   Float64Array-to-Int16Array-set                    57.3400+-1.1764     ?     57.5569+-2.9608        ?
   fold-double-to-int                                12.8478+-0.2789     ?     12.9927+-0.3998        ? might be 1.0113x slower
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     10.8593+-0.9260           10.4496+-0.9543          might be 1.0392x faster
   fold-get-by-id-to-multi-get-by-offset              9.1953+-0.6101            8.9050+-0.4934          might be 1.0326x faster
   fold-multi-get-by-offset-to-get-by-offset   
                                                      7.9889+-1.5941     ?      8.1481+-1.0196        ? might be 1.0199x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      7.6398+-1.4592     ?      8.2047+-1.4644        ? might be 1.0739x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      7.5921+-0.6624     ?      7.8015+-0.7334        ? might be 1.0276x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                      6.1060+-0.8363            5.7025+-2.1560          might be 1.0707x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                      8.3265+-0.7296     ?      8.8616+-0.8983        ? might be 1.0643x slower
   fold-put-by-id-to-multi-put-by-offset              8.8688+-0.6047     ?      9.0264+-0.5612        ? might be 1.0178x slower
   fold-put-by-val-with-string-to-multi-put-by-offset   
                                                     69.8406+-8.3187     ^      9.6357+-1.0856        ^ definitely 7.2481x faster
   fold-put-by-val-with-symbol-to-multi-put-by-offset   
                                                     67.9573+-1.2614     ^      9.2725+-0.9941        ^ definitely 7.3289x faster
   fold-put-structure                                 5.5053+-0.2245            5.3703+-1.0037          might be 1.0251x faster
   for-of-iterate-array-entries                      11.8885+-0.6022           11.6631+-0.2542          might be 1.0193x faster
   for-of-iterate-array-keys                          3.4797+-0.4778            3.3845+-0.1672          might be 1.0281x faster
   for-of-iterate-array-values                        3.4235+-0.2666            3.2964+-0.0745          might be 1.0385x faster
   fround                                            18.8268+-1.3292     ?     18.9299+-1.5049        ?
   ftl-library-inlining-dataview                     57.0625+-0.7389     ?     58.6517+-3.7356        ? might be 1.0279x slower
   ftl-library-inlining                             110.3751+-3.6948          107.0713+-0.8819          might be 1.0309x faster
   function-dot-apply                                 2.0096+-0.0544            1.9819+-0.1589          might be 1.0140x faster
   function-test                                      2.6882+-0.0911     ?      2.7485+-0.0601        ? might be 1.0225x slower
   function-with-eval                               105.1115+-1.9907     ?    108.6945+-7.2032        ? might be 1.0341x slower
   gcse-poly-get-less-obvious                        14.5170+-0.2764     ?     14.6887+-0.6267        ? might be 1.0118x slower
   gcse-poly-get                                     14.4799+-0.1592     ?     14.5538+-0.5983        ?
   gcse                                               3.8489+-0.0369            3.8278+-0.1016        
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.6028+-0.0603     ?      2.6510+-0.1233        ? might be 1.0185x slower
   get-by-id-bimorphic-check-structure-elimination   
                                                      5.9005+-0.3137            5.8845+-0.2495        
   get-by-id-chain-from-try-block                     5.5987+-0.2719            5.5679+-0.2395        
   get-by-id-check-structure-elimination              4.5008+-0.2586     ?      4.5802+-0.2081        ? might be 1.0176x slower
   get-by-id-proto-or-self                           15.1098+-1.9108           15.1002+-2.4520        
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      2.8992+-0.0423            2.8879+-0.0307        
   get-by-id-self-or-proto                           14.8160+-0.2843           14.6068+-0.5636          might be 1.0143x faster
   get-by-val-out-of-bounds                           3.9662+-0.0958            3.9138+-0.2395          might be 1.0134x faster
   get-by-val-with-string-bimorphic-check-structure-elimination-simple   
                                                      2.9312+-0.2184            2.8314+-0.0657          might be 1.0352x faster
   get-by-val-with-string-bimorphic-check-structure-elimination   
                                                      6.2715+-0.0856            6.1059+-0.1838          might be 1.0271x faster
   get-by-val-with-string-chain-from-try-block   
                                                      5.7194+-0.4913     ?      5.7660+-0.2722        ?
   get-by-val-with-string-check-structure-elimination   
                                                      5.2401+-0.2867     ?      5.2834+-0.2692        ?
   get-by-val-with-string-proto-or-self              14.4730+-0.9660     ?     15.9333+-2.0632        ? might be 1.1009x slower
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple   
                                                      3.2435+-0.1516     ?      3.2851+-0.1247        ? might be 1.0128x slower
   get-by-val-with-string-self-or-proto              15.3465+-0.7423           15.2483+-1.2232        
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple   
                                                      3.1494+-0.0215     ^      3.0704+-0.0202        ^ definitely 1.0257x faster
   get-by-val-with-symbol-bimorphic-check-structure-elimination   
                                                     12.4795+-0.1190     ?     12.6082+-0.5383        ? might be 1.0103x slower
   get-by-val-with-symbol-chain-from-try-block   
                                                      6.0428+-0.4681            5.7552+-0.1620          might be 1.0500x faster
   get-by-val-with-symbol-check-structure-elimination   
                                                     11.1862+-0.1103     ?     11.2457+-0.1554        ?
   get-by-val-with-symbol-proto-or-self              14.3878+-0.3968     ?     15.7057+-1.5625        ? might be 1.0916x slower
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple   
                                                      4.0758+-0.1681            3.9822+-0.1200          might be 1.0235x faster
   get-by-val-with-symbol-self-or-proto              15.0103+-0.4396     ?     15.4728+-2.1162        ? might be 1.0308x slower
   get_callee_monomorphic                             2.2325+-0.2578     ?      2.5499+-0.4474        ? might be 1.1422x slower
   get_callee_polymorphic                             3.4028+-0.2955            3.1222+-0.3155          might be 1.0899x faster
   getter-no-activation                               4.8585+-0.1482     ?      5.0676+-0.1189        ? might be 1.0430x slower
   getter-prototype                                   9.9545+-0.3941            9.7632+-0.1259          might be 1.0196x faster
   getter-richards                                  111.5101+-7.7128          109.7234+-11.8151         might be 1.0163x faster
   getter                                             5.4523+-0.5704     ?      5.6300+-0.3193        ? might be 1.0326x slower
   global-object-access-with-mutating-structure   
                                                      5.5941+-0.1928            5.4665+-0.0791          might be 1.0233x faster
   global-var-const-infer-fire-from-opt               0.9236+-0.1014            0.8497+-0.1439          might be 1.0870x faster
   global-var-const-infer                             0.8198+-0.2162            0.7594+-0.1267          might be 1.0796x faster
   HashMap-put-get-iterate-keys                      25.7578+-1.4465     ?     25.8965+-2.9974        ?
   HashMap-put-get-iterate                           26.8336+-2.6816           25.9932+-1.4584          might be 1.0323x faster
   HashMap-string-put-get-iterate                    24.7007+-0.5839           24.5601+-1.3033        
   hoist-make-rope                                    8.3106+-1.4499     ?      8.8516+-0.8678        ? might be 1.0651x slower
   hoist-poly-check-structure-effectful-loop   
                                                      4.3356+-0.3144            4.1443+-0.1073          might be 1.0462x faster
   hoist-poly-check-structure                         3.2967+-0.0220            3.2790+-0.0419        
   imul-double-only                                   6.7305+-0.5226            6.4955+-0.1644          might be 1.0362x faster
   imul-int-only                                      8.0777+-0.1375            7.9585+-0.4733          might be 1.0150x faster
   imul-mixed                                         7.0861+-0.5583            6.5967+-0.8987          might be 1.0742x faster
   in-four-cases                                     17.7265+-0.3689     ?     18.0688+-1.0787        ? might be 1.0193x slower
   in-one-case-false                                  9.3591+-0.2055            9.3472+-0.3952        
   in-one-case-true                                   9.3726+-0.1403     ?      9.6580+-0.6407        ? might be 1.0305x slower
   in-two-cases                                       9.7679+-0.5754     ?     10.0560+-0.8268        ? might be 1.0295x slower
   indexed-properties-in-objects                      2.8676+-0.0556            2.8490+-0.1347        
   infer-closure-const-then-mov-no-inline             3.1601+-0.3501            3.0872+-0.1413          might be 1.0236x faster
   infer-closure-const-then-mov                      17.1642+-0.6288     ?     17.2238+-0.7206        ?
   infer-closure-const-then-put-to-scope-no-inline   
                                                     11.9243+-0.7506           11.7864+-0.6306          might be 1.0117x faster
   infer-closure-const-then-put-to-scope             22.0120+-1.0148           21.9213+-0.9968        
   infer-closure-const-then-reenter-no-inline   
                                                     50.9547+-0.4195     ?     51.0400+-0.9705        ?
   infer-closure-const-then-reenter                  23.4171+-2.4238           22.7385+-1.8945          might be 1.0298x faster
   infer-constant-global-property                     3.4180+-0.0220     ?      3.5208+-0.1751        ? might be 1.0301x slower
   infer-constant-property                            2.6411+-0.0819     ?      2.6980+-0.2028        ? might be 1.0216x slower
   infer-one-time-closure-ten-vars                    8.8879+-0.7656            8.2870+-0.3480          might be 1.0725x faster
   infer-one-time-closure-two-vars                    8.2109+-0.8290     ?      8.2318+-0.2320        ?
   infer-one-time-closure                             7.9412+-0.1566            7.8170+-0.2550          might be 1.0159x faster
   infer-one-time-deep-closure                       12.9716+-1.1414     ?     13.3140+-1.3430        ? might be 1.0264x slower
   inline-arguments-access                            3.6853+-0.3814     ?      3.7426+-0.2307        ? might be 1.0155x slower
   inline-arguments-aliased-access                    3.8002+-0.3319            3.7708+-0.5180        
   inline-arguments-local-escape                      3.9166+-1.2548            3.6365+-0.0565          might be 1.0770x faster
   inline-get-scoped-var                              4.7989+-0.3730            4.6271+-0.1841          might be 1.0371x faster
   inlined-put-by-id-transition                      10.2325+-0.5806           10.0850+-1.0722          might be 1.0146x faster
   inlined-put-by-val-with-string-transition   
                                                    116.7754+-2.4339     ^     73.8770+-1.3856        ^ definitely 1.5807x faster
   inlined-put-by-val-with-symbol-transition   
                                                    117.3695+-5.2318     ^     73.1078+-3.7026        ^ definitely 1.6054x faster
   int-or-other-abs-then-get-by-val                   4.8240+-0.1962     ?      4.8371+-0.0296        ?
   int-or-other-abs-zero-then-get-by-val             16.4916+-1.5400           16.1529+-0.4335          might be 1.0210x faster
   int-or-other-add-then-get-by-val                   4.1135+-0.0731     ?      4.3105+-0.5752        ? might be 1.0479x slower
   int-or-other-add                                   5.0170+-0.4011     ?      5.0503+-0.1563        ?
   int-or-other-div-then-get-by-val                   3.9658+-0.4530            3.7502+-0.0436          might be 1.0575x faster
   int-or-other-max-then-get-by-val                   4.0077+-0.1418     ?      4.0280+-0.0392        ?
   int-or-other-min-then-get-by-val                   3.9775+-0.0696     ?      4.0277+-0.0495        ? might be 1.0126x slower
   int-or-other-mod-then-get-by-val                   3.5260+-0.0796     ?      3.5715+-0.1012        ? might be 1.0129x slower
   int-or-other-mul-then-get-by-val                   3.7001+-0.1977            3.5883+-0.0786          might be 1.0311x faster
   int-or-other-neg-then-get-by-val                   4.5601+-0.0357     ?      4.5957+-0.1938        ?
   int-or-other-neg-zero-then-get-by-val             16.2615+-0.4468     ?     16.3633+-0.3358        ?
   int-or-other-sub-then-get-by-val                   4.2277+-0.1296            4.1367+-0.1389          might be 1.0220x faster
   int-or-other-sub                                   3.5087+-0.1709            3.4546+-0.0296          might be 1.0157x faster
   int-overflow-local                                 4.3159+-0.0184     ?      4.3990+-0.2582        ? might be 1.0192x slower
   Int16Array-alloc-long-lived                       42.6980+-0.6805     ?     43.4661+-2.7291        ? might be 1.0180x slower
   Int16Array-bubble-sort-with-byteLength            17.9260+-0.4888           17.8195+-0.2841        
   Int16Array-bubble-sort                            17.7511+-0.3038           17.7039+-0.6157        
   Int16Array-load-int-mul                            1.4377+-0.0674     ?      1.4573+-0.1137        ? might be 1.0136x slower
   Int16Array-to-Int32Array-set                      44.2071+-2.3429           44.1066+-1.0505        
   Int32Array-alloc-large                            12.5785+-1.5008           12.2800+-0.5478          might be 1.0243x faster
   Int32Array-alloc-long-lived                       47.2896+-0.1587     ?     47.6088+-0.8994        ?
   Int32Array-alloc                                   2.7808+-0.2902     ?      3.1058+-0.5186        ? might be 1.1169x slower
   Int32Array-Int8Array-view-alloc                    6.5502+-0.6617            6.4050+-0.3096          might be 1.0227x faster
   int52-spill                                        4.7968+-0.3822     ?      4.8315+-0.5359        ?
   Int8Array-alloc-long-lived                        37.8353+-1.1782     ?     38.5478+-2.0139        ? might be 1.0188x slower
   Int8Array-load-with-byteLength                     3.4713+-0.1658     ?      3.5471+-0.1702        ? might be 1.0218x slower
   Int8Array-load                                     3.4377+-0.0952            3.4271+-0.0497        
   integer-divide                                    10.5970+-0.1915           10.4896+-0.0201          might be 1.0102x faster
   integer-modulo                                     1.6333+-0.0932     ?      1.6638+-0.0940        ? might be 1.0187x slower
   is-boolean-fold-tricky                             3.7549+-0.1465     ?      3.8073+-0.1057        ? might be 1.0139x slower
   is-boolean-fold                                    2.6329+-0.1655            2.6001+-0.0226          might be 1.0126x faster
   is-function-fold-tricky-internal-function   
                                                      9.8508+-0.0780     ?      9.9405+-0.2325        ?
   is-function-fold-tricky                            4.2671+-0.1643            4.2640+-0.1124        
   is-function-fold                                   2.6531+-0.0809     ?      2.6567+-0.0253        ?
   is-number-fold-tricky                              4.0046+-0.0080     ?      4.1213+-0.2342        ? might be 1.0291x slower
   is-number-fold                                     2.6912+-0.1877            2.6353+-0.0317          might be 1.0212x faster
   is-object-or-null-fold-functions                   2.6500+-0.0114            2.6355+-0.0144        
   is-object-or-null-fold-less-tricky                 4.1417+-0.1409            4.0935+-0.0407          might be 1.0118x faster
   is-object-or-null-fold-tricky                      5.3962+-0.2265            5.3470+-0.1937        
   is-object-or-null-fold                             2.6531+-0.0709     ?      2.6613+-0.0586        ?
   is-object-or-null-trickier-function                4.1988+-0.1661     ?      4.2360+-0.1100        ?
   is-object-or-null-trickier-internal-function   
                                                     10.6475+-0.4213     ?     10.9593+-0.4468        ? might be 1.0293x slower
   is-object-or-null-tricky-function                  4.1293+-0.0657     ?      4.4148+-0.7151        ? might be 1.0691x slower
   is-object-or-null-tricky-internal-function   
                                                      7.7068+-0.2938     ?      7.8894+-0.1648        ? might be 1.0237x slower
   is-string-fold-tricky                              4.1323+-0.2152            4.0641+-0.0571          might be 1.0168x faster
   is-string-fold                                     2.6721+-0.0869            2.6204+-0.0404          might be 1.0197x faster
   is-undefined-fold-tricky                           3.5257+-0.3867            3.4009+-0.1710          might be 1.0367x faster
   is-undefined-fold                                  2.6155+-0.0517     ?      2.6495+-0.1051        ? might be 1.0130x slower
   JSONP-negative-0                                   0.2363+-0.0142            0.2353+-0.0044        
   large-int-captured                                 3.9695+-0.4701     ?      4.1597+-0.1657        ? might be 1.0479x slower
   large-int-neg                                     14.5143+-0.6395     ?     14.6890+-1.2079        ? might be 1.0120x slower
   large-int                                         14.0668+-0.4977           13.8688+-0.2750          might be 1.0143x faster
   load-varargs-elimination                          22.1437+-2.7113           21.5668+-0.2185          might be 1.0268x faster
   logical-not-weird-types                            2.9127+-0.1013     ?      2.9623+-0.3469        ? might be 1.0170x slower
   logical-not                                        4.3538+-0.3106            4.3154+-0.1838        
   lots-of-fields                                     9.2769+-0.1711            9.2155+-0.4540        
   make-indexed-storage                               2.9728+-0.5521            2.7891+-0.2653          might be 1.0659x faster
   make-rope-cse                                      3.6066+-0.1953            3.5837+-0.1173        
   marsaglia-larger-ints                             35.0770+-4.1575           33.1194+-1.0845          might be 1.0591x faster
   marsaglia-osr-entry                               21.3315+-0.5130           21.2500+-1.0071        
   math-with-out-of-bounds-array-values              22.5037+-0.6514           22.1960+-0.8350          might be 1.0139x faster
   max-boolean                                        2.7035+-0.1005            2.6807+-0.0655        
   method-on-number                                  16.6373+-1.6709     ?     17.3488+-0.6858        ? might be 1.0428x slower
   min-boolean                                        2.6571+-0.0977            2.6252+-0.1030          might be 1.0121x faster
   minus-boolean-double                               3.1398+-0.1416     ?      3.2175+-0.2144        ? might be 1.0247x slower
   minus-boolean                                      2.3416+-0.1565     ?      2.3867+-0.0604        ? might be 1.0193x slower
   misc-strict-eq                                    31.3822+-0.8639     ?     32.4614+-5.1709        ? might be 1.0344x slower
   mod-boolean-double                                11.5531+-0.9867           11.3576+-0.2836          might be 1.0172x faster
   mod-boolean                                        8.7325+-0.5172            8.4885+-0.3454          might be 1.0287x faster
   mul-boolean-double                                 3.8400+-0.4311            3.6964+-0.2600          might be 1.0389x faster
   mul-boolean                                        2.8243+-0.1040     ?      2.8593+-0.1003        ? might be 1.0124x slower
   neg-boolean                                        3.1446+-0.0633     ?      3.1582+-0.1319        ?
   negative-zero-divide                               0.3218+-0.0410            0.3141+-0.0124          might be 1.0245x faster
   negative-zero-modulo                               0.3303+-0.0194     ?      0.3368+-0.0406        ? might be 1.0198x slower
   negative-zero-negate                               0.2988+-0.0209     ?      0.3047+-0.0207        ? might be 1.0198x slower
   nested-function-parsing                           44.9730+-2.9306           43.8319+-1.1484          might be 1.0260x faster
   new-array-buffer-dead                             88.8590+-1.7404     ?     89.0490+-1.0686        ?
   new-array-buffer-push                              5.8459+-0.1367     ?      6.1324+-0.5649        ? might be 1.0490x slower
   new-array-dead                                    13.4521+-1.2281     ?     14.3281+-1.7657        ? might be 1.0651x slower
   new-array-push                                     3.4800+-0.4174            3.3615+-0.1541          might be 1.0353x faster
   no-inline-constructor                             30.9245+-0.7907     ?     31.7120+-0.5224        ? might be 1.0255x slower
   number-test                                        2.8687+-0.1844     ?      3.0593+-0.6453        ? might be 1.0664x slower
   object-closure-call                                4.8638+-0.1018     ?      4.9463+-0.3351        ? might be 1.0170x slower
   object-get-own-property-symbols-on-large-array   
                                                      4.2043+-0.5557            3.7700+-0.2982          might be 1.1152x faster
   object-test                                        2.6872+-0.1957     ?      2.7119+-0.1968        ?
   obvious-sink-pathology-taken                     101.2792+-1.9549     ?    101.7896+-2.4232        ?
   obvious-sink-pathology                            95.6417+-1.2993     ?     96.0343+-1.2033        ?
   obviously-elidable-new-object                     28.9707+-1.2022           28.5012+-0.5308          might be 1.0165x faster
   plus-boolean-arith                                 2.4132+-0.1272     ?      2.4982+-0.3660        ? might be 1.0352x slower
   plus-boolean-double                                3.1204+-0.0889     ?      3.1349+-0.0757        ?
   plus-boolean                                       2.5878+-0.0498            2.5855+-0.0937        
   poly-chain-access-different-prototypes-simple   
                                                      3.4817+-0.4857            3.3397+-0.1470          might be 1.0425x faster
   poly-chain-access-different-prototypes             2.9945+-0.2889            2.8622+-0.0429          might be 1.0462x faster
   poly-chain-access-simpler                          3.2988+-0.1656     ?      3.3156+-0.0844        ?
   poly-chain-access                                  3.3250+-0.1037            3.3011+-0.1687        
   poly-stricteq                                     50.8918+-0.8355     ?     51.1739+-2.6064        ?
   polymorphic-array-call                             1.5161+-0.7965            1.3165+-0.4333          might be 1.1517x faster
   polymorphic-get-by-id                              2.8755+-0.0859            2.8725+-0.1487        
   polymorphic-put-by-id                             26.0439+-3.1919           25.4847+-0.9879          might be 1.0219x faster
   polymorphic-put-by-val-with-string               352.8145+-9.3221     ^     26.5709+-1.2105        ^ definitely 13.2782x faster
   polymorphic-put-by-val-with-symbol               383.7432+-13.0210    ^     26.8412+-0.7089        ^ definitely 14.2968x faster
   polymorphic-structure                             13.5208+-0.5404           13.2847+-0.1485          might be 1.0178x faster
   polyvariant-monomorphic-get-by-id                  7.1394+-0.3818            6.4504+-0.5165          might be 1.1068x faster
   proto-getter-access                                8.2629+-0.0766            8.1108+-0.2481          might be 1.0188x faster
   prototype-access-with-mutating-prototype           5.6054+-0.6033            5.5956+-0.6121        
   put-by-id-replace-and-transition                   7.5640+-0.1934     ?      8.2190+-1.9564        ? might be 1.0866x slower
   put-by-id-slightly-polymorphic                     2.6350+-0.0469     ?      2.6422+-0.0238        ?
   put-by-id                                          9.7262+-0.4133            9.6785+-0.1797        
   put-by-val-direct                                  0.3211+-0.0186            0.3175+-0.0119          might be 1.0113x faster
   put-by-val-large-index-blank-indexing-type   
                                                      5.4305+-0.3740     ?      5.4499+-0.2635        ?
   put-by-val-machine-int                             2.4521+-0.1370     ?      2.5720+-0.3364        ? might be 1.0489x slower
   put-by-val-with-string-replace-and-transition   
                                                     82.3823+-3.1861     ^     10.0022+-0.1648        ^ definitely 8.2364x faster
   put-by-val-with-string-slightly-polymorphic   
                                                     34.4847+-3.4010     ^      2.8877+-0.0404        ^ definitely 11.9420x faster
   put-by-val-with-string                            81.0162+-2.7781     ^     10.1260+-0.4184        ^ definitely 8.0008x faster
   put-by-val-with-symbol-replace-and-transition   
                                                     83.6551+-1.9612     ^     11.5535+-0.3602        ^ definitely 7.2407x faster
   put-by-val-with-symbol-slightly-polymorphic   
                                                     32.7045+-0.5333     ^      3.0827+-0.1037        ^ definitely 10.6090x faster
   put-by-val-with-symbol                            85.2364+-4.8715     ^     10.0714+-0.0405        ^ definitely 8.4632x faster
   rare-osr-exit-on-local                            14.8043+-0.1225           14.6819+-0.3379        
   register-pressure-from-osr                        17.4568+-1.8593           16.7767+-0.4667          might be 1.0405x faster
   repeat-multi-get-by-offset                        22.1917+-1.1454     ?     22.9281+-3.1813        ? might be 1.0332x slower
   setter-prototype                                   7.4170+-0.2628     ?      7.4594+-0.2758        ?
   setter                                             5.7578+-1.0798            5.4188+-0.9561          might be 1.0626x faster
   simple-activation-demo                            25.0657+-0.6325           24.8707+-0.6061        
   simple-getter-access                              10.5906+-0.5183     ?     10.7297+-0.1945        ? might be 1.0131x slower
   simple-poly-call-nested                            8.7751+-0.4777            8.6422+-0.3684          might be 1.0154x faster
   simple-poly-call                                   1.2280+-0.0619     ?      1.3392+-0.1803        ? might be 1.0906x slower
   sin-boolean                                       17.9934+-1.3795     ?     18.0703+-0.7855        ?
   singleton-scope                                   61.6225+-1.0441           61.3861+-0.5588        
   sink-function                                      9.2559+-0.6395     ?      9.7679+-0.3116        ? might be 1.0553x slower
   sink-huge-activation                              16.0507+-0.2070     ?     16.1722+-0.7151        ?
   sinkable-new-object-dag                           54.8903+-0.5898     ?     56.0470+-1.8273        ? might be 1.0211x slower
   sinkable-new-object-taken                         42.8010+-0.9374           42.6833+-0.8835        
   sinkable-new-object                               29.9671+-1.0126           29.5977+-1.3147          might be 1.0125x faster
   slow-array-profile-convergence                     2.5003+-0.3042            2.3951+-0.2621          might be 1.0439x faster
   slow-convergence                                   2.3795+-0.1281     ?      2.3818+-0.1473        ?
   slow-ternaries                                    17.8581+-0.7963     ?     17.9630+-0.4831        ?
   sorting-benchmark                                 17.4950+-0.5517     ?     18.9676+-2.9041        ? might be 1.0842x slower
   sparse-conditional                                 1.1497+-0.1221            1.1280+-0.0349          might be 1.0193x faster
   splice-to-remove                                  12.4685+-0.5337           12.4149+-0.3987        
   string-char-code-at                               14.6117+-0.4076     ?     14.8188+-0.3967        ? might be 1.0142x slower
   string-concat-object                               2.1628+-0.0573     ?      2.1902+-0.2725        ? might be 1.0127x slower
   string-concat-pair-object                          2.0870+-0.1590     ?      2.1306+-0.0502        ? might be 1.0209x slower
   string-concat-pair-simple                          9.2293+-0.4726            9.2056+-0.5249        
   string-concat-simple                               9.1588+-0.1390     ?      9.5969+-1.0112        ? might be 1.0478x slower
   string-cons-repeat                                 6.8117+-0.8631            6.7598+-0.3876        
   string-cons-tower                                  6.6593+-0.3479     ?      6.9427+-0.5752        ? might be 1.0426x slower
   string-equality                                   15.3721+-0.2111     ?     16.0795+-1.3242        ? might be 1.0460x slower
   string-get-by-val-big-char                         6.6597+-0.0834     ?      6.8694+-0.3734        ? might be 1.0315x slower
   string-get-by-val-out-of-bounds-insane             3.3699+-0.1818            3.3461+-0.1859        
   string-get-by-val-out-of-bounds                    4.1163+-0.1203            4.0862+-0.1727        
   string-get-by-val                                  2.8268+-0.0967            2.8076+-0.0271        
   string-hash                                        2.0060+-0.5613            1.8235+-0.0405          might be 1.1001x faster
   string-long-ident-equality                        12.7754+-0.2796           12.6277+-0.0607          might be 1.0117x faster
   string-out-of-bounds                              10.5608+-0.3894           10.5372+-0.5208        
   string-repeat-arith                               28.3465+-0.4683     ?     28.3585+-3.0672        ?
   string-sub                                        54.1116+-0.5113     ?     54.2802+-0.6925        ?
   string-test                                        2.7214+-0.0241     ?      2.7413+-0.0791        ?
   string-var-equality                               26.3129+-1.0060     ?     26.6157+-0.7633        ? might be 1.0115x slower
   structure-hoist-over-transitions                   2.3541+-0.0813     ?      2.4064+-0.1342        ? might be 1.0222x slower
   substring-concat-weird                            36.5792+-1.5353           36.4404+-0.3594        
   substring-concat                                  40.1810+-0.8617           39.2656+-0.8914          might be 1.0233x faster
   substring                                         46.3281+-2.9666           45.6537+-0.8225          might be 1.0148x faster
   switch-char-constant                               2.7122+-0.0387            2.6750+-0.1355          might be 1.0139x faster
   switch-char                                        6.0180+-1.1527     ?      6.7151+-0.8783        ? might be 1.1158x slower
   switch-constant                                    7.7316+-0.4554     ?      7.7471+-0.9145        ?
   switch-string-basic-big-var                       15.9236+-0.3200     ?     16.4187+-2.2855        ? might be 1.0311x slower
   switch-string-basic-big                           15.3672+-0.1546           15.3292+-0.4505        
   switch-string-basic-var                           13.4644+-0.1687     ?     13.5225+-0.7999        ?
   switch-string-basic                               13.7495+-1.5260           13.0030+-0.1442          might be 1.0574x faster
   switch-string-big-length-tower-var                18.5561+-1.1132           18.4691+-0.4692        
   switch-string-length-tower-var                    13.5162+-0.5104     ?     13.5606+-0.5612        ?
   switch-string-length-tower                        11.9597+-0.1803     ?     11.9985+-0.3331        ?
   switch-string-short                               11.9335+-0.2098     ?     12.0862+-0.2588        ? might be 1.0128x slower
   switch                                            12.3829+-0.4430           11.9535+-0.3162          might be 1.0359x faster
   tear-off-arguments-simple                          3.2495+-0.4838            3.1082+-0.0374          might be 1.0455x faster
   tear-off-arguments                                 3.9863+-0.2201     ?      4.3047+-0.6400        ? might be 1.0799x slower
   temporal-structure                                12.6881+-1.6001           12.4362+-0.2905          might be 1.0203x faster
   to-int32-boolean                                  13.5078+-0.3953           13.3716+-0.5710          might be 1.0102x faster
   try-catch-get-by-val-cloned-arguments             15.4977+-2.2536           14.6653+-0.1008          might be 1.0568x faster
   try-catch-get-by-val-direct-arguments              6.4634+-0.5740     ?      6.6069+-0.3359        ? might be 1.0222x slower
   try-catch-get-by-val-scoped-arguments              8.0182+-0.2541            7.7623+-0.5478          might be 1.0330x faster
   typed-array-get-set-by-val-profiling              28.5938+-1.7224           27.8309+-0.6035          might be 1.0274x faster
   undefined-property-access                        229.1655+-3.5638          228.0268+-0.2822        
   undefined-test                                     3.0630+-0.7535            2.8225+-0.0537          might be 1.0852x faster
   unprofiled-licm                                   14.4825+-0.8009           14.4584+-0.4307        
   varargs-call                                      13.7110+-0.2849     ?     14.2435+-1.1361        ? might be 1.0388x slower
   varargs-construct-inline                          22.4163+-0.3904           22.1120+-0.4696          might be 1.0138x faster
   varargs-construct                                 20.1051+-0.1352     ?     20.5405+-0.5869        ? might be 1.0217x slower
   varargs-inline                                     8.6788+-0.3512     ?      9.0713+-0.6238        ? might be 1.0452x slower
   varargs-strict-mode                                9.3748+-0.2786            9.2004+-0.1886          might be 1.0190x faster
   varargs                                            9.0817+-0.2209            9.0712+-0.0866        
   weird-inlining-const-prop                          2.0727+-0.2098     ?      2.0750+-0.1201        ?

   <geometric>                                        8.3689+-0.0325     ^      7.8379+-0.0320        ^ definitely 1.0678x faster

                                                          master                      ic                                        
Geomean of preferred means:
   <scaled-result>                                   26.0810+-0.0780     ^     25.8149+-0.1876        ^ definitely 1.0103x faster
Comment 5 Yusuke Suzuki 2015-08-07 17:00:59 PDT
Created attachment 258546 [details]
Patch

rebased the patch
Comment 6 Yusuke Suzuki 2015-08-07 18:44:26 PDT
Created attachment 258551 [details]
Patch
Comment 7 Yusuke Suzuki 2015-08-07 18:54:15 PDT
Leverage byValInfo->slowPathCount in these cached Id path.
It throws away put-by-val performance regressions.

There's no performance regression. And for synthetic ones, we can see significant performance improvements.
This optimization will encourage ES6 Symbols and computed properties, like

var object = { [key]: value }


Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, and JSRegress on Yusukes-MacBook-Pro (MacBookPro11,3).

VMs tested:
"master" at /Users/yusukesuzuki/development/WebKit/WebKitBuild/master-for-put-by-val/Release/jsc
"ic" at /Users/yusukesuzuki/development/WebKit/WebKitBuild/put-by-val/Release/jsc

Collected 4 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample measurements.
Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level
timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds.

                                                          master                      ic                                        
SunSpider:
   3d-cube                                            4.6110+-0.2586            4.5530+-0.1024          might be 1.0127x faster
   3d-morph                                           5.2496+-0.2538     ?      5.3008+-0.3525        ?
   3d-raytrace                                        5.3762+-0.4505            5.3630+-0.3617        
   access-binary-trees                                2.0767+-0.0825            2.0555+-0.1932          might be 1.0103x faster
   access-fannkuch                                    5.5440+-0.1497     ?      5.7629+-0.5321        ? might be 1.0395x slower
   access-nbody                                       2.5516+-0.1703     ?      2.6977+-0.4622        ? might be 1.0573x slower
   access-nsieve                                      3.1447+-0.1490            3.0239+-0.0680          might be 1.0399x faster
   bitops-3bit-bits-in-byte                           1.5470+-0.1111            1.4727+-0.0542          might be 1.0504x faster
   bitops-bits-in-byte                                3.3249+-0.0970            3.2793+-0.1802          might be 1.0139x faster
   bitops-bitwise-and                                 2.0297+-0.0428     ?      2.0673+-0.2376        ? might be 1.0185x slower
   bitops-nsieve-bits                                 2.9330+-0.0557     ?      2.9714+-0.1249        ? might be 1.0131x slower
   controlflow-recursive                              2.1381+-0.0708            2.0273+-0.0706          might be 1.0546x faster
   crypto-aes                                         3.9095+-0.1959     ?      4.0664+-0.6038        ? might be 1.0401x slower
   crypto-md5                                         2.7053+-0.2011            2.4968+-0.0936          might be 1.0835x faster
   crypto-sha1                                        2.4725+-0.3360     ?      2.5139+-0.0745        ? might be 1.0168x slower
   date-format-tofte                                  6.8247+-0.3900     ?      6.8788+-0.3018        ?
   date-format-xparb                                  4.6035+-0.2513            4.5864+-0.1254        
   math-cordic                                        2.8327+-0.0769            2.8243+-0.0724        
   math-partial-sums                                  5.3962+-0.3497            5.2763+-0.0872          might be 1.0227x faster
   math-spectral-norm                                 1.8260+-0.0786            1.8098+-0.0498        
   regexp-dna                                         6.4604+-0.0921            6.3359+-0.1521          might be 1.0197x faster
   string-base64                                      4.4004+-0.1654            4.2919+-0.0508          might be 1.0253x faster
   string-fasta                                       5.8106+-0.1160            5.7965+-0.2166        
   string-tagcloud                                    8.1837+-0.1425     ?      8.3093+-0.2099        ? might be 1.0153x slower
   string-unpack-code                                21.2210+-0.4956           20.7268+-0.9441          might be 1.0238x faster
   string-validate-input                              4.6554+-0.1421            4.5181+-0.0689          might be 1.0304x faster

   <arithmetic>                                       4.6857+-0.0444            4.6541+-0.0462          might be 1.0068x faster

                                                          master                      ic                                        
LongSpider:
   3d-cube                                          793.4137+-28.5571         779.8162+-1.8580          might be 1.0174x faster
   3d-morph                                        1536.8100+-9.9839         1530.7363+-7.9783        
   3d-raytrace                                      626.3002+-1.9250     ?    631.2438+-9.5650        ?
   access-binary-trees                              815.5217+-7.2649          807.2051+-11.7540         might be 1.0103x faster
   access-fannkuch                                  282.4557+-1.4984     ?    286.8719+-13.9092       ? might be 1.0156x slower
   access-nbody                                     517.7501+-1.4263     ?    523.4939+-16.7127       ? might be 1.0111x slower
   access-nsieve                                    371.0728+-25.7076         363.0216+-8.9741          might be 1.0222x faster
   bitops-3bit-bits-in-byte                          40.8128+-0.7342     ?     40.9683+-0.7450        ?
   bitops-bits-in-byte                               75.4478+-1.2256     ?     76.8477+-2.6333        ? might be 1.0186x slower
   bitops-nsieve-bits                               414.4860+-11.2225         414.2703+-17.0280       
   controlflow-recursive                            426.2650+-3.4753     ?    428.6634+-0.6052        ?
   crypto-aes                                       587.1618+-5.2531     ?    589.8830+-8.6121        ?
   crypto-md5                                       507.6640+-11.3110         503.1090+-16.8425       
   crypto-sha1                                      646.7902+-1.7814     ?    650.1407+-9.2547        ?
   date-format-tofte                                519.4733+-9.7951     ?    527.3456+-11.2524       ? might be 1.0152x slower
   date-format-xparb                                639.9252+-5.7083          638.1006+-12.0633       
   hash-map                                         156.7858+-8.1974          154.6903+-2.5655          might be 1.0135x faster
   math-cordic                                      500.7775+-6.2904     ?    502.6120+-9.2441        ?
   math-partial-sums                                487.6621+-40.7226         476.2833+-4.3613          might be 1.0239x faster
   math-spectral-norm                               566.4171+-8.2178          562.7213+-1.9696        
   string-base64                                    354.3502+-4.8115     ?    355.1102+-9.9737        ?
   string-fasta                                     368.4639+-2.4151          362.8258+-4.3029          might be 1.0155x faster
   string-tagcloud                                  181.3590+-3.6526     ?    183.0856+-4.8647        ?

   <geometric>                                      397.3372+-1.6767          396.9677+-2.9797          might be 1.0009x faster

                                                          master                      ic                                        
V8Spider:
   crypto                                            49.9987+-1.7307     ?     50.1380+-2.7564        ?
   deltablue                                         85.2797+-7.3987     ?     90.8008+-2.7051        ? might be 1.0647x slower
   earley-boyer                                      40.8061+-1.8009           40.2130+-0.6843          might be 1.0147x faster
   raytrace                                          30.4333+-1.6771           29.1196+-1.7421          might be 1.0451x faster
   regexp                                            63.2512+-1.2643           63.1186+-1.5820        
   richards                                          71.5418+-6.2622           69.8928+-2.0689          might be 1.0236x faster
   splay                                             34.2780+-1.3294     ?     35.3563+-2.2980        ? might be 1.0315x slower

   <geometric>                                       50.3366+-0.9743     ?     50.4352+-0.8964        ? might be 1.0020x slower

                                                          master                      ic                                        
Octane:
   encrypt                                           0.20844+-0.00190    ?     0.20947+-0.00227       ?
   decrypt                                           3.43818+-0.01470    ?     3.44745+-0.04044       ?
   deltablue                                x2       0.15833+-0.00227          0.15744+-0.00123       
   earley                                            0.28198+-0.00508    ?     0.28215+-0.00522       ?
   boyer                                             4.22686+-0.04528    ?     4.32261+-0.20904       ? might be 1.0227x slower
   navier-stokes                            x2       5.08685+-0.07102    ?     5.13387+-0.20480       ?
   raytrace                                 x2       1.05286+-0.06577    ?     1.06027+-0.09406       ?
   richards                                 x2       0.10141+-0.00151    ?     0.10367+-0.00283       ? might be 1.0223x slower
   splay                                    x2       0.35151+-0.00502          0.34610+-0.00394         might be 1.0156x faster
   regexp                                   x2      25.62353+-0.67615         25.27060+-0.57687         might be 1.0140x faster
   pdfjs                                    x2      38.38040+-0.21680    ?    38.45736+-0.60860       ?
   mandreel                                 x2      45.47939+-0.68815    ?    45.74709+-0.86948       ?
   gbemu                                    x2      34.86560+-0.29811    ?    35.70812+-1.23824       ? might be 1.0242x slower
   closure                                           0.57971+-0.00455          0.57731+-0.00686       
   jquery                                            7.35889+-0.03863    ?     7.36952+-0.00905       ?
   box2d                                    x2      10.31713+-0.12775         10.25901+-0.11313       
   zlib                                     x2     382.64616+-32.05315   ?   388.95809+-14.22319      ? might be 1.0165x slower
   typescript                               x2     674.90784+-31.23544       674.14502+-20.76814      

   <geometric>                                       5.73566+-0.01918    ?     5.75804+-0.04203       ? might be 1.0039x slower

                                                          master                      ic                                        
Kraken:
   ai-astar                                          240.491+-5.543            236.988+-11.448          might be 1.0148x faster
   audio-beat-detection                               59.313+-1.303      ?      59.672+-0.827         ?
   audio-dft                                         101.749+-9.906      ?     101.875+-4.321         ?
   audio-fft                                          35.552+-0.114      ?      36.307+-2.298         ? might be 1.0212x slower
   audio-oscillator                                   63.029+-2.677             62.376+-0.223           might be 1.0105x faster
   imaging-darkroom                                   60.529+-0.447      ?      60.642+-1.115         ?
   imaging-desaturate                                 56.381+-0.415             54.547+-4.319           might be 1.0336x faster
   imaging-gaussian-blur                              85.198+-1.559      ?      88.684+-9.203         ? might be 1.0409x slower
   json-parse-financial                               39.431+-0.831             39.300+-0.590         
   json-stringify-tinderbox                           23.853+-1.334             23.774+-0.782         
   stanford-crypto-aes                                42.543+-1.363             42.081+-1.296           might be 1.0110x faster
   stanford-crypto-ccm                                40.615+-19.059            34.907+-2.458           might be 1.1635x faster
   stanford-crypto-pbkdf2                             96.527+-1.298      ?     101.129+-6.774         ? might be 1.0477x slower
   stanford-crypto-sha256-iterative                   37.316+-0.307      ?      38.612+-4.004         ? might be 1.0347x slower

   <arithmetic>                                       70.180+-2.410             70.064+-2.083           might be 1.0017x faster

                                                          master                      ic                                        
JSRegress:
   abc-forward-loop-equal                            29.6027+-0.8427           29.4940+-0.9439        
   abc-postfix-backward-loop                         30.1005+-0.9838           29.9091+-0.7314        
   abc-simple-backward-loop                          29.0019+-0.3365     ?     29.4962+-1.0677        ? might be 1.0170x slower
   abc-simple-forward-loop                           29.4216+-0.7351     ?     29.5641+-0.9528        ?
   abc-skippy-loop                                   23.0599+-3.1730           21.5892+-0.7283          might be 1.0681x faster
   abs-boolean                                        2.4587+-0.0635            2.4528+-0.0091        
   adapt-to-double-divide                            16.5740+-1.2061           16.4300+-0.6275        
   aliased-arguments-getbyval                         1.1813+-0.1498            1.1111+-0.0380          might be 1.0632x faster
   allocate-big-object                                2.3939+-0.3973     ?      2.5241+-0.1344        ? might be 1.0544x slower
   arguments-named-and-reflective                    10.8132+-0.3844     ?     10.8554+-0.2082        ?
   arguments-out-of-bounds                            9.8085+-0.1019     ?     10.1405+-0.8127        ? might be 1.0338x slower
   arguments-strict-mode                              9.5280+-0.3350     ?      9.7950+-0.1545        ? might be 1.0280x slower
   arguments                                          8.3906+-0.4119     ?      8.5326+-0.3739        ? might be 1.0169x slower
   arity-mismatch-inlining                            1.0264+-0.6236            0.8348+-0.0796          might be 1.2295x faster
   array-access-polymorphic-structure                 6.0865+-0.5064            5.9287+-0.1238          might be 1.0266x faster
   array-nonarray-polymorhpic-access                 25.0085+-0.9059           24.8210+-0.9713        
   array-prototype-every                             76.7864+-0.2965     ^     76.3371+-0.1405        ^ definitely 1.0059x faster
   array-prototype-forEach                           75.5010+-0.3142           74.8917+-0.4673        
   array-prototype-map                               84.8572+-0.8004           83.8193+-2.1007          might be 1.0124x faster
   array-prototype-reduce                            72.4004+-0.6158           71.5593+-0.3378          might be 1.0118x faster
   array-prototype-reduceRight                       73.5502+-2.9887           71.4883+-0.9306          might be 1.0288x faster
   array-prototype-some                              78.3344+-4.8900           77.5605+-3.3940        
   array-splice-contiguous                           21.5842+-0.8441           20.5626+-0.8408          might be 1.0497x faster
   array-with-double-add                              3.4706+-0.1187            3.4651+-0.2213        
   array-with-double-increment                        3.1335+-0.1814            3.0751+-0.0160          might be 1.0190x faster
   array-with-double-mul-add                          4.2440+-0.2302     ?      4.2681+-0.1251        ?
   array-with-double-sum                              3.2264+-0.1355            3.1889+-0.0466          might be 1.0118x faster
   array-with-int32-add-sub                           5.7910+-0.2453     ?      5.9775+-0.1013        ? might be 1.0322x slower
   array-with-int32-or-double-sum                     3.2529+-0.1157            3.2495+-0.0297        
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     27.0646+-0.4098           27.0440+-0.7682        
   ArrayBuffer-DataView-alloc-long-lived             13.2420+-1.5049           12.8705+-0.6466          might be 1.0289x faster
   ArrayBuffer-Int32Array-byteOffset                  3.6187+-0.0668     ?      3.6617+-0.2640        ? might be 1.0119x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     27.4819+-0.5442     ?     27.5218+-0.0221        ?
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     20.7316+-0.8518           20.5146+-0.2727          might be 1.0106x faster
   ArrayBuffer-Int8Array-alloc-long-lived            13.5737+-1.9011           12.6281+-1.0971          might be 1.0749x faster
   ArrayBuffer-Int8Array-alloc                       10.2805+-0.5955     ?     10.9620+-1.2143        ? might be 1.0663x slower
   asmjs_bool_bug                                     7.2403+-0.1313     ?      7.4224+-0.5056        ? might be 1.0252x slower
   assign-custom-setter-polymorphic                   2.5180+-0.3374     ?      2.5905+-0.1916        ? might be 1.0288x slower
   assign-custom-setter                               3.5245+-0.2524            3.3347+-0.0322          might be 1.0569x faster
   basic-set                                          7.8433+-0.1915            7.8104+-0.2319        
   big-int-mul                                        3.4476+-0.0769     ?      3.4782+-0.1259        ?
   boolean-test                                       2.8865+-0.0945            2.8768+-0.0355        
   branch-fold                                        3.6255+-0.0383     ?      3.7035+-0.1792        ? might be 1.0215x slower
   branch-on-string-as-boolean                       16.9207+-0.2689           16.9190+-0.2813        
   by-val-generic                                     6.3497+-0.2360     ^      2.3013+-0.1321        ^ definitely 2.7592x faster
   call-spread-apply                                 26.5962+-0.5654           26.5776+-0.6805        
   call-spread-call                                  21.5210+-1.2144     ?     21.7841+-0.1006        ? might be 1.0122x slower
   captured-assignments                               0.4255+-0.0339            0.3942+-0.0164          might be 1.0793x faster
   cast-int-to-double                                 5.5365+-1.1834            5.3498+-0.3958          might be 1.0349x faster
   cell-argument                                      6.5525+-0.6078            6.5468+-0.6521        
   cfg-simplify                                       2.7952+-0.1278     ?      2.8091+-0.1133        ?
   chain-getter-access                                8.1425+-0.0754     ?      8.2031+-0.1956        ?
   cmpeq-obj-to-obj-other                            12.5519+-0.6915           11.7645+-2.7257          might be 1.0669x faster
   constant-test                                      4.8746+-0.1235     ?      4.9147+-0.1921        ?
   create-lots-of-functions                           9.5984+-1.3850            9.3627+-0.6145          might be 1.0252x faster
   cse-new-array-buffer                               2.1868+-0.1190            2.1472+-0.3188          might be 1.0184x faster
   cse-new-array                                      2.3494+-0.1701            2.2454+-0.2027          might be 1.0463x faster
   DataView-custom-properties                        32.3731+-0.8592           31.8456+-0.5045          might be 1.0166x faster
   delay-tear-off-arguments-strictmode               12.3215+-0.1808     ?     12.7900+-1.0473        ? might be 1.0380x slower
   deltablue-varargs                                149.1277+-1.1687     ?    151.8160+-4.7431        ? might be 1.0180x slower
   destructuring-arguments                          167.5294+-5.5606          164.7269+-0.9166          might be 1.0170x faster
   destructuring-parameters-overridden-by-function   
                                                      0.4771+-0.1141            0.4402+-0.0431          might be 1.0837x faster
   destructuring-swap                                 4.7137+-0.0357     ?      4.8137+-0.1040        ? might be 1.0212x slower
   direct-arguments-getbyval                          1.1108+-0.0345     ?      1.1958+-0.2109        ? might be 1.0765x slower
   div-boolean-double                                 5.4399+-0.1457            5.3850+-0.0544          might be 1.0102x faster
   div-boolean                                        8.3686+-0.2194     ?      8.4500+-0.2383        ?
   double-get-by-val-out-of-bounds                    4.2805+-0.4870            4.0977+-0.1230          might be 1.0446x faster
   double-pollution-getbyval                          8.7812+-0.0572     ?      8.8528+-0.2183        ?
   double-pollution-putbyoffset                       3.8027+-0.2276            3.6227+-0.1344          might be 1.0497x faster
   double-real-use                                   25.4166+-2.9800     ?     25.5195+-3.5607        ?
   double-to-int32-typed-array-no-inline              2.0755+-0.0479            2.0726+-0.0965        
   double-to-int32-typed-array                        1.7766+-0.0293     ?      1.7879+-0.1440        ?
   double-to-uint32-typed-array-no-inline             2.1171+-0.0260     ?      2.1200+-0.1020        ?
   double-to-uint32-typed-array                       1.8613+-0.0741     ?      1.9135+-0.1302        ? might be 1.0280x slower
   elidable-new-object-dag                           33.7334+-0.4795     ?     33.8478+-0.4943        ?
   elidable-new-object-roflcopter                    33.3395+-0.4312           33.2436+-0.5341        
   elidable-new-object-then-call                     31.7417+-0.5705           31.1071+-2.1042          might be 1.0204x faster
   elidable-new-object-tree                          37.8663+-1.1710           37.1163+-0.4281          might be 1.0202x faster
   empty-string-plus-int                              4.9412+-0.5871            4.8378+-0.1534          might be 1.0214x faster
   emscripten-cube2hash                              26.2280+-2.2907     ?     30.0833+-12.1144       ? might be 1.1470x slower
   exit-length-on-plain-object                       12.8395+-0.2411           12.5593+-0.4780          might be 1.0223x faster
   external-arguments-getbyval                        1.1553+-0.0231     ?      1.1630+-0.0769        ?
   external-arguments-putbyval                        2.2350+-0.2979            2.1983+-0.0576          might be 1.0167x faster
   fixed-typed-array-storage-var-index                1.1647+-0.0714            1.1492+-0.0802          might be 1.0134x faster
   fixed-typed-array-storage                          0.8732+-0.0339            0.8625+-0.0443          might be 1.0125x faster
   Float32Array-matrix-mult                           3.9515+-0.0880     ?      4.2126+-0.3339        ? might be 1.0661x slower
   Float32Array-to-Float64Array-set                  47.2201+-0.3312     ^     45.7769+-0.5825        ^ definitely 1.0315x faster
   Float64Array-alloc-long-lived                     58.0226+-0.6399     ?     58.2520+-0.2601        ?
   Float64Array-to-Int16Array-set                    56.4713+-0.4054     ?     57.5864+-1.2502        ? might be 1.0197x slower
   fold-double-to-int                                12.9063+-0.3385     ?     13.1258+-0.5133        ? might be 1.0170x slower
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     10.9520+-0.5436           10.3846+-0.9998          might be 1.0546x faster
   fold-get-by-id-to-multi-get-by-offset              9.3873+-0.6626            8.3970+-2.0448          might be 1.1179x faster
   fold-multi-get-by-offset-to-get-by-offset   
                                                      8.7089+-0.9243     ?      9.0277+-0.5512        ? might be 1.0366x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      7.5157+-0.4872     ?      8.0903+-1.5728        ? might be 1.0765x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      7.8795+-0.7333            7.5596+-0.9728          might be 1.0423x faster
   fold-multi-put-by-offset-to-put-by-offset   
                                                      5.1548+-1.8105            4.6422+-2.1106          might be 1.1104x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                      8.8376+-1.5614            8.3023+-0.5199          might be 1.0645x faster
   fold-put-by-id-to-multi-put-by-offset              8.6062+-0.7649     ?      8.9911+-0.9906        ? might be 1.0447x slower
   fold-put-by-val-with-string-to-multi-put-by-offset   
                                                     67.3643+-3.0387     ^      9.4009+-0.7271        ^ definitely 7.1657x faster
   fold-put-by-val-with-symbol-to-multi-put-by-offset   
                                                     66.8249+-1.6586     ^      9.3521+-0.6415        ^ definitely 7.1455x faster
   fold-put-structure                                 5.5856+-1.7418     ?      5.9985+-0.2625        ? might be 1.0739x slower
   for-of-iterate-array-entries                      11.7137+-0.2403           11.3141+-0.2820          might be 1.0353x faster
   for-of-iterate-array-keys                          3.7169+-0.8672            3.5993+-0.3172          might be 1.0327x faster
   for-of-iterate-array-values                        3.3723+-0.1677     ?      3.7827+-0.6664        ? might be 1.1217x slower
   fround                                            18.9152+-0.5867     ?     19.8879+-1.2328        ? might be 1.0514x slower
   ftl-library-inlining-dataview                     57.9307+-1.0538           57.1646+-0.2409          might be 1.0134x faster
   ftl-library-inlining                             109.2048+-0.3419     ?    110.4962+-1.0693        ? might be 1.0118x slower
   function-dot-apply                                 2.0403+-0.0505            1.9878+-0.0505          might be 1.0264x faster
   function-test                                      2.7062+-0.0547     ?      2.7675+-0.1178        ? might be 1.0226x slower
   function-with-eval                               103.8721+-1.2978     ?    105.4785+-0.3958        ? might be 1.0155x slower
   gcse-poly-get-less-obvious                        14.5305+-0.6317           14.5255+-0.4147        
   gcse-poly-get                                     16.4726+-0.3777           16.4145+-0.7760        
   gcse                                               3.8152+-0.0469     ?      3.9211+-0.3729        ? might be 1.0278x slower
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.6031+-0.0393     ?      2.6050+-0.0592        ?
   get-by-id-bimorphic-check-structure-elimination   
                                                      6.0638+-0.6275     ?      6.2859+-1.0627        ? might be 1.0366x slower
   get-by-id-chain-from-try-block                     5.4541+-0.1324     ?      5.5377+-0.2504        ? might be 1.0153x slower
   get-by-id-check-structure-elimination              4.6000+-0.2907            4.5267+-0.1308          might be 1.0162x faster
   get-by-id-proto-or-self                           14.8049+-1.8851     ?     15.8771+-2.8208        ? might be 1.0724x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      2.8961+-0.1085            2.8665+-0.0331          might be 1.0103x faster
   get-by-id-self-or-proto                           14.4600+-0.5328     ?     15.7133+-1.8987        ? might be 1.0867x slower
   get-by-val-out-of-bounds                           4.2115+-0.5745            4.1115+-0.2703          might be 1.0243x faster
   get-by-val-with-string-bimorphic-check-structure-elimination-simple   
                                                      2.8085+-0.0521            2.7894+-0.0411        
   get-by-val-with-string-bimorphic-check-structure-elimination   
                                                      6.5964+-1.4926            6.2104+-0.2093          might be 1.0622x faster
   get-by-val-with-string-chain-from-try-block   
                                                      6.3497+-1.1129            5.9166+-0.3515          might be 1.0732x faster
   get-by-val-with-string-check-structure-elimination   
                                                      5.1848+-0.1764            5.1080+-0.0954          might be 1.0150x faster
   get-by-val-with-string-proto-or-self              14.7969+-0.4005     ?     15.5211+-2.1642        ? might be 1.0489x slower
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple   
                                                      3.1897+-0.0178     ?      3.2040+-0.0896        ?
   get-by-val-with-string-self-or-proto              14.6060+-0.2735     ?     15.3127+-2.9933        ? might be 1.0484x slower
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple   
                                                      3.0743+-0.2133            3.0740+-0.0579        
   get-by-val-with-symbol-bimorphic-check-structure-elimination   
                                                     12.5497+-0.4306     ?     12.5562+-0.2078        ?
   get-by-val-with-symbol-chain-from-try-block   
                                                      5.7888+-0.3170     ?      5.7945+-0.3163        ?
   get-by-val-with-symbol-check-structure-elimination   
                                                     11.2458+-0.1100     ?     11.2637+-0.2185        ?
   get-by-val-with-symbol-proto-or-self              14.9417+-0.9737           14.8297+-0.3053        
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple   
                                                      4.0136+-0.3179            3.9988+-0.2111        
   get-by-val-with-symbol-self-or-proto              15.3256+-2.2573     ?     15.5142+-2.3386        ? might be 1.0123x slower
   get_callee_monomorphic                             2.3480+-0.2747            2.2870+-0.2013          might be 1.0267x faster
   get_callee_polymorphic                             3.2233+-0.0577     ?      3.5060+-0.5314        ? might be 1.0877x slower
   getter-no-activation                               4.9577+-0.3610     ?      4.9637+-0.3111        ?
   getter-prototype                                   9.8403+-0.1802     ?      9.9677+-0.4027        ? might be 1.0129x slower
   getter-richards                                  114.8677+-10.1534         113.5707+-11.8297         might be 1.0114x faster
   getter                                             5.7976+-0.3218            5.6006+-0.9122          might be 1.0352x faster
   global-object-access-with-mutating-structure   
                                                      5.5773+-0.1113            5.5562+-0.1018        
   global-var-const-infer-fire-from-opt               0.9005+-0.1881            0.8447+-0.0540          might be 1.0660x faster
   global-var-const-infer                             0.6877+-0.0586     ?      0.7439+-0.0520        ? might be 1.0817x slower
   HashMap-put-get-iterate-keys                      25.9265+-3.1180     ?     27.1320+-3.7075        ? might be 1.0465x slower
   HashMap-put-get-iterate                           26.1425+-1.9203           25.9260+-2.5323        
   HashMap-string-put-get-iterate                    24.1339+-0.5905     ?     25.0225+-1.3449        ? might be 1.0368x slower
   hoist-make-rope                                    8.7113+-1.1605     ?      9.0999+-0.9124        ? might be 1.0446x slower
   hoist-poly-check-structure-effectful-loop   
                                                      4.1611+-0.2979            4.1285+-0.1275        
   hoist-poly-check-structure                         3.4672+-0.5058            3.3218+-0.1095          might be 1.0438x faster
   imul-double-only                                   6.5516+-0.1444     ?      6.9959+-0.5197        ? might be 1.0678x slower
   imul-int-only                                      8.0688+-0.3728            8.0450+-0.6080        
   imul-mixed                                         6.8715+-0.6499            6.7954+-0.1998          might be 1.0112x faster
   in-four-cases                                     17.6362+-0.2252     ?     17.9702+-0.6334        ? might be 1.0189x slower
   in-one-case-false                                  9.4830+-0.1609     ?      9.5490+-0.2518        ?
   in-one-case-true                                   9.7847+-0.8095            9.7187+-0.4157        
   in-two-cases                                      10.5125+-1.3344            9.9337+-0.4063          might be 1.0583x faster
   indexed-properties-in-objects                      2.8282+-0.0528     ?      2.8836+-0.1007        ? might be 1.0196x slower
   infer-closure-const-then-mov-no-inline             3.0240+-0.0379     ?      3.0517+-0.0299        ?
   infer-closure-const-then-mov                      17.7538+-0.7280           17.3597+-1.4026          might be 1.0227x faster
   infer-closure-const-then-put-to-scope-no-inline   
                                                     11.2629+-0.5173           11.2134+-0.5000        
   infer-closure-const-then-put-to-scope             22.4878+-0.8617           21.4604+-0.8726          might be 1.0479x faster
   infer-closure-const-then-reenter-no-inline   
                                                     50.5512+-0.2501     ?     51.3043+-3.1133        ? might be 1.0149x slower
   infer-closure-const-then-reenter                  23.1052+-3.3069     ?     23.3792+-3.3867        ? might be 1.0119x slower
   infer-constant-global-property                     3.4670+-0.1472            3.4232+-0.0467          might be 1.0128x faster
   infer-constant-property                            2.6425+-0.0747     ?      2.6732+-0.1336        ? might be 1.0116x slower
   infer-one-time-closure-ten-vars                    8.6277+-0.5838            8.4818+-0.6779          might be 1.0172x faster
   infer-one-time-closure-two-vars                    8.2723+-0.4036            8.0453+-0.2802          might be 1.0282x faster
   infer-one-time-closure                             8.0640+-0.1567     ?      8.0855+-0.2236        ?
   infer-one-time-deep-closure                       13.1748+-0.7058           13.0330+-1.0551          might be 1.0109x faster
   inline-arguments-access                            3.7421+-0.4543            3.6223+-0.1667          might be 1.0331x faster
   inline-arguments-aliased-access                    3.6545+-0.2181            3.6235+-0.2389        
   inline-arguments-local-escape                      4.0335+-0.7115            3.8375+-0.5888          might be 1.0511x faster
   inline-get-scoped-var                              4.9543+-0.5506            4.6768+-0.0864          might be 1.0593x faster
   inlined-put-by-id-transition                      11.1263+-1.0189           10.5570+-1.4713          might be 1.0539x faster
   inlined-put-by-val-with-string-transition   
                                                    113.3862+-1.4036     ^     73.3654+-1.6418        ^ definitely 1.5455x faster
   inlined-put-by-val-with-symbol-transition   
                                                    116.1099+-1.8085     ^     72.7617+-1.1073        ^ definitely 1.5958x faster
   int-or-other-abs-then-get-by-val                   4.8110+-0.0764     ?      4.9390+-0.3984        ? might be 1.0266x slower
   int-or-other-abs-zero-then-get-by-val             18.0853+-5.8032           16.3715+-1.1820          might be 1.1047x faster
   int-or-other-add-then-get-by-val                   4.2315+-0.2771            4.1371+-0.2450          might be 1.0228x faster
   int-or-other-add                                   4.9647+-0.1534     ?      4.9847+-0.2172        ?
   int-or-other-div-then-get-by-val                   3.7111+-0.0730     ?      3.8430+-0.3513        ? might be 1.0356x slower
   int-or-other-max-then-get-by-val                   4.0529+-0.2012            4.0245+-0.1486        
   int-or-other-min-then-get-by-val                   4.1238+-0.2244     ?      4.1412+-0.2652        ?
   int-or-other-mod-then-get-by-val                   3.6034+-0.5050     ?      3.6573+-0.2111        ? might be 1.0150x slower
   int-or-other-mul-then-get-by-val                   3.7545+-0.1828            3.6014+-0.1657          might be 1.0425x faster
   int-or-other-neg-then-get-by-val                   4.4993+-0.0452     ?      4.6274+-0.1583        ? might be 1.0285x slower
   int-or-other-neg-zero-then-get-by-val             16.1445+-0.1329     ?     16.2324+-0.1310        ?
   int-or-other-sub-then-get-by-val                   4.1742+-0.1669            4.0835+-0.1195          might be 1.0222x faster
   int-or-other-sub                                   3.4584+-0.1815            3.4049+-0.0282          might be 1.0157x faster
   int-overflow-local                                 4.3369+-0.2684     ?      4.3532+-0.1598        ?
   Int16Array-alloc-long-lived                       42.0009+-0.8206     ?     42.4072+-1.1132        ?
   Int16Array-bubble-sort-with-byteLength            17.9250+-0.5501     ?     18.1835+-1.0359        ? might be 1.0144x slower
   Int16Array-bubble-sort                            18.0875+-0.6791           18.0641+-0.5452        
   Int16Array-load-int-mul                            1.4167+-0.0171     ?      1.4268+-0.0143        ?
   Int16Array-to-Int32Array-set                      43.5646+-0.7894     ?     43.7563+-0.1871        ?
   Int32Array-alloc-large                            12.2767+-0.2897           12.1706+-0.4123        
   Int32Array-alloc-long-lived                       47.6408+-1.3253     ?     47.8192+-0.9320        ?
   Int32Array-alloc                                   2.7613+-0.2504     ?      2.8663+-0.3608        ? might be 1.0380x slower
   Int32Array-Int8Array-view-alloc                    6.5758+-0.8034            6.2656+-0.1734          might be 1.0495x faster
   int52-spill                                        4.5895+-0.0761     ?      4.7632+-0.5120        ? might be 1.0378x slower
   Int8Array-alloc-long-lived                        37.9097+-1.6570     ?     38.1652+-1.7913        ?
   Int8Array-load-with-byteLength                     3.5231+-0.1843            3.4588+-0.1262          might be 1.0186x faster
   Int8Array-load                                     3.4854+-0.2354            3.4274+-0.1154          might be 1.0169x faster
   integer-divide                                    10.7545+-0.4604           10.5811+-0.1928          might be 1.0164x faster
   integer-modulo                                     1.6625+-0.1352            1.6620+-0.0820        
   is-boolean-fold-tricky                             3.8705+-0.2600            3.7728+-0.0605          might be 1.0259x faster
   is-boolean-fold                                    2.6549+-0.1121            2.6466+-0.0526        
   is-function-fold-tricky-internal-function   
                                                     10.4236+-0.4810           10.2070+-0.4766          might be 1.0212x faster
   is-function-fold-tricky                            4.2142+-0.2513     ?      4.2355+-0.1608        ?
   is-function-fold                                   2.6730+-0.0298            2.6389+-0.0449          might be 1.0129x faster
   is-number-fold-tricky                              4.0383+-0.0972     ?      4.2274+-0.3982        ? might be 1.0468x slower
   is-number-fold                                     2.6166+-0.0221     ?      2.6320+-0.0283        ?
   is-object-or-null-fold-functions                   2.6602+-0.0361     ?      2.7557+-0.1277        ? might be 1.0359x slower
   is-object-or-null-fold-less-tricky                 4.1884+-0.2149            4.1195+-0.0787          might be 1.0167x faster
   is-object-or-null-fold-tricky                      5.3125+-0.3828     ?      5.3710+-0.2273        ? might be 1.0110x slower
   is-object-or-null-fold                             2.7052+-0.1323            2.6432+-0.0217          might be 1.0234x faster
   is-object-or-null-trickier-function                4.2444+-0.1916            4.1558+-0.1136          might be 1.0213x faster
   is-object-or-null-trickier-internal-function   
                                                     10.7703+-0.1671           10.4895+-0.2393          might be 1.0268x faster
   is-object-or-null-tricky-function                  4.1735+-0.1947     ?      4.1779+-0.2423        ?
   is-object-or-null-tricky-internal-function   
                                                      8.1657+-0.6859            7.8463+-0.1177          might be 1.0407x faster
   is-string-fold-tricky                              4.1450+-0.2770            4.1444+-0.1397        
   is-string-fold                                     2.7498+-0.3033            2.6587+-0.0721          might be 1.0343x faster
   is-undefined-fold-tricky                           3.5466+-0.6788            3.3407+-0.1377          might be 1.0616x faster
   is-undefined-fold                                  2.7822+-0.4768            2.7507+-0.2112          might be 1.0114x faster
   JSONP-negative-0                                   0.2421+-0.0208            0.2359+-0.0080          might be 1.0261x faster
   large-int-captured                                 3.9287+-0.0896            3.8875+-0.2568          might be 1.0106x faster
   large-int-neg                                     15.0695+-0.8174           14.3917+-0.5343          might be 1.0471x faster
   large-int                                         13.8679+-1.0574           13.8184+-0.6922        
   load-varargs-elimination                          21.3115+-0.7325     ?     21.6716+-1.2830        ? might be 1.0169x slower
   logical-not-weird-types                            2.8860+-0.0482     ?      2.9739+-0.1057        ? might be 1.0304x slower
   logical-not                                        4.4067+-0.4597            4.3975+-0.2587        
   lots-of-fields                                     9.7744+-0.7337            9.3702+-0.2458          might be 1.0431x faster
   make-indexed-storage                               2.7749+-0.2513     ?      2.8377+-0.1723        ? might be 1.0226x slower
   make-rope-cse                                      3.6221+-0.3308     ?      3.6872+-0.4260        ? might be 1.0180x slower
   marsaglia-larger-ints                             32.8582+-1.4857           32.8297+-0.8434        
   marsaglia-osr-entry                               21.0968+-0.5994           21.0175+-0.5314        
   math-with-out-of-bounds-array-values              22.3522+-0.3272           22.1957+-1.2707        
   max-boolean                                        2.6750+-0.0870     ?      2.7963+-0.1585        ? might be 1.0453x slower
   method-on-number                                  16.9793+-0.8133     ?     17.6854+-2.4706        ? might be 1.0416x slower
   min-boolean                                        2.7689+-0.5062            2.7238+-0.1011          might be 1.0165x faster
   minus-boolean-double                               3.0845+-0.0150     ?      3.2867+-0.4091        ? might be 1.0656x slower
   minus-boolean                                      2.3653+-0.0720     ?      2.3893+-0.1667        ? might be 1.0101x slower
   misc-strict-eq                                    31.0974+-0.9296     ?     32.0834+-2.0100        ? might be 1.0317x slower
   mod-boolean-double                                11.2999+-0.1217     ?     11.3871+-0.3012        ?
   mod-boolean                                        8.4781+-0.1938     ?      8.6068+-0.6478        ? might be 1.0152x slower
   mul-boolean-double                                 3.6824+-0.0288            3.6316+-0.1026          might be 1.0140x faster
   mul-boolean                                        2.8253+-0.0382            2.8154+-0.0597        
   neg-boolean                                        3.1895+-0.1613            3.1228+-0.0564          might be 1.0213x faster
   negative-zero-divide                               0.3293+-0.0330            0.3228+-0.0396          might be 1.0200x faster
   negative-zero-modulo                               0.3110+-0.0048     ?      0.3219+-0.0159        ? might be 1.0351x slower
   negative-zero-negate                               0.2980+-0.0151            0.2936+-0.0057          might be 1.0148x faster
   nested-function-parsing                           44.6381+-2.4254     ?     45.2202+-1.6092        ? might be 1.0130x slower
   new-array-buffer-dead                             89.3569+-1.5199           88.4921+-1.0186        
   new-array-buffer-push                              6.1260+-0.6262            6.0811+-0.5831        
   new-array-dead                                    14.0870+-1.3740     ?     14.1985+-1.2770        ?
   new-array-push                                     3.6223+-0.4650            3.5285+-0.3420          might be 1.0266x faster
   no-inline-constructor                             31.1506+-1.0236     ?     31.3271+-0.9717        ?
   number-test                                        2.9226+-0.1579            2.9020+-0.0461        
   object-closure-call                                4.9434+-0.0558     ?      5.0468+-0.2696        ? might be 1.0209x slower
   object-get-own-property-symbols-on-large-array   
                                                      4.0510+-0.3939            4.0193+-0.6355        
   object-test                                        2.6308+-0.0982     ?      2.7098+-0.0940        ? might be 1.0300x slower
   obvious-sink-pathology-taken                     100.2952+-1.0604     ?    100.3145+-1.7063        ?
   obvious-sink-pathology                            95.2581+-2.2774     ?     95.7946+-1.9824        ?
   obviously-elidable-new-object                     28.7877+-0.8610     ?     29.0135+-0.4509        ?
   plus-boolean-arith                                 2.3928+-0.0369     ?      2.4257+-0.1482        ? might be 1.0138x slower
   plus-boolean-double                                3.1740+-0.1786            3.1130+-0.0531          might be 1.0196x faster
   plus-boolean                                       2.5600+-0.1148     ?      2.5635+-0.0566        ?
   poly-chain-access-different-prototypes-simple   
                                                      3.3170+-0.2063     ?      3.3499+-0.3353        ?
   poly-chain-access-different-prototypes             2.8423+-0.0118     ?      2.8576+-0.0717        ?
   poly-chain-access-simpler                          3.2687+-0.1203     ?      3.3287+-0.1828        ? might be 1.0184x slower
   poly-chain-access                                  3.3256+-0.0767     ?      3.3311+-0.2120        ?
   poly-stricteq                                     50.2608+-0.3420     ?     51.0299+-0.9434        ? might be 1.0153x slower
   polymorphic-array-call                             1.2607+-0.0807     ?      1.3193+-0.1890        ? might be 1.0465x slower
   polymorphic-get-by-id                              2.8309+-0.0692     ?      2.8414+-0.0320        ?
   polymorphic-put-by-id                             26.3010+-1.7205           26.1827+-0.8560        
   polymorphic-put-by-val-with-string               347.0945+-2.7703     ^     26.1200+-0.8491        ^ definitely 13.2885x faster
   polymorphic-put-by-val-with-symbol               372.2051+-3.0216     ^     26.6349+-1.3042        ^ definitely 13.9743x faster
   polymorphic-structure                             13.7191+-0.5529           13.2135+-0.3319          might be 1.0383x faster
   polyvariant-monomorphic-get-by-id                  6.3325+-0.5065     ?      6.7582+-1.4725        ? might be 1.0672x slower
   proto-getter-access                                8.1990+-0.0577     ?      8.2671+-0.3011        ?
   prototype-access-with-mutating-prototype           5.4700+-0.2801     ?      5.6260+-0.3016        ? might be 1.0285x slower
   put-by-id-replace-and-transition                   7.6046+-0.6959            7.5691+-0.5006        
   put-by-id-slightly-polymorphic                     2.6623+-0.0640     ?      2.7487+-0.1513        ? might be 1.0325x slower
   put-by-id                                          9.7677+-0.5993            9.5922+-0.3781          might be 1.0183x faster
   put-by-val-direct                                  0.3233+-0.0106            0.3223+-0.0059        
   put-by-val-large-index-blank-indexing-type   
                                                      5.3585+-0.4454     ?      5.3826+-0.2138        ?
   put-by-val-machine-int                             2.4592+-0.3946            2.4158+-0.2271          might be 1.0180x faster
   put-by-val-with-string-replace-and-transition   
                                                     82.1268+-0.6568     ^      9.8768+-0.1012        ^ definitely 8.3151x faster
   put-by-val-with-string-slightly-polymorphic   
                                                     33.9094+-1.3237     ^      2.9073+-0.0732        ^ definitely 11.6633x faster
   put-by-val-with-string                            81.8883+-2.7360     ^     10.4738+-1.1512        ^ definitely 7.8184x faster
   put-by-val-with-symbol-replace-and-transition   
                                                     84.0939+-2.0663     ^     11.4930+-0.2402        ^ definitely 7.3169x faster
   put-by-val-with-symbol-slightly-polymorphic   
                                                     33.0390+-0.9403     ^      3.0850+-0.0368        ^ definitely 10.7095x faster
   put-by-val-with-symbol                            82.5089+-1.9175     ^     10.3378+-0.7775        ^ definitely 7.9813x faster
   rare-osr-exit-on-local                            14.6685+-0.1695           14.4926+-0.3668          might be 1.0121x faster
   register-pressure-from-osr                        16.8158+-0.7339           16.5345+-0.0654          might be 1.0170x faster
   repeat-multi-get-by-offset                        22.0790+-0.4222     ?     22.3140+-0.9117        ? might be 1.0106x slower
   setter-prototype                                   7.4984+-0.0985            7.4271+-0.2781        
   setter                                             5.6747+-0.4469            5.6543+-0.9037        
   simple-activation-demo                            25.0185+-0.9079           24.5759+-0.4718          might be 1.0180x faster
   simple-getter-access                              10.5988+-0.3795           10.5464+-0.7052        
   simple-poly-call-nested                            8.8995+-0.9170     ?      9.0424+-0.6458        ? might be 1.0161x slower
   simple-poly-call                                   1.2449+-0.0295     ?      1.2553+-0.0235        ?
   sin-boolean                                       17.7567+-1.1361     ?     18.2839+-1.3364        ? might be 1.0297x slower
   singleton-scope                                   62.0372+-3.3555           61.0024+-0.0955          might be 1.0170x faster
   sink-function                                      9.3923+-1.3323            9.1417+-1.1722          might be 1.0274x faster
   sink-huge-activation                              16.2344+-1.4302     ?     16.8748+-0.8064        ? might be 1.0394x slower
   sinkable-new-object-dag                           56.4569+-2.3289     ?     56.7988+-2.6039        ?
   sinkable-new-object-taken                         42.8121+-0.7554     ?     43.1985+-1.0962        ?
   sinkable-new-object                               29.5342+-0.6030     ?     29.5790+-1.2025        ?
   slow-array-profile-convergence                     2.6356+-0.1668     ?      2.6638+-0.2151        ? might be 1.0107x slower
   slow-convergence                                   2.3696+-0.0481     ?      2.3895+-0.0395        ?
   slow-ternaries                                    18.4711+-0.7682           17.7951+-0.4864          might be 1.0380x faster
   sorting-benchmark                                 18.3444+-1.2466           17.4111+-0.8316          might be 1.0536x faster
   sparse-conditional                                 1.1342+-0.0849     ?      1.1506+-0.0581        ? might be 1.0145x slower
   splice-to-remove                                  12.7028+-0.1211     ?     13.0920+-1.6156        ? might be 1.0306x slower
   string-char-code-at                               14.4113+-0.3250     ?     14.8785+-1.1738        ? might be 1.0324x slower
   string-concat-object                               2.1118+-0.2502     ?      2.1458+-0.1096        ? might be 1.0161x slower
   string-concat-pair-object                          2.1250+-0.1471            2.1235+-0.0920        
   string-concat-pair-simple                          9.1883+-0.2785     ?      9.5192+-1.2150        ? might be 1.0360x slower
   string-concat-simple                               9.2237+-0.3577     ?      9.5431+-0.7862        ? might be 1.0346x slower
   string-cons-repeat                                 6.6276+-0.2320     ?      6.8430+-0.9132        ? might be 1.0325x slower
   string-cons-tower                                  7.0973+-1.2354            6.6324+-0.3105          might be 1.0701x faster
   string-equality                                   15.7510+-1.1156           15.2397+-0.3823          might be 1.0335x faster
   string-get-by-val-big-char                         6.7985+-0.1488            6.7749+-0.0735        
   string-get-by-val-out-of-bounds-insane             3.3576+-0.1454     ?      3.6055+-0.4356        ? might be 1.0738x slower
   string-get-by-val-out-of-bounds                    4.1022+-0.2514            4.0830+-0.1206        
   string-get-by-val                                  2.8293+-0.0453     ?      2.8391+-0.0366        ?
   string-hash                                        1.8494+-0.0948     ?      1.8549+-0.0853        ?
   string-long-ident-equality                        13.0720+-0.4405           12.8554+-0.2820          might be 1.0168x faster
   string-out-of-bounds                              10.5159+-0.0687     ?     10.6107+-0.3589        ?
   string-repeat-arith                               27.8732+-0.6778     ?     28.1156+-2.9581        ?
   string-sub                                        53.8840+-0.8533     ?     55.1418+-1.1956        ? might be 1.0233x slower
   string-test                                        2.7975+-0.1458            2.7520+-0.0193          might be 1.0165x faster
   string-var-equality                               27.3619+-3.1291           26.5005+-0.3071          might be 1.0325x faster
   structure-hoist-over-transitions                   2.5017+-0.0222     ^      2.3370+-0.1386        ^ definitely 1.0705x faster
   substring-concat-weird                            35.9796+-0.3193     ?     36.4424+-1.2511        ? might be 1.0129x slower
   substring-concat                                  39.8892+-1.1752     ?     40.0070+-1.1516        ?
   substring                                         44.8927+-0.9225     ?     45.0358+-2.5027        ?
   switch-char-constant                               2.6666+-0.0729     ?      2.7071+-0.0871        ? might be 1.0152x slower
   switch-char                                        5.8698+-0.7257     ?      5.9965+-1.2431        ? might be 1.0216x slower
   switch-constant                                    7.2552+-0.4254            7.2294+-0.9170        
   switch-string-basic-big-var                       16.9783+-1.0945           16.3705+-0.7798          might be 1.0371x faster
   switch-string-basic-big                           15.2438+-0.4688           15.1955+-0.3987        
   switch-string-basic-var                           13.8026+-0.9479     ?     13.8973+-1.4688        ?
   switch-string-basic                               13.0893+-0.3455           12.8968+-0.1470          might be 1.0149x faster
   switch-string-big-length-tower-var                18.1971+-0.5536     ?     18.4243+-1.3055        ? might be 1.0125x slower
   switch-string-length-tower-var                    13.4628+-0.5775     ?     13.5397+-0.7655        ?
   switch-string-length-tower                        11.8712+-0.2715           11.6989+-0.2518          might be 1.0147x faster
   switch-string-short                               11.9656+-0.4675     ?     12.0554+-0.4843        ?
   switch                                            11.5325+-1.5852           11.0663+-1.1102          might be 1.0421x faster
   tear-off-arguments-simple                          3.1132+-0.2823            3.0938+-0.1393        
   tear-off-arguments                                 4.0973+-0.1610            4.0001+-0.2346          might be 1.0243x faster
   temporal-structure                                12.1111+-0.3492     ?     12.4185+-0.6006        ? might be 1.0254x slower
   to-int32-boolean                                  13.6293+-0.5905           13.3713+-0.2321          might be 1.0193x faster
   try-catch-get-by-val-cloned-arguments             14.9572+-1.0514           14.5673+-0.8545          might be 1.0268x faster
   try-catch-get-by-val-direct-arguments              6.9178+-0.5014            6.7596+-0.5410          might be 1.0234x faster
   try-catch-get-by-val-scoped-arguments              7.5878+-0.1259     ?      7.7501+-0.0756        ? might be 1.0214x slower
   typed-array-get-set-by-val-profiling              27.6730+-0.8255     ?     27.7745+-0.7715        ?
   undefined-property-access                        227.8707+-3.2734     ?    228.7683+-3.6007        ?
   undefined-test                                     2.8542+-0.0424     ?      2.8637+-0.0592        ?
   unprofiled-licm                                   14.5680+-0.0987           14.3264+-0.5493          might be 1.0169x faster
   varargs-call                                      14.1927+-0.4219           14.0600+-0.1391        
   varargs-construct-inline                          22.4153+-0.4712     ?     23.2830+-2.7364        ? might be 1.0387x slower
   varargs-construct                                 21.2656+-1.5936           20.7715+-1.0167          might be 1.0238x faster
   varargs-inline                                     8.6055+-0.3692            8.3737+-0.0559          might be 1.0277x faster
   varargs-strict-mode                                9.3329+-0.4125     ?      9.3442+-0.4394        ?
   varargs                                            9.3035+-0.2133            9.1206+-0.0768          might be 1.0201x faster
   weird-inlining-const-prop                          2.0820+-0.0880     ?      2.1813+-0.1202        ? might be 1.0477x slower

   <geometric>                                        8.3777+-0.0165     ^      7.8343+-0.0303        ^ definitely 1.0694x faster

                                                          master                      ic                                        
Geomean of preferred means:
   <scaled-result>                                   26.0979+-0.0672     ^     25.7930+-0.1007        ^ definitely 1.0118x faster
Comment 8 Yusuke Suzuki 2015-08-07 19:06:31 PDT
Comment on attachment 258551 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=258551&action=review

Added comments.

> Source/JavaScriptCore/jit/JIT.h:376
> +        // Property is in regT1, base is in regT0. regT2 contains indecing type.

Fixed the existing comment.

> Source/JavaScriptCore/jit/JITPropertyAccess.cpp:492
>      emitGetVirtualRegister(value, regT2);

I think this code is a little bit fragile.
It does not reload regT0. So this slow path implicitly requires regT0 (base) is not broken.

Current implementation and this patch carefully follow this.
But in the future, I think it may be a problem. What do you think of?
Comment 9 Yusuke Suzuki 2015-08-09 16:46:58 PDT
Comment on attachment 258551 [details]
Patch

Let's wait the ARMv7 regression fix in get_by_val side.
Comment 10 Yusuke Suzuki 2015-08-09 19:07:25 PDT
Maybe, I found the issue in get_by_val. The get_by_val patch is already updated.
I'll also update the patch for put_by_val (this).
Comment 11 Yusuke Suzuki 2015-08-09 19:10:14 PDT
Created attachment 258603 [details]
Patch
Comment 12 Yusuke Suzuki 2015-08-10 21:58:06 PDT
After get_by_val patch is landed, I'll update this patch.
Comment 13 Yusuke Suzuki 2015-08-11 18:48:16 PDT
Created attachment 258791 [details]
Patch
Comment 14 Yusuke Suzuki 2015-08-11 18:50:06 PDT
Updated the patch based on the re-landed get_by_id.
And took the benchmark results.


Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, and JSRegress on Yusukes-MacBook-Pro (MacBookPro11,3).

VMs tested:
"master" at /Users/yusukesuzuki/development/WebKit/WebKitBuild/master-for-put-by-val2/Release/jsc
"ic" at /Users/yusukesuzuki/development/WebKit/WebKitBuild/put-by-val2/Release/jsc

Collected 4 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample measurements.
Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level
timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds.

                                                          master                      ic                                        
SunSpider:
   3d-cube                                            4.7835+-0.5591            4.4779+-0.1199          might be 1.0682x faster
   3d-morph                                           5.3038+-0.3490     ?      5.3253+-0.1222        ?
   3d-raytrace                                        5.2064+-0.0976            5.1981+-0.1543        
   access-binary-trees                                2.0060+-0.1707     ?      2.0084+-0.0905        ?
   access-fannkuch                                    5.3506+-0.0372     ?      5.4952+-0.3686        ? might be 1.0270x slower
   access-nbody                                       2.5628+-0.1533     ?      2.7791+-0.4369        ? might be 1.0844x slower
   access-nsieve                                      3.0410+-0.0521     ?      3.0533+-0.0223        ?
   bitops-3bit-bits-in-byte                           1.5109+-0.0321     ?      1.5114+-0.0093        ?
   bitops-bits-in-byte                                3.2692+-0.1319     ?      3.4105+-0.3805        ? might be 1.0432x slower
   bitops-bitwise-and                                 2.1240+-0.2787            2.0894+-0.0828          might be 1.0166x faster
   bitops-nsieve-bits                                 3.0065+-0.0397            2.9736+-0.0719          might be 1.0111x faster
   controlflow-recursive                              2.1304+-0.2298            2.0568+-0.0440          might be 1.0358x faster
   crypto-aes                                         3.9330+-0.2145            3.8384+-0.1323          might be 1.0247x faster
   crypto-md5                                         2.5499+-0.1870            2.5096+-0.0863          might be 1.0161x faster
   crypto-sha1                                        2.4342+-0.1486            2.3925+-0.3334          might be 1.0174x faster
   date-format-tofte                                  6.7337+-0.3100     ?      6.8147+-0.6416        ? might be 1.0120x slower
   date-format-xparb                                  4.8481+-0.6275     ?      4.8704+-0.4374        ?
   math-cordic                                        2.9142+-0.2000            2.8021+-0.0669          might be 1.0400x faster
   math-partial-sums                                  5.4690+-0.3496     ?      5.6627+-0.3550        ? might be 1.0354x slower
   math-spectral-norm                                 1.8002+-0.0520     ?      1.8686+-0.0894        ? might be 1.0380x slower
   regexp-dna                                         6.4941+-0.3978     ?      6.6597+-0.4474        ? might be 1.0255x slower
   string-base64                                      4.2899+-0.1804     ?      4.4785+-0.1496        ? might be 1.0440x slower
   string-fasta                                       5.8869+-0.5296            5.8682+-0.2599        
   string-tagcloud                                    8.2486+-0.1421     ?      8.4874+-0.4279        ? might be 1.0290x slower
   string-unpack-code                                20.2062+-0.8355           20.1170+-1.0379        
   string-validate-input                              4.4922+-0.1832     ?      4.5705+-0.2283        ? might be 1.0174x slower

   <arithmetic>                                       4.6383+-0.0602     ?      4.6661+-0.0201        ? might be 1.0060x slower

                                                          master                      ic                                        
LongSpider:
   3d-cube                                          836.7552+-21.1275         825.9297+-12.5855         might be 1.0131x faster
   3d-morph                                        1591.0110+-25.0360        1568.2533+-43.6683         might be 1.0145x faster
   3d-raytrace                                      638.2565+-10.1632         635.1079+-2.2422        
   access-binary-trees                              829.3503+-12.8978         813.8387+-12.6002         might be 1.0191x faster
   access-fannkuch                                  288.4608+-17.1326         283.2131+-4.0566          might be 1.0185x faster
   access-nbody                                     531.5117+-16.5735         527.1596+-2.0257        
   access-nsieve                                    366.1274+-15.6535         353.0670+-5.2621          might be 1.0370x faster
   bitops-3bit-bits-in-byte                          41.5374+-0.9329           41.0822+-1.0646          might be 1.0111x faster
   bitops-bits-in-byte                               76.2415+-1.6024     ?     77.8485+-7.6517        ? might be 1.0211x slower
   bitops-nsieve-bits                               419.6123+-8.1158          417.9985+-13.4044       
   controlflow-recursive                            437.7810+-9.6306     ?    446.6322+-19.3754       ? might be 1.0202x slower
   crypto-aes                                       586.2492+-20.7943    ?    588.6061+-8.8953        ?
   crypto-md5                                       514.0322+-12.2882    ?    514.8079+-4.4898        ?
   crypto-sha1                                      659.1471+-13.0666         654.7419+-7.4059        
   date-format-tofte                                525.7767+-11.7798    ?    530.5687+-6.6339        ?
   date-format-xparb                                649.4663+-25.1015    ?    668.0705+-19.4707       ? might be 1.0286x slower
   hash-map                                         154.3851+-1.9257     ?    157.0092+-3.0970        ? might be 1.0170x slower
   math-cordic                                      511.1750+-20.4265    ?    515.4603+-26.1989       ?
   math-partial-sums                                483.0878+-16.1252    ?    490.2812+-28.8804       ? might be 1.0149x slower
   math-spectral-norm                               581.1895+-16.5583         577.5945+-12.6434       
   string-base64                                    361.8380+-23.2236    ?    365.1520+-9.2779        ?
   string-fasta                                     376.2711+-16.0314         376.2357+-9.9593        
   string-tagcloud                                  182.0363+-2.8089     ?    182.9106+-3.6161        ?

   <geometric>                                      403.3920+-4.1372          403.3043+-0.9130          might be 1.0002x faster

                                                          master                      ic                                        
V8Spider:
   crypto                                            55.1956+-14.4310          50.3163+-5.3156          might be 1.0970x faster
   deltablue                                         85.9770+-5.5507           85.3022+-4.1440        
   earley-boyer                                      41.2180+-0.8925     ?     41.8600+-1.6824        ? might be 1.0156x slower
   raytrace                                          22.4794+-1.7199     ?     22.8006+-1.3126        ? might be 1.0143x slower
   regexp                                            63.9345+-1.2980     ?     65.6663+-5.8255        ? might be 1.0271x slower
   richards                                          72.1068+-3.7155           67.8063+-3.3647          might be 1.0634x faster
   splay                                             34.1846+-2.4154     ?     34.4920+-2.8545        ?

   <geometric>                                       49.0741+-1.6272           48.4447+-1.1064          might be 1.0130x faster

                                                          master                      ic                                        
Octane:
   encrypt                                           0.21421+-0.00603          0.20935+-0.00618         might be 1.0232x faster
   decrypt                                           3.57799+-0.11175          3.48727+-0.04912         might be 1.0260x faster
   deltablue                                x2       0.16268+-0.00398          0.16230+-0.00112       
   earley                                            0.28575+-0.00680    ?     0.28999+-0.00585       ? might be 1.0148x slower
   boyer                                             4.35322+-0.13898          4.32301+-0.05973       
   navier-stokes                            x2       5.21784+-0.09176          5.21643+-0.11716       
   raytrace                                 x2       1.97286+-0.01838    ?     1.99568+-0.12019       ? might be 1.0116x slower
   richards                                 x2       0.10452+-0.00092          0.10368+-0.00121       
   splay                                    x2       0.35860+-0.00601          0.35659+-0.00527       
   regexp                                   x2      25.65626+-0.70289    ?    26.31369+-1.37888       ? might be 1.0256x slower
   pdfjs                                    x2      38.12845+-0.54274         37.98097+-1.10631       
   mandreel                                 x2      46.74470+-1.80375         46.45316+-0.60075       
   gbemu                                    x2      34.97553+-0.40030    ?    35.26762+-0.83678       ?
   closure                                           0.58308+-0.01259    ?     0.58309+-0.01992       ?
   jquery                                            7.49882+-0.09725    ?     7.50566+-0.12799       ?
   box2d                                    x2      10.70757+-0.23400         10.59347+-0.52388         might be 1.0108x faster
   zlib                                     x2     390.90666+-4.75406        388.78428+-18.95888      
   typescript                               x2     672.88867+-17.18580       666.72113+-19.73900      

   <geometric>                                       6.08223+-0.02855          6.07091+-0.04520         might be 1.0019x faster

                                                          master                      ic                                        
Kraken:
   ai-astar                                          241.117+-7.959            231.522+-14.969          might be 1.0414x faster
   audio-beat-detection                               59.446+-2.556             58.669+-0.465           might be 1.0132x faster
   audio-dft                                         100.214+-3.446             99.731+-2.004         
   audio-fft                                          35.846+-1.470             35.840+-1.046         
   audio-oscillator                                   62.492+-0.705             62.162+-0.646         
   imaging-darkroom                                   62.781+-2.483             62.728+-2.706         
   imaging-desaturate                                 54.959+-5.119             52.586+-5.405           might be 1.0451x faster
   imaging-gaussian-blur                              86.772+-2.336      ?      87.670+-8.535         ? might be 1.0103x slower
   json-parse-financial                               39.164+-0.883      ?      40.080+-2.983         ? might be 1.0234x slower
   json-stringify-tinderbox                           23.330+-2.530             22.873+-1.343           might be 1.0200x faster
   stanford-crypto-aes                                43.454+-4.654             42.908+-2.826           might be 1.0127x faster
   stanford-crypto-ccm                                36.002+-2.521             33.758+-1.286           might be 1.0665x faster
   stanford-crypto-pbkdf2                             96.904+-1.164      ?      96.915+-0.692         ?
   stanford-crypto-sha256-iterative                   36.997+-0.138      ?      38.177+-3.517         ? might be 1.0319x slower

   <arithmetic>                                       69.963+-0.829             68.973+-1.304           might be 1.0144x faster

                                                          master                      ic                                        
JSRegress:
   abc-forward-loop-equal                            30.4207+-3.5186     ?     30.5726+-3.4041        ?
   abc-postfix-backward-loop                         29.9561+-1.2690           29.5468+-0.6558          might be 1.0139x faster
   abc-simple-backward-loop                          29.3508+-0.6684     ?     29.3897+-0.5446        ?
   abc-simple-forward-loop                           31.0605+-3.9489           29.3627+-0.5205          might be 1.0578x faster
   abc-skippy-loop                                   21.3950+-0.2645           21.2120+-0.5378        
   abs-boolean                                        2.4594+-0.0739            2.4310+-0.0890          might be 1.0117x faster
   adapt-to-double-divide                            16.2418+-0.3320     ?     16.3345+-0.2607        ?
   aliased-arguments-getbyval                         1.0784+-0.0582     ?      1.1391+-0.1609        ? might be 1.0563x slower
   allocate-big-object                                2.3633+-0.2604            2.2996+-0.2606          might be 1.0277x faster
   arguments-named-and-reflective                    10.8646+-0.4054     ?     11.4717+-0.7606        ? might be 1.0559x slower
   arguments-out-of-bounds                            9.9646+-0.1798            9.8777+-0.2948        
   arguments-strict-mode                              9.8131+-0.2641            9.7419+-0.4836        
   arguments                                          8.5242+-0.2313     ?      8.5884+-0.4305        ?
   arity-mismatch-inlining                            0.7850+-0.0177     ?      0.8494+-0.0880        ? might be 1.0820x slower
   array-access-polymorphic-structure                 5.9320+-0.1598     ?      6.0162+-0.2467        ? might be 1.0142x slower
   array-nonarray-polymorhpic-access                 25.7030+-0.9099           25.0843+-0.8578          might be 1.0247x faster
   array-prototype-every                             78.1331+-4.1022           76.7127+-2.0246          might be 1.0185x faster
   array-prototype-forEach                           78.1376+-7.4765           76.4438+-3.7932          might be 1.0222x faster
   array-prototype-map                               84.9015+-2.7479           83.5514+-0.6070          might be 1.0162x faster
   array-prototype-reduce                            75.4710+-2.4078           73.9355+-4.0163          might be 1.0208x faster
   array-prototype-reduceRight                       71.9142+-0.8738     ?     72.5513+-2.1015        ?
   array-prototype-some                              79.9095+-6.5887           78.9946+-6.4999          might be 1.0116x faster
   array-splice-contiguous                           21.4260+-2.2243     ?     21.5881+-1.6655        ?
   array-with-double-add                              3.4188+-0.0797            3.3737+-0.1089          might be 1.0134x faster
   array-with-double-increment                        3.0841+-0.1138            3.0259+-0.0826          might be 1.0192x faster
   array-with-double-mul-add                          4.2560+-0.1190            4.2313+-0.2312        
   array-with-double-sum                              3.1935+-0.1519            3.1841+-0.0544        
   array-with-int32-add-sub                           5.9498+-0.1457     ?      6.2513+-0.6280        ? might be 1.0507x slower
   array-with-int32-or-double-sum                     3.2075+-0.0797     ?      3.2999+-0.1784        ? might be 1.0288x slower
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     28.1344+-1.6305           27.7024+-1.3283          might be 1.0156x faster
   ArrayBuffer-DataView-alloc-long-lived             12.7703+-0.5118     ?     13.8033+-1.6346        ? might be 1.0809x slower
   ArrayBuffer-Int32Array-byteOffset                  3.9716+-0.6315            3.6786+-0.1577          might be 1.0796x faster
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     28.1896+-0.4280           27.9351+-1.0130        
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     21.2855+-2.0320     ?     21.3679+-2.8557        ?
   ArrayBuffer-Int8Array-alloc-long-lived            11.9618+-0.4369     ?     12.8780+-2.6246        ? might be 1.0766x slower
   ArrayBuffer-Int8Array-alloc                       10.2737+-0.2155           10.2128+-0.0523        
   asmjs_bool_bug                                     7.4133+-0.3734            7.2629+-0.2664          might be 1.0207x faster
   assign-custom-setter-polymorphic                   2.5928+-0.0529            2.5612+-0.1955          might be 1.0123x faster
   assign-custom-setter                               3.5731+-0.1231     ?      3.6130+-0.0895        ? might be 1.0112x slower
   basic-set                                          8.1888+-0.7573            8.0779+-0.1569          might be 1.0137x faster
   big-int-mul                                        3.4426+-0.0473     ?      3.5802+-0.2839        ? might be 1.0400x slower
   boolean-test                                       2.9168+-0.1325            2.9041+-0.0878        
   branch-fold                                        3.6099+-0.0085     ?      3.6455+-0.0920        ?
   branch-on-string-as-boolean                       16.5435+-1.3815     ?     16.6172+-0.3361        ?
   by-val-generic                                     6.1494+-0.2529     ^      2.3788+-0.0672        ^ definitely 2.5850x faster
   call-spread-apply                                 27.1583+-0.8721     ?     27.5195+-1.1494        ? might be 1.0133x slower
   call-spread-call                                  21.6077+-1.0263           21.4613+-0.1214        
   captured-assignments                               0.4230+-0.0482     ?      0.4371+-0.0507        ? might be 1.0332x slower
   cast-int-to-double                                 5.1988+-0.2215            5.1699+-0.0803        
   cell-argument                                      6.5638+-0.6700            6.4894+-0.3780          might be 1.0115x faster
   cfg-simplify                                       2.7955+-0.2164     ?      2.9313+-0.2660        ? might be 1.0486x slower
   chain-getter-access                                8.1899+-0.0975     ?      8.2327+-0.2559        ?
   cmpeq-obj-to-obj-other                            11.6490+-1.1922     ?     12.1970+-0.4902        ? might be 1.0470x slower
   constant-test                                      4.9000+-0.1166     ?      4.9820+-0.2738        ? might be 1.0167x slower
   create-lots-of-functions                           9.2545+-0.6019            9.1605+-0.4207          might be 1.0103x faster
   cse-new-array-buffer                               2.2281+-0.1439     ?      2.2944+-0.1643        ? might be 1.0298x slower
   cse-new-array                                      2.4084+-0.1203            2.2503+-0.1633          might be 1.0702x faster
   DataView-custom-properties                        32.9791+-1.4437           32.7305+-1.4116        
   delay-tear-off-arguments-strictmode               12.5924+-0.6279           12.4738+-0.5537        
   deltablue-varargs                                154.4465+-7.5656          150.8955+-1.9331          might be 1.0235x faster
   destructuring-arguments                          167.0574+-3.8066          166.1065+-3.8138        
   destructuring-parameters-overridden-by-function   
                                                      0.4642+-0.0107            0.4486+-0.0394          might be 1.0347x faster
   destructuring-swap                                 4.8234+-0.2418            4.7875+-0.1475        
   direct-arguments-getbyval                          1.1297+-0.0798            1.0782+-0.0484          might be 1.0477x faster
   div-boolean-double                                 5.4870+-0.1795            5.4182+-0.0497          might be 1.0127x faster
   div-boolean                                        8.2973+-0.0702            8.2812+-0.0899        
   double-get-by-val-out-of-bounds                    4.1185+-0.2260     ?      4.2694+-0.1431        ? might be 1.0366x slower
   double-pollution-getbyval                          8.9418+-0.2861     ?      8.9512+-0.1227        ?
   double-pollution-putbyoffset                       3.9677+-0.5194            3.8873+-0.3436          might be 1.0207x faster
   double-real-use                                   26.6407+-5.0986           26.0117+-2.6696          might be 1.0242x faster
   double-to-int32-typed-array-no-inline              2.2863+-0.2830            2.0938+-0.0492          might be 1.0920x faster
   double-to-int32-typed-array                        1.8185+-0.0406            1.8158+-0.1062        
   double-to-uint32-typed-array-no-inline             2.1180+-0.1020     ?      2.2241+-0.0402        ? might be 1.0501x slower
   double-to-uint32-typed-array                       2.0063+-0.2366            1.9377+-0.2243          might be 1.0354x faster
   elidable-new-object-dag                           35.1503+-2.3967           34.1964+-1.1448          might be 1.0279x faster
   elidable-new-object-roflcopter                    32.9814+-0.4673     ?     33.8122+-1.6499        ? might be 1.0252x slower
   elidable-new-object-then-call                     31.8503+-1.1228           31.1902+-0.3429          might be 1.0212x faster
   elidable-new-object-tree                          37.4989+-0.9130     ?     37.8619+-1.5898        ?
   empty-string-plus-int                              4.8240+-0.0916            4.7968+-0.1696        
   emscripten-cube2hash                              26.4540+-3.8103     ?     27.4030+-3.1305        ? might be 1.0359x slower
   exit-length-on-plain-object                       12.6080+-0.4229     ?     12.8876+-0.4479        ? might be 1.0222x slower
   external-arguments-getbyval                        1.1917+-0.1491            1.1469+-0.0154          might be 1.0390x faster
   external-arguments-putbyval                        2.2283+-0.1147            2.2181+-0.1335        
   fixed-typed-array-storage-var-index                1.1945+-0.0704            1.1547+-0.0479          might be 1.0345x faster
   fixed-typed-array-storage                          0.8625+-0.0246            0.8294+-0.0467          might be 1.0399x faster
   Float32Array-matrix-mult                           4.2921+-0.4402            4.0438+-0.3149          might be 1.0614x faster
   Float32Array-to-Float64Array-set                  45.8997+-1.2373     ?     47.0768+-2.0671        ? might be 1.0256x slower
   Float64Array-alloc-long-lived                     58.4412+-1.4192     ?     58.5718+-1.3157        ?
   Float64Array-to-Int16Array-set                    59.3593+-4.0435           59.3320+-1.7569        
   fold-double-to-int                                12.7600+-0.3215     ?     12.7770+-0.4392        ?
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     10.9481+-1.2141            9.6530+-1.1566          might be 1.1342x faster
   fold-get-by-id-to-multi-get-by-offset              9.3643+-0.5576            9.0266+-0.3310          might be 1.0374x faster
   fold-multi-get-by-offset-to-get-by-offset   
                                                      8.5377+-1.5213            7.7426+-1.8286          might be 1.1027x faster
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      7.9885+-1.5092            7.9015+-2.2351          might be 1.0110x faster
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      7.9266+-1.3812     ?      8.2106+-0.4392        ? might be 1.0358x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                      5.9677+-1.2023     ?      6.0640+-0.5600        ? might be 1.0161x slower
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                      8.6280+-1.2961            8.2563+-0.6696          might be 1.0450x faster
   fold-put-by-id-to-multi-put-by-offset              9.0149+-0.8574     ?      9.1357+-0.3271        ? might be 1.0134x slower
   fold-put-by-val-with-string-to-multi-put-by-offset   
                                                     66.4464+-2.0151     ^      9.0206+-1.1966        ^ definitely 7.3661x faster
   fold-put-by-val-with-symbol-to-multi-put-by-offset   
                                                     69.3903+-4.1105     ^      9.1848+-1.0785        ^ definitely 7.5549x faster
   fold-put-structure                                 6.0617+-0.7470            5.7636+-0.5138          might be 1.0517x faster
   for-of-iterate-array-entries                      11.6996+-0.2994           11.6213+-0.3773        
   for-of-iterate-array-keys                          3.3269+-0.0299            3.3098+-0.1325        
   for-of-iterate-array-values                        3.4129+-0.1981            3.3538+-0.1552          might be 1.0176x faster
   fround                                            19.8466+-0.4911           19.4609+-0.8974          might be 1.0198x faster
   ftl-library-inlining-dataview                     58.8506+-3.5593           57.8617+-1.8893          might be 1.0171x faster
   ftl-library-inlining                             112.7565+-2.7984          110.2152+-3.8195          might be 1.0231x faster
   function-dot-apply                                 2.0640+-0.1262            2.0005+-0.0410          might be 1.0317x faster
   function-test                                      2.6644+-0.1344     ?      2.7072+-0.2407        ? might be 1.0161x slower
   function-with-eval                               108.7946+-5.3004          106.7708+-1.3764          might be 1.0190x faster
   gcse-poly-get-less-obvious                        14.5932+-0.1884           14.5314+-0.1702        
   gcse-poly-get                                     16.5972+-0.8657           16.5384+-0.6985        
   gcse                                               3.8281+-0.0435     ?      3.8981+-0.2483        ? might be 1.0183x slower
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.6221+-0.0970            2.5762+-0.0360          might be 1.0178x faster
   get-by-id-bimorphic-check-structure-elimination   
                                                      6.1367+-0.3695            5.9647+-0.0529          might be 1.0288x faster
   get-by-id-chain-from-try-block                     5.5568+-0.3376     ?      5.7222+-0.2092        ? might be 1.0298x slower
   get-by-id-check-structure-elimination              4.4759+-0.3030     ?      4.7421+-1.0019        ? might be 1.0595x slower
   get-by-id-proto-or-self                           14.5833+-0.5900     ?     15.0490+-0.8913        ? might be 1.0319x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      2.8776+-0.0396     ?      2.9685+-0.1420        ? might be 1.0316x slower
   get-by-id-self-or-proto                           14.6407+-0.4343     ?     15.5737+-1.6295        ? might be 1.0637x slower
   get-by-val-out-of-bounds                           4.0728+-0.2882            4.0267+-0.3145          might be 1.0114x faster
   get-by-val-with-string-bimorphic-check-structure-elimination-simple   
                                                      2.8942+-0.0968            2.8776+-0.1237        
   get-by-val-with-string-bimorphic-check-structure-elimination   
                                                      6.2343+-0.1063            6.2162+-0.0831        
   get-by-val-with-string-chain-from-try-block   
                                                      5.7051+-0.4995            5.5408+-0.0784          might be 1.0296x faster
   get-by-val-with-string-check-structure-elimination   
                                                      5.2142+-0.1461            5.1998+-0.1782        
   get-by-val-with-string-proto-or-self              14.7446+-0.4795           14.6557+-0.6380        
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple   
                                                      3.1765+-0.1339     ?      3.2645+-0.1719        ? might be 1.0277x slower
   get-by-val-with-string-self-or-proto              16.0129+-2.4384           15.9579+-2.4149        
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple   
                                                      3.0168+-0.0548     ?      3.0315+-0.0376        ?
   get-by-val-with-symbol-bimorphic-check-structure-elimination   
                                                     12.5020+-0.1487     ?     12.5836+-0.1556        ?
   get-by-val-with-symbol-chain-from-try-block   
                                                      5.6441+-0.1045            5.6306+-0.1031        
   get-by-val-with-symbol-check-structure-elimination   
                                                     11.5818+-0.5928           11.3604+-0.4770          might be 1.0195x faster
   get-by-val-with-symbol-proto-or-self              14.8860+-0.2004     ?     15.1407+-1.6836        ? might be 1.0171x slower
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple   
                                                      4.0162+-0.1118     ?      4.0366+-0.2368        ?
   get-by-val-with-symbol-self-or-proto              14.8101+-0.8663     ?     15.6434+-1.5701        ? might be 1.0563x slower
   get_callee_monomorphic                             2.5562+-0.6468            2.4752+-0.2525          might be 1.0327x faster
   get_callee_polymorphic                             3.2980+-0.1991            3.1816+-0.2178          might be 1.0366x faster
   getter-no-activation                               4.8550+-0.2324     ?      5.1459+-0.4497        ? might be 1.0599x slower
   getter-prototype                                  10.0082+-0.3072     ?     10.1360+-1.0966        ? might be 1.0128x slower
   getter-richards                                  121.3746+-9.8202     ?    124.8890+-4.0976        ? might be 1.0290x slower
   getter                                             5.4423+-0.4604            5.2927+-0.0975          might be 1.0283x faster
   global-object-access-with-mutating-structure   
                                                      5.6146+-0.5311     ?      5.7203+-0.1983        ? might be 1.0188x slower
   global-var-const-infer-fire-from-opt               0.8462+-0.1737     ?      0.9050+-0.1021        ? might be 1.0695x slower
   global-var-const-infer                             0.7635+-0.1149            0.7018+-0.0469          might be 1.0880x faster
   HashMap-put-get-iterate-keys                      27.4141+-2.7462           25.5320+-3.3546          might be 1.0737x faster
   HashMap-put-get-iterate                           26.6028+-0.7866     ?     26.7569+-2.0420        ?
   HashMap-string-put-get-iterate                    24.8033+-0.2596     ?     25.4359+-1.7637        ? might be 1.0255x slower
   hoist-make-rope                                    8.0048+-1.3946     ?      8.2037+-1.5820        ? might be 1.0248x slower
   hoist-poly-check-structure-effectful-loop   
                                                      4.1225+-0.0434     ?      4.4717+-0.5218        ? might be 1.0847x slower
   hoist-poly-check-structure                         3.3285+-0.2082     ?      3.3333+-0.0976        ?
   imul-double-only                                   6.7031+-0.2838     ?      6.8803+-0.2693        ? might be 1.0264x slower
   imul-int-only                                      7.9868+-0.4347            7.9595+-0.5232        
   imul-mixed                                         6.6873+-0.6495            6.5135+-0.3703          might be 1.0267x faster
   in-four-cases                                     17.7727+-0.5785     ?     17.8608+-1.2742        ?
   in-one-case-false                                  9.3367+-0.2883            9.3104+-0.3333        
   in-one-case-true                                   9.3683+-0.3129            9.3635+-0.3227        
   in-two-cases                                       9.7913+-0.2443            9.7766+-0.1341        
   indexed-properties-in-objects                      2.8030+-0.0333            2.7928+-0.0404        
   infer-closure-const-then-mov-no-inline             3.2415+-0.3664     ?      3.7240+-0.6667        ? might be 1.1489x slower
   infer-closure-const-then-mov                      17.5105+-1.1719     ?     17.6900+-0.2938        ? might be 1.0103x slower
   infer-closure-const-then-put-to-scope-no-inline   
                                                     11.6285+-1.1157           11.2753+-0.4030          might be 1.0313x faster
   infer-closure-const-then-put-to-scope             21.9205+-0.5546     ?     21.9351+-0.7701        ?
   infer-closure-const-then-reenter-no-inline   
                                                     51.6376+-1.2520     ?     53.3860+-6.6140        ? might be 1.0339x slower
   infer-closure-const-then-reenter                  23.3280+-3.3668           22.2540+-1.0271          might be 1.0483x faster
   infer-constant-global-property                     3.4418+-0.1357     ?      3.6636+-0.5436        ? might be 1.0644x slower
   infer-constant-property                            2.6674+-0.1393            2.6190+-0.0691          might be 1.0185x faster
   infer-one-time-closure-ten-vars                    8.7757+-1.1701            8.4888+-0.3970          might be 1.0338x faster
   infer-one-time-closure-two-vars                    7.9174+-0.2729     ?      8.3086+-0.4876        ? might be 1.0494x slower
   infer-one-time-closure                             8.1741+-0.8396            8.1252+-0.7522        
   infer-one-time-deep-closure                       12.8452+-0.3913     ?     12.8685+-0.6968        ?
   inline-arguments-access                            3.7232+-0.3493            3.6741+-0.2809          might be 1.0134x faster
   inline-arguments-aliased-access                    3.6613+-0.1769     ?      3.7440+-0.2030        ? might be 1.0226x slower
   inline-arguments-local-escape                      3.6514+-0.1854     ?      3.6514+-0.1585        ?
   inline-get-scoped-var                              4.9023+-0.3562            4.8287+-0.0636          might be 1.0152x faster
   inlined-put-by-id-transition                      10.2627+-0.3884            9.8281+-1.0958          might be 1.0442x faster
   inlined-put-by-val-with-string-transition   
                                                    113.4969+-2.9352     ^     75.2108+-1.6511        ^ definitely 1.5091x faster
   inlined-put-by-val-with-symbol-transition   
                                                    115.8724+-1.5557     ^     72.8320+-1.1636        ^ definitely 1.5910x faster
   int-or-other-abs-then-get-by-val                   4.8403+-0.0837     ?      4.9946+-0.2007        ? might be 1.0319x slower
   int-or-other-abs-zero-then-get-by-val             16.3602+-0.2597           16.2937+-0.3449        
   int-or-other-add-then-get-by-val                   4.1599+-0.0867     ?      4.1654+-0.0890        ?
   int-or-other-add                                   5.0682+-0.3340            4.9832+-0.3326          might be 1.0171x faster
   int-or-other-div-then-get-by-val                   3.8398+-0.2257            3.8215+-0.1520        
   int-or-other-max-then-get-by-val                   4.1185+-0.1425     ?      4.1250+-0.2253        ?
   int-or-other-min-then-get-by-val                   4.0475+-0.0271     ?      4.1122+-0.1682        ? might be 1.0160x slower
   int-or-other-mod-then-get-by-val                   3.7261+-0.1946            3.5557+-0.1226          might be 1.0479x faster
   int-or-other-mul-then-get-by-val                   3.7337+-0.1787     ?      3.7847+-0.2092        ? might be 1.0137x slower
   int-or-other-neg-then-get-by-val                   4.5055+-0.1435     ?      4.5714+-0.2538        ? might be 1.0146x slower
   int-or-other-neg-zero-then-get-by-val             16.6490+-0.7155           16.3929+-1.3004          might be 1.0156x faster
   int-or-other-sub-then-get-by-val                   4.2081+-0.1585            4.1754+-0.1862        
   int-or-other-sub                                   3.5267+-0.1883            3.4370+-0.0400          might be 1.0261x faster
   int-overflow-local                                 4.4567+-0.4171            4.3351+-0.0814          might be 1.0280x faster
   Int16Array-alloc-long-lived                       43.0228+-1.5034           43.0153+-1.6439        
   Int16Array-bubble-sort-with-byteLength            20.0147+-0.5400     ^     18.0602+-0.5974        ^ definitely 1.1082x faster
   Int16Array-bubble-sort                            20.2470+-2.2290           18.0142+-0.7518          might be 1.1239x faster
   Int16Array-load-int-mul                            1.4462+-0.0774     ?      1.4872+-0.1126        ? might be 1.0283x slower
   Int16Array-to-Int32Array-set                      45.2297+-3.6748           43.4820+-0.5739          might be 1.0402x faster
   Int32Array-alloc-large                            12.3084+-0.9543     ?     12.3715+-0.7181        ?
   Int32Array-alloc-long-lived                       48.1345+-2.3172           47.7355+-1.1425        
   Int32Array-alloc                                   2.6729+-0.2375     ?      2.8467+-0.3669        ? might be 1.0651x slower
   Int32Array-Int8Array-view-alloc                    6.2802+-0.1626     ?      6.4185+-0.5336        ? might be 1.0220x slower
   int52-spill                                        4.7600+-0.1683            4.6898+-0.1810          might be 1.0150x faster
   Int8Array-alloc-long-lived                        37.8097+-1.4122     ?     38.2945+-1.4213        ? might be 1.0128x slower
   Int8Array-load-with-byteLength                     3.5747+-0.2141     ?      3.5778+-0.1805        ?
   Int8Array-load                                     3.4385+-0.1602            3.4382+-0.0611        
   integer-divide                                    10.6865+-0.1968           10.5795+-0.0496          might be 1.0101x faster
   integer-modulo                                     1.6740+-0.1441     ?      1.6763+-0.0371        ?
   is-boolean-fold-tricky                             3.9280+-0.5351            3.7242+-0.0715          might be 1.0547x faster
   is-boolean-fold                                    2.6158+-0.0345     ?      2.6631+-0.0867        ? might be 1.0181x slower
   is-function-fold-tricky-internal-function   
                                                      9.9630+-0.2591     ?     10.0500+-0.1926        ?
   is-function-fold-tricky                            4.2075+-0.2905            4.0880+-0.0589          might be 1.0292x faster
   is-function-fold                                   2.6428+-0.0509            2.6298+-0.1222        
   is-number-fold-tricky                              4.0707+-0.2041     ?      4.0734+-0.1177        ?
   is-number-fold                                     2.7197+-0.1813            2.6761+-0.1556          might be 1.0163x faster
   is-object-or-null-fold-functions                   2.8170+-0.4480            2.6567+-0.0172          might be 1.0603x faster
   is-object-or-null-fold-less-tricky                 4.1339+-0.1980     ?      4.2045+-0.1731        ? might be 1.0171x slower
   is-object-or-null-fold-tricky                      5.5187+-0.2800            5.2793+-0.1054          might be 1.0454x faster
   is-object-or-null-fold                             2.7286+-0.1072            2.6480+-0.0284          might be 1.0304x faster
   is-object-or-null-trickier-function                4.2444+-0.0516            4.2431+-0.2746        
   is-object-or-null-trickier-internal-function   
                                                     10.6367+-0.3694           10.4359+-0.1287          might be 1.0192x faster
   is-object-or-null-tricky-function                  4.3088+-0.5403            4.2480+-0.2286          might be 1.0143x faster
   is-object-or-null-tricky-internal-function   
                                                      7.7950+-0.1434     ?      7.8079+-0.2492        ?
   is-string-fold-tricky                              4.1037+-0.2519            4.0950+-0.1644        
   is-string-fold                                     2.6072+-0.0672     ?      2.7101+-0.1028        ? might be 1.0395x slower
   is-undefined-fold-tricky                           3.2855+-0.0337     ?      3.2945+-0.1271        ?
   is-undefined-fold                                  2.6392+-0.1220     ?      2.6809+-0.1197        ? might be 1.0158x slower
   JSONP-negative-0                                   0.2442+-0.0083     ?      0.2455+-0.0131        ?
   large-int-captured                                 3.8880+-0.4350            3.8615+-0.1630        
   large-int-neg                                     14.3981+-0.1985     ?     15.3138+-1.1064        ? might be 1.0636x slower
   large-int                                         14.4443+-1.5970           13.8995+-0.3446          might be 1.0392x faster
   load-varargs-elimination                          22.1561+-1.5405           20.8760+-0.5470          might be 1.0613x faster
   logical-not-weird-types                            2.9675+-0.1324            2.9150+-0.0775          might be 1.0180x faster
   logical-not                                        4.3093+-0.0574     ?      4.3489+-0.1351        ?
   lots-of-fields                                     9.4321+-0.2805     ?      9.5175+-0.6506        ?
   make-indexed-storage                               2.7640+-0.2955     ?      2.8398+-0.1465        ? might be 1.0274x slower
   make-rope-cse                                      3.9323+-0.2983            3.6565+-0.2885          might be 1.0754x faster
   marsaglia-larger-ints                             32.9594+-2.6742           32.6393+-0.5669        
   marsaglia-osr-entry                               21.2010+-0.8463     ?     22.2730+-2.1657        ? might be 1.0506x slower
   math-with-out-of-bounds-array-values              22.8708+-3.1505           22.2825+-0.3013          might be 1.0264x faster
   max-boolean                                        2.7102+-0.0614     ?      2.7190+-0.1102        ?
   method-on-number                                  16.6821+-0.1489     ?     18.1460+-2.2751        ? might be 1.0878x slower
   min-boolean                                        2.7454+-0.0787     ?      2.7633+-0.1292        ?
   minus-boolean-double                               3.1472+-0.1426            3.1260+-0.0744        
   minus-boolean                                      2.2997+-0.0613     ?      2.5505+-0.4292        ? might be 1.1090x slower
   misc-strict-eq                                    31.2397+-0.5981           31.2242+-1.0330        
   mod-boolean-double                                11.5528+-0.4133           11.3300+-0.3689          might be 1.0197x faster
   mod-boolean                                        8.4568+-0.2518     ?      8.6425+-0.4129        ? might be 1.0220x slower
   mul-boolean-double                                 3.6710+-0.0654     ?      3.7640+-0.2778        ? might be 1.0253x slower
   mul-boolean                                        2.7670+-0.0547     ?      2.8477+-0.0861        ? might be 1.0292x slower
   neg-boolean                                        3.1082+-0.0785            3.0692+-0.0709          might be 1.0127x faster
   negative-zero-divide                               0.3542+-0.0732            0.3186+-0.0040          might be 1.1119x faster
   negative-zero-modulo                               0.3535+-0.0320            0.3228+-0.0050          might be 1.0949x faster
   negative-zero-negate                               0.3101+-0.0263            0.3085+-0.0263        
   nested-function-parsing                           42.9380+-0.8578     ?     43.1874+-3.3770        ?
   new-array-buffer-dead                             89.7038+-1.6329           88.6490+-0.5644          might be 1.0119x faster
   new-array-buffer-push                              5.9844+-0.3940            5.9097+-0.4161          might be 1.0126x faster
   new-array-dead                                    13.9341+-0.7371           13.8020+-0.8735        
   new-array-push                                     3.5596+-0.2698            3.4985+-0.2288          might be 1.0175x faster
   no-inline-constructor                             32.2123+-1.9255           31.5076+-0.6167          might be 1.0224x faster
   number-test                                        2.8126+-0.0326     ?      2.8601+-0.0716        ? might be 1.0169x slower
   object-closure-call                                5.0543+-0.4320            5.0018+-0.4305          might be 1.0105x faster
   object-get-own-property-symbols-on-large-array   
                                                      3.8403+-0.2344            3.5911+-0.1806          might be 1.0694x faster
   object-test                                        2.5922+-0.0936     ?      2.6271+-0.0536        ? might be 1.0135x slower
   obvious-sink-pathology-taken                     101.8335+-2.2668          101.0276+-0.5741        
   obvious-sink-pathology                            96.9016+-0.6491           96.8526+-1.6090        
   obviously-elidable-new-object                     29.2731+-2.0336           27.8242+-2.1716          might be 1.0521x faster
   plus-boolean-arith                                 2.4063+-0.1132            2.3744+-0.0493          might be 1.0134x faster
   plus-boolean-double                                3.1262+-0.2352            3.0864+-0.0911          might be 1.0129x faster
   plus-boolean                                       2.5908+-0.0624     ?      2.5991+-0.1603        ?
   poly-chain-access-different-prototypes-simple   
                                                      3.2959+-0.1144            3.2343+-0.1098          might be 1.0190x faster
   poly-chain-access-different-prototypes             2.8756+-0.0483     ?      2.9127+-0.0600        ? might be 1.0129x slower
   poly-chain-access-simpler                          3.3681+-0.3544            3.2745+-0.1212          might be 1.0286x faster
   poly-chain-access                                  3.3468+-0.1107            3.3390+-0.0364        
   poly-stricteq                                     51.2652+-0.9369     ?     51.3693+-1.3195        ?
   polymorphic-array-call                             1.2632+-0.0658     ?      1.3308+-0.0772        ? might be 1.0535x slower
   polymorphic-get-by-id                              2.7952+-0.0789     ?      2.7968+-0.0690        ?
   polymorphic-put-by-id                             25.8075+-1.1297           25.3528+-1.7042          might be 1.0179x faster
   polymorphic-put-by-val-with-string               363.6154+-9.6330     ^     27.8351+-2.9592        ^ definitely 13.0632x faster
   polymorphic-put-by-val-with-symbol               389.7329+-16.8297    ^     26.5987+-0.9531        ^ definitely 14.6523x faster
   polymorphic-structure                             13.5520+-0.0862           13.3789+-0.1740          might be 1.0129x faster
   polyvariant-monomorphic-get-by-id                  6.6448+-0.6484            6.4723+-0.5253          might be 1.0267x faster
   proto-getter-access                                8.1575+-0.2432     ?      8.1928+-0.1704        ?
   prototype-access-with-mutating-prototype           5.4362+-0.4054     ?      5.7037+-0.7029        ? might be 1.0492x slower
   put-by-id-replace-and-transition                   7.7102+-0.5653            7.0806+-0.4895          might be 1.0889x faster
   put-by-id-slightly-polymorphic                     2.7327+-0.1866            2.7192+-0.1200        
   put-by-id                                          9.6223+-0.2077     ?      9.7433+-0.4443        ? might be 1.0126x slower
   put-by-val-direct                                  0.3199+-0.0167     ?      0.3469+-0.0534        ? might be 1.0845x slower
   put-by-val-large-index-blank-indexing-type   
                                                      5.2581+-0.4053     ?      5.5893+-0.3809        ? might be 1.0630x slower
   put-by-val-machine-int                             2.3729+-0.1866     ?      2.3870+-0.1882        ?
   put-by-val-with-string-replace-and-transition   
                                                     87.7953+-5.9126     ^     10.1464+-0.3603        ^ definitely 8.6529x faster
   put-by-val-with-string-slightly-polymorphic   
                                                     33.6233+-1.0861     ^      2.8926+-0.2251        ^ definitely 11.6240x faster
   put-by-val-with-string                            86.0762+-6.6056     ^     10.3429+-1.1055        ^ definitely 8.3223x faster
   put-by-val-with-symbol-replace-and-transition   
                                                     87.9910+-9.1864     ^     11.4424+-0.3748        ^ definitely 7.6899x faster
   put-by-val-with-symbol-slightly-polymorphic   
                                                     32.9027+-1.1053     ^      3.0971+-0.1209        ^ definitely 10.6237x faster
   put-by-val-with-symbol                            82.1315+-1.1424     ^     10.2524+-0.5991        ^ definitely 8.0110x faster
   rare-osr-exit-on-local                            14.9467+-0.3756           14.9382+-0.3717        
   register-pressure-from-osr                        16.7762+-0.9383     ?     16.9037+-0.3588        ?
   repeat-multi-get-by-offset                        22.8320+-2.2132           22.4648+-0.7937          might be 1.0163x faster
   setter-prototype                                   7.4230+-0.1434     ?      7.5397+-0.3293        ? might be 1.0157x slower
   setter                                             5.4998+-0.5423     ?      5.8981+-0.5576        ? might be 1.0724x slower
   simple-activation-demo                            25.1650+-1.1333     ?     25.3315+-1.7973        ?
   simple-getter-access                              10.7664+-0.8219           10.5552+-0.3087          might be 1.0200x faster
   simple-poly-call-nested                            8.4214+-0.3904     ?      8.4803+-1.4038        ?
   simple-poly-call                                   1.2958+-0.0921            1.2657+-0.1790          might be 1.0237x faster
   sin-boolean                                       17.9883+-0.5439     ?     18.1531+-0.7382        ?
   singleton-scope                                   63.6418+-4.0311           61.8835+-1.3434          might be 1.0284x faster
   sink-function                                      9.8258+-0.4924            9.7692+-0.6748        
   sink-huge-activation                              15.9443+-0.6513     ?     16.0815+-1.0086        ?
   sinkable-new-object-dag                           56.6597+-1.3592           55.4562+-0.6962          might be 1.0217x faster
   sinkable-new-object-taken                         42.9341+-0.6443     ?     43.5657+-2.2804        ? might be 1.0147x slower
   sinkable-new-object                               30.3599+-2.0341           29.6320+-0.7412          might be 1.0246x faster
   slow-array-profile-convergence                     2.7775+-0.4832            2.7106+-0.2497          might be 1.0247x faster
   slow-convergence                                   2.5590+-0.3282            2.4441+-0.1049          might be 1.0470x faster
   slow-ternaries                                    17.8310+-0.7020     ?     18.0041+-0.2527        ?
   sorting-benchmark                                 17.7008+-1.1402     ?     18.6253+-3.3963        ? might be 1.0522x slower
   sparse-conditional                                 1.1530+-0.0669     ?      1.1700+-0.0366        ? might be 1.0148x slower
   splice-to-remove                                  12.6245+-0.8439           12.1635+-0.5963          might be 1.0379x faster
   string-char-code-at                               14.5536+-0.2931     ?     14.7928+-0.4039        ? might be 1.0164x slower
   string-concat-object                               2.2286+-0.2026            2.1703+-0.2057          might be 1.0269x faster
   string-concat-pair-object                          2.3052+-0.2176            2.0967+-0.2825          might be 1.0995x faster
   string-concat-pair-simple                          9.1679+-0.3148     ?      9.3113+-0.3154        ? might be 1.0156x slower
   string-concat-simple                               9.4254+-0.4866            9.2645+-0.2957          might be 1.0174x faster
   string-cons-repeat                                 6.7887+-1.3811            6.5272+-0.1456          might be 1.0401x faster
   string-cons-tower                                  7.5748+-2.3902            6.7133+-0.5477          might be 1.1283x faster
   string-equality                                   16.1498+-2.3893           15.5743+-0.4963          might be 1.0370x faster
   string-get-by-val-big-char                         6.9600+-0.4176            6.7378+-0.0894          might be 1.0330x faster
   string-get-by-val-out-of-bounds-insane             3.4255+-0.3439            3.3853+-0.2539          might be 1.0119x faster
   string-get-by-val-out-of-bounds                    4.0610+-0.2671     ?      4.0889+-0.1711        ?
   string-get-by-val                                  2.7915+-0.0743     ?      2.9331+-0.2236        ? might be 1.0507x slower
   string-hash                                        1.8417+-0.0296     ?      1.9033+-0.1347        ? might be 1.0334x slower
   string-long-ident-equality                        12.7574+-0.3292     ?     13.3976+-1.4838        ? might be 1.0502x slower
   string-out-of-bounds                              10.4902+-0.4300           10.2953+-0.1293          might be 1.0189x faster
   string-repeat-arith                               28.9441+-3.5250           28.2797+-1.0284          might be 1.0235x faster
   string-sub                                        56.2777+-1.2771           54.6345+-1.4681          might be 1.0301x faster
   string-test                                        2.7452+-0.0371            2.7245+-0.0936        
   string-var-equality                               27.4783+-3.0983           27.3992+-3.2982        
   structure-hoist-over-transitions                   2.3610+-0.1594     ?      2.4357+-0.1107        ? might be 1.0316x slower
   substring-concat-weird                            36.4015+-0.7329     ?     37.2979+-2.6875        ? might be 1.0246x slower
   substring-concat                                  41.5767+-4.0379           39.4585+-0.8074          might be 1.0537x faster
   substring                                         46.5780+-1.9989           46.3568+-4.0786        
   switch-char-constant                               2.7561+-0.1282     ?      2.7746+-0.0504        ?
   switch-char                                        6.2315+-0.6797            5.9367+-1.0066          might be 1.0497x faster
   switch-constant                                    7.2404+-0.1664     ?      7.2517+-0.6493        ?
   switch-string-basic-big-var                       16.4704+-0.8372     ?     16.7288+-1.3050        ? might be 1.0157x slower
   switch-string-basic-big                           15.6505+-1.0940           15.3030+-0.2589          might be 1.0227x faster
   switch-string-basic-var                           13.3815+-0.2674     ?     13.6429+-0.6771        ? might be 1.0195x slower
   switch-string-basic                               13.2849+-0.7692     ?     13.2880+-0.4919        ?
   switch-string-big-length-tower-var                18.1430+-0.1587     ?     18.1996+-0.4947        ?
   switch-string-length-tower-var                    13.7699+-1.2697     ?     13.8521+-1.8614        ?
   switch-string-length-tower                        12.1495+-0.1803           12.0515+-0.3668        
   switch-string-short                               12.0372+-0.3859     ?     12.1193+-0.2723        ?
   switch                                            11.4389+-0.4885     ?     11.7690+-1.1770        ? might be 1.0289x slower
   tear-off-arguments-simple                          2.9457+-0.1369            2.9124+-0.2543          might be 1.0115x faster
   tear-off-arguments                                 4.0392+-0.2020     ?      4.2564+-0.1024        ? might be 1.0538x slower
   temporal-structure                                12.3824+-0.3336           12.1137+-0.1337          might be 1.0222x faster
   to-int32-boolean                                  13.7756+-1.1365           13.4539+-0.1519          might be 1.0239x faster
   try-catch-get-by-val-cloned-arguments             14.6117+-0.7250           14.4850+-0.9222        
   try-catch-get-by-val-direct-arguments              6.8022+-0.4926            6.2780+-0.1237          might be 1.0835x faster
   try-catch-get-by-val-scoped-arguments              7.8057+-0.7513            7.5796+-0.1226          might be 1.0298x faster
   typed-array-get-set-by-val-profiling              27.6259+-0.8796     ?     27.6599+-1.4222        ?
   undefined-property-access                        233.3607+-9.6968          232.7073+-2.8755        
   undefined-test                                     2.8510+-0.0436     ?      2.8795+-0.1710        ?
   unprofiled-licm                                   14.5299+-0.4930           14.2424+-0.8414          might be 1.0202x faster
   varargs-call                                      14.1352+-0.3861           14.1260+-0.2976        
   varargs-construct-inline                          23.1499+-2.6409           22.6848+-1.0342          might be 1.0205x faster
   varargs-construct                                 20.1577+-0.9943     ?     20.5761+-0.3606        ? might be 1.0208x slower
   varargs-inline                                     8.6895+-0.6069            8.5875+-0.2457          might be 1.0119x faster
   varargs-strict-mode                                9.4213+-0.2786            9.1904+-0.3502          might be 1.0251x faster
   varargs                                            9.4245+-0.7268            9.2122+-0.2051          might be 1.0230x faster
   weird-inlining-const-prop                          2.1864+-0.2612     ?      2.4000+-0.4780        ? might be 1.0977x slower

   <geometric>                                        8.4161+-0.0189     ^      7.8552+-0.0353        ^ definitely 1.0714x faster

                                                          master                      ic                                        
Geomean of preferred means:
   <scaled-result>                                   26.2713+-0.1074     ^     25.8708+-0.0888        ^ definitely 1.0155x faster
Comment 15 Yusuke Suzuki 2015-08-11 18:56:10 PDT
Comment on attachment 258791 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=258791&action=review

> Source/JavaScriptCore/jit/JITPropertyAccess.cpp:493
> +    emitGetVirtualRegister(base, regT0);

In this slow path, only |base| register was not reloaded.

Essentially, this line is not needed.
Since the current fast path carefully reserve the content of the |base|. So this line is not needed.
But I think missing this line may cause some problems in the future.

Since this is the slow path and the slow path is already slow, taking the conservative implementation (inserting this line) is not bad I think.
Comment 16 Yusuke Suzuki 2015-08-12 12:10:25 PDT
Comment on attachment 258791 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=258791&action=review

> Source/JavaScriptCore/jit/JITPropertyAccess.cpp:452
> +    doneCases.append(jump());

Here, in get_by_val, doneCases are split into fastDoneCase and nextHotPathCase.
But since put_by_val has no difference between done and nextHotPath, we just link the all successful cases to done label.
Is it preferable keeping them split?
Comment 17 Filip Pizlo 2015-08-20 12:40:26 PDT
Comment on attachment 258791 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=258791&action=review

>> Source/JavaScriptCore/jit/JITPropertyAccess.cpp:452
>> +    doneCases.append(jump());
> 
> Here, in get_by_val, doneCases are split into fastDoneCase and nextHotPathCase.
> But since put_by_val has no difference between done and nextHotPath, we just link the all successful cases to done label.
> Is it preferable keeping them split?

I think this is fine.
Comment 18 Yusuke Suzuki 2015-08-20 13:02:07 PDT
Comment on attachment 258791 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=258791&action=review

Thank you for your review.

>>> Source/JavaScriptCore/jit/JITPropertyAccess.cpp:452
>>> +    doneCases.append(jump());
>> 
>> Here, in get_by_val, doneCases are split into fastDoneCase and nextHotPathCase.
>> But since put_by_val has no difference between done and nextHotPath, we just link the all successful cases to done label.
>> Is it preferable keeping them split?
> 
> I think this is fine.

I see :)
Comment 19 Yusuke Suzuki 2015-08-20 13:18:53 PDT
Committed r188696: <http://trac.webkit.org/changeset/188696>
Comment 20 Michael Saboff 2015-08-20 17:51:46 PDT
It appears that this change caused the tests below to fail on 32bit iOS.  

    jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint
    jsc-layout-tests.yaml/js/script-tests/dfg-int16array.js.layout-no-llint
    jsc-layout-tests.yaml/js/script-tests/dfg-int32array-overflow-values.js.layout-no-llint
    jsc-layout-tests.yaml/js/script-tests/dfg-int32array.js.layout-no-llint
    jsc-layout-tests.yaml/js/script-tests/dfg-int8array.js.layout-no-llint
    jsc-layout-tests.yaml/js/script-tests/dfg-uint16array.js.layout-no-llint
    jsc-layout-tests.yaml/js/script-tests/dfg-uint32array-overflow-values.js.layout-no-llint
    jsc-layout-tests.yaml/js/script-tests/dfg-uint32array.js.layout-no-llint
    jsc-layout-tests.yaml/js/script-tests/dfg-uint8array.js.layout-no-llint
    jsc-layout-tests.yaml/js/script-tests/dfg-uint8clampedarray.js.layout-no-llint
    jsc-layout-tests.yaml/js/script-tests/regress-141098.js.layout-no-llint

In all cases, the tests crash because they run out of executable memory.  Here is the traceback of one of the test:
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: Ran out of executable memory while allocating 1484 bytes.
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 1   0x433c4f JSC::LinkBuffer::allocate(unsigned long, void*, JSC::JITCompilationEffort)
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 2   0x433cdd void JSC::LinkBuffer::copyCompactAndLinkCode<unsigned short>(JSC::MacroAssembler&, void*, JSC::JITCompilationEffort)
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 3   0x35df49 JSC::JIT::privateCompile(JSC::JITCompilationEffort)
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 4   0x2fc531 JSC::ScriptExecutable::prepareForExecutionImpl(JSC::ExecState*, JSC::JSFunction*, JSC::JSScope*, JSC::CodeSpecializationKind)
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 5   0x3560cd JSC::Interpreter::execute(JSC::EvalExecutable*, JSC::ExecState*, JSC::JSValue, JSC::JSScope*)
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 6   0x355f63 JSC::eval(JSC::ExecState*)
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 7   0x37cfaf operationCallEval
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 8   0x7c45495
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 9   0x7c3fb99
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 10  0x4490d1 vmEntryToJavaScript
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 11  0x36af0b JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 12  0x358c31 JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*)
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 13  0x1fda8f JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue, WTF::NakedPtr<JSC::Exception>&)
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 14  0x795f1 jscmain(int, char**)
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 15  0x7910b main
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 16  0x34191873 <redacted>
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: ./test_script_855: line 2: 13988 Segmentation fault: 11  "$@" /System/Library/Frameworks/JavaScriptCore.framework/Resources/jsc --useFTLJIT\=false --enableFunctionDotArguments\=true --useLLInt\=false resources/standalone-pre.js dfg-float32array.js resources/standalone-post.js
[2015-08-20 15:42:00] INFO: jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: ERROR: Unexpected exit code: 139

Given that all of these failures are when testing with the LLInt turned off, they are benign.  With the LLInt on, these out of memory errors would cause the JavaScript code being compiled to execute in the LLInt.  Also, it is quite possible that we wouldn't be using that much executable memory in the first place.

I filed <https://bugs.webkit.org/show_bug.cgi?id=148273> to change these tests to not run the "no-llint" variants on iOS 32 bit.
Comment 21 Yusuke Suzuki 2015-08-20 18:05:40 PDT
(In reply to comment #20)
> It appears that this change caused the tests below to fail on 32bit iOS.  
> 
>     jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint
>     jsc-layout-tests.yaml/js/script-tests/dfg-int16array.js.layout-no-llint
>    
> jsc-layout-tests.yaml/js/script-tests/dfg-int32array-overflow-values.js.
> layout-no-llint
>     jsc-layout-tests.yaml/js/script-tests/dfg-int32array.js.layout-no-llint
>     jsc-layout-tests.yaml/js/script-tests/dfg-int8array.js.layout-no-llint
>     jsc-layout-tests.yaml/js/script-tests/dfg-uint16array.js.layout-no-llint
>    
> jsc-layout-tests.yaml/js/script-tests/dfg-uint32array-overflow-values.js.
> layout-no-llint
>     jsc-layout-tests.yaml/js/script-tests/dfg-uint32array.js.layout-no-llint
>     jsc-layout-tests.yaml/js/script-tests/dfg-uint8array.js.layout-no-llint
>    
> jsc-layout-tests.yaml/js/script-tests/dfg-uint8clampedarray.js.layout-no-
> llint
>     jsc-layout-tests.yaml/js/script-tests/regress-141098.js.layout-no-llint
> 
> In all cases, the tests crash because they run out of executable memory. 
> Here is the traceback of one of the test:
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint:
> Ran out of executable memory while allocating 1484 bytes.
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 1
> 0x433c4f JSC::LinkBuffer::allocate(unsigned long, void*,
> JSC::JITCompilationEffort)
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 2
> 0x433cdd void JSC::LinkBuffer::copyCompactAndLinkCode<unsigned
> short>(JSC::MacroAssembler&, void*, JSC::JITCompilationEffort)
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 3
> 0x35df49 JSC::JIT::privateCompile(JSC::JITCompilationEffort)
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 4
> 0x2fc531 JSC::ScriptExecutable::prepareForExecutionImpl(JSC::ExecState*,
> JSC::JSFunction*, JSC::JSScope*, JSC::CodeSpecializationKind)
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 5
> 0x3560cd JSC::Interpreter::execute(JSC::EvalExecutable*, JSC::ExecState*,
> JSC::JSValue, JSC::JSScope*)
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 6
> 0x355f63 JSC::eval(JSC::ExecState*)
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 7
> 0x37cfaf operationCallEval
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 8
> 0x7c45495
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint: 9
> 0x7c3fb99
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint:
> 10  0x4490d1 vmEntryToJavaScript
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint:
> 11  0x36af0b JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint:
> 12  0x358c31 JSC::Interpreter::execute(JSC::ProgramExecutable*,
> JSC::ExecState*, JSC::JSObject*)
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint:
> 13  0x1fda8f JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&,
> JSC::JSValue, WTF::NakedPtr<JSC::Exception>&)
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint:
> 14  0x795f1 jscmain(int, char**)
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint:
> 15  0x7910b main
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint:
> 16  0x34191873 <redacted>
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint:
> ./test_script_855: line 2: 13988 Segmentation fault: 11  "$@"
> /System/Library/Frameworks/JavaScriptCore.framework/Resources/jsc
> --useFTLJIT\=false --enableFunctionDotArguments\=true --useLLInt\=false
> resources/standalone-pre.js dfg-float32array.js resources/standalone-post.js
> [2015-08-20 15:42:00] INFO:
> jsc-layout-tests.yaml/js/script-tests/dfg-float32array.js.layout-no-llint:
> ERROR: Unexpected exit code: 139
> 
> Given that all of these failures are when testing with the LLInt turned off,
> they are benign.  With the LLInt on, these out of memory errors would cause
> the JavaScript code being compiled to execute in the LLInt.  Also, it is
> quite possible that we wouldn't be using that much executable memory in the
> first place.
> 
> I filed <https://bugs.webkit.org/show_bug.cgi?id=148273> to change these
> tests to not run the "no-llint" variants on iOS 32 bit.

Thank you. I'll investigate it soon.