Bug 150270 - Fix some generational heap growth pathologies
Summary: Fix some generational heap growth pathologies
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: All All
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords:
Depends on: 150281
Blocks:
  Show dependency treegraph
 
Reported: 2015-10-16 23:30 PDT by Filip Pizlo
Modified: 2015-12-23 09:22 PST (History)
11 users (show)

See Also:


Attachments
the patch (21.79 KB, patch)
2015-10-16 23:39 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (22.16 KB, patch)
2015-10-17 00:05 PDT, Filip Pizlo
kling: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Filip Pizlo 2015-10-16 23:30:09 PDT
Patch forthcoming.
Comment 1 Filip Pizlo 2015-10-16 23:39:35 PDT
Created attachment 263366 [details]
the patch
Comment 2 Filip Pizlo 2015-10-17 00:03:22 PDT
Performance is OK:


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

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

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

                                                        TipOfTree               FixCopiedSpace                                  
SunSpider:
   3d-cube                                            4.7174+-0.1413            4.6865+-0.1546        
   3d-morph                                           5.2531+-0.1940     ?      5.4087+-0.3887        ? might be 1.0296x slower
   3d-raytrace                                        5.3884+-0.1016     ?      5.4932+-0.3763        ? might be 1.0195x slower
   access-binary-trees                                2.4862+-0.6497            2.2353+-0.1147          might be 1.1122x faster
   access-fannkuch                                    5.8215+-0.3172     ?      5.9247+-0.2906        ? might be 1.0177x slower
   access-nbody                                       2.6743+-0.2484            2.5592+-0.0927          might be 1.0450x faster
   access-nsieve                                      3.2168+-0.3193            3.1327+-0.2247          might be 1.0268x faster
   bitops-3bit-bits-in-byte                           1.1636+-0.0097     ?      1.4038+-0.3331        ? might be 1.2065x slower
   bitops-bits-in-byte                                3.4208+-0.2756            3.2125+-0.0622          might be 1.0648x faster
   bitops-bitwise-and                                 2.0876+-0.1384            2.0045+-0.0436          might be 1.0415x faster
   bitops-nsieve-bits                                 2.9708+-0.0511     ?      3.0002+-0.1559        ?
   controlflow-recursive                              2.3785+-0.0861     ?      2.6128+-0.5903        ? might be 1.0985x slower
   crypto-aes                                         4.4377+-0.8201            4.2905+-0.6340          might be 1.0343x faster
   crypto-md5                                         2.6657+-0.5018            2.5024+-0.0684          might be 1.0653x faster
   crypto-sha1                                        2.6423+-0.4188     ?      2.7410+-0.3622        ? might be 1.0373x slower
   date-format-tofte                                  6.7001+-0.1924            6.6242+-0.2523          might be 1.0115x faster
   date-format-xparb                                  4.6935+-0.1210            4.6543+-0.0589        
   math-cordic                                        2.9690+-0.4587            2.8441+-0.1790          might be 1.0439x faster
   math-partial-sums                                  4.9302+-0.3516     ?      4.9983+-0.2885        ? might be 1.0138x slower
   math-spectral-norm                                 1.9349+-0.0297     ?      2.0684+-0.3046        ? might be 1.0690x slower
   regexp-dna                                         6.9442+-0.7975            6.6113+-0.5698          might be 1.0504x faster
   string-base64                                      4.3805+-0.3157     ?      4.5671+-0.7278        ? might be 1.0426x slower
   string-fasta                                       6.0744+-0.5718            5.9352+-0.3420          might be 1.0235x faster
   string-tagcloud                                    9.2666+-2.3816            8.7339+-1.8429          might be 1.0610x faster
   string-unpack-code                                18.2769+-0.9733     ?     18.7372+-0.6021        ? might be 1.0252x slower
   string-validate-input                              4.5714+-0.1111            4.5265+-0.1483        

   <arithmetic>                                       4.6949+-0.1277            4.6734+-0.0972          might be 1.0046x faster

                                                        TipOfTree               FixCopiedSpace                                  
LongSpider:
   3d-cube                                          805.7094+-7.6404     ?    806.0226+-6.6118        ?
   3d-morph                                        1526.6109+-24.9999        1513.9535+-11.3908       
   3d-raytrace                                      614.3464+-8.7051          609.7022+-9.9839        
   access-binary-trees                              818.3505+-15.0017         815.1985+-15.0740       
   access-fannkuch                                  296.8544+-9.7199     ?    306.4336+-11.6174       ? might be 1.0323x slower
   access-nbody                                     516.6049+-7.2703     ?    522.0880+-4.1742        ? might be 1.0106x slower
   access-nsieve                                    387.8221+-15.9180         372.2701+-3.5514          might be 1.0418x faster
   bitops-3bit-bits-in-byte                          35.9387+-3.5344     ?     35.9873+-2.0219        ?
   bitops-bits-in-byte                               75.6221+-1.9154     ?     78.6802+-4.1653        ? might be 1.0404x slower
   bitops-nsieve-bits                               409.4894+-8.5422     ?    415.0891+-8.2474        ? might be 1.0137x slower
   controlflow-recursive                            443.5732+-7.7914          438.3473+-10.8710         might be 1.0119x faster
   crypto-aes                                       563.4209+-15.8738         554.1442+-11.8723         might be 1.0167x faster
   crypto-md5                                       471.5358+-48.5115         457.9851+-9.2968          might be 1.0296x faster
   crypto-sha1                                      669.9952+-14.8409         669.4951+-8.3477        
   date-format-tofte                                514.0834+-6.3499          510.9600+-12.3264       
   date-format-xparb                                668.4271+-12.1127         657.7192+-10.3338         might be 1.0163x faster
   hash-map                                         152.5703+-3.4541          152.1023+-5.6511        
   math-cordic                                      492.8981+-7.4319     ?    493.1539+-6.1470        ?
   math-partial-sums                                466.0164+-9.0087     ?    466.2832+-7.2434        ?
   math-spectral-norm                               565.3679+-21.0931         556.6860+-7.7103          might be 1.0156x faster
   string-base64                                    359.3397+-28.4666    ?    412.5889+-38.7616       ? might be 1.1482x slower
   string-fasta                                     365.3073+-11.5785         364.6408+-14.2899       
   string-tagcloud                                  180.0179+-6.2005          177.1515+-6.4098          might be 1.0162x faster

   <geometric>                                      394.5375+-2.6010     ?    395.6397+-3.6369        ? might be 1.0028x slower

                                                        TipOfTree               FixCopiedSpace                                  
V8Spider:
   crypto                                            52.1081+-3.1869           51.1088+-2.2722          might be 1.0196x faster
   deltablue                                         80.3343+-9.5647           78.6947+-3.1722          might be 1.0208x faster
   earley-boyer                                      42.4431+-0.8959           42.0927+-1.4060        
   raytrace                                          32.0117+-2.2727     ?     34.9329+-4.0449        ? might be 1.0913x slower
   regexp                                            63.2823+-2.5653           62.8281+-4.0752        
   richards                                          59.1543+-6.6468           55.4760+-3.5623          might be 1.0663x faster
   splay                                             36.2467+-1.0525     ?     37.3592+-1.7708        ? might be 1.0307x slower

   <geometric>                                       49.8174+-0.7459     ?     49.8228+-0.5444        ? might be 1.0001x slower

                                                        TipOfTree               FixCopiedSpace                                  
Octane:
   encrypt                                           0.15956+-0.00500    ?     0.16065+-0.00627       ?
   decrypt                                           2.97616+-0.03843          2.93750+-0.05122         might be 1.0132x faster
   deltablue                                x2       0.14242+-0.00897          0.13599+-0.00175         might be 1.0473x faster
   earley                                            0.29243+-0.00569          0.29013+-0.00321       
   boyer                                             4.46454+-0.11166    ?     4.46460+-0.13911       ?
   navier-stokes                            x2       4.94032+-0.03473          4.90796+-0.02179       
   raytrace                                 x2       0.87182+-0.00827          0.87143+-0.01444       
   richards                                 x2       0.08902+-0.00182    ?     0.09067+-0.00416       ? might be 1.0186x slower
   splay                                    x2       0.37149+-0.02165          0.36226+-0.00413         might be 1.0255x faster
   regexp                                   x2      24.73340+-0.56811         24.56235+-0.32210       
   pdfjs                                    x2      38.39102+-0.47150         38.04420+-0.28729       
   mandreel                                 x2      43.85313+-1.18776    ?    43.92042+-1.14205       ?
   gbemu                                    x2      30.17701+-0.33521    ?    33.19136+-3.86788       ? might be 1.0999x slower
   closure                                           0.59715+-0.00688          0.58627+-0.00892         might be 1.0186x faster
   jquery                                            7.56669+-0.16473    ?     7.61232+-0.14786       ?
   box2d                                    x2       9.63491+-0.25951          9.47356+-0.20855         might be 1.0170x faster
   zlib                                     x2     393.31850+-9.03745        384.56517+-21.75852        might be 1.0228x faster
   typescript                               x2     682.39307+-6.40273    ?   697.08797+-8.68681       ? might be 1.0215x slower

   <geometric>                                       5.44570+-0.02575          5.44054+-0.04587         might be 1.0009x faster

                                                        TipOfTree               FixCopiedSpace                                  
Kraken:
   ai-astar                                          130.600+-6.622            129.797+-3.126         
   audio-beat-detection                               48.738+-0.942      ?      49.519+-2.796         ? might be 1.0160x slower
   audio-dft                                          96.355+-0.889      ?      97.792+-2.067         ? might be 1.0149x slower
   audio-fft                                          36.291+-3.453             35.235+-0.464           might be 1.0300x faster
   audio-oscillator                                   59.340+-2.849      ?      59.694+-3.160         ?
   imaging-darkroom                                   60.363+-1.635             60.291+-0.924         
   imaging-desaturate                                 49.022+-1.068      ?      49.720+-3.598         ? might be 1.0142x slower
   imaging-gaussian-blur                              90.088+-7.820             87.661+-1.193           might be 1.0277x faster
   json-parse-financial                               40.625+-3.894      ?      41.270+-4.929         ? might be 1.0159x slower
   json-stringify-tinderbox                           24.805+-1.338             24.689+-1.771         
   stanford-crypto-aes                                41.668+-1.469      ?      43.198+-2.114         ? might be 1.0367x slower
   stanford-crypto-ccm                                38.581+-5.861             37.758+-2.997           might be 1.0218x faster
   stanford-crypto-pbkdf2                            100.647+-5.455             97.234+-1.347           might be 1.0351x faster
   stanford-crypto-sha256-iterative                   38.248+-1.739      ?      39.177+-2.959         ? might be 1.0243x slower

   <arithmetic>                                       61.098+-1.105             60.931+-0.758           might be 1.0027x faster

                                                        TipOfTree               FixCopiedSpace                                  
JSRegress:
   abc-forward-loop-equal                            31.1641+-3.3838           30.9779+-1.7680        
   abc-postfix-backward-loop                         30.6938+-0.9134     ?     33.2917+-3.9165        ? might be 1.0846x slower
   abc-simple-backward-loop                          30.9615+-2.0562     ?     31.3710+-1.0365        ? might be 1.0132x slower
   abc-simple-forward-loop                           30.8789+-2.0193     ?     30.9728+-1.3730        ?
   abc-skippy-loop                                   21.7140+-0.8050           21.1878+-0.3516          might be 1.0248x faster
   abs-boolean                                        2.4642+-0.0446            2.4602+-0.0377        
   adapt-to-double-divide                            16.4482+-0.6066     ?     16.9967+-1.1848        ? might be 1.0333x slower
   aliased-arguments-getbyval                         1.3689+-0.2863            1.3272+-0.3150          might be 1.0314x faster
   allocate-big-object                                2.5109+-0.2415     ?      2.5499+-0.0738        ? might be 1.0155x slower
   arguments-named-and-reflective                    11.0627+-0.7563           10.7510+-0.4254          might be 1.0290x faster
   arguments-out-of-bounds                            9.7712+-0.9535     ?     10.0682+-1.7633        ? might be 1.0304x slower
   arguments-strict-mode                              9.7749+-0.3928            9.6803+-0.5106        
   arguments                                          8.9056+-0.5179            8.7122+-0.4358          might be 1.0222x faster
   arity-mismatch-inlining                            0.9067+-0.0736            0.8721+-0.0353          might be 1.0398x faster
   array-access-polymorphic-structure                 7.4104+-0.6210     ?      7.8524+-1.0001        ? might be 1.0596x slower
   array-nonarray-polymorhpic-access                 24.5367+-1.1550     ?     26.0302+-1.7918        ? might be 1.0609x slower
   array-prototype-every                             80.4622+-5.0811           80.2375+-4.2488        
   array-prototype-forEach                           78.4247+-5.6322     ?     80.8755+-8.0293        ? might be 1.0313x slower
   array-prototype-map                               82.8882+-3.2604     ?     84.2865+-3.4406        ? might be 1.0169x slower
   array-prototype-reduce                            73.0095+-0.8062     ?     74.2415+-4.9245        ? might be 1.0169x slower
   array-prototype-reduceRight                       77.8220+-9.3485           72.0122+-2.4562          might be 1.0807x faster
   array-prototype-some                              78.0437+-2.1908     ?     78.6899+-2.7050        ?
   array-splice-contiguous                           24.4132+-1.5006           24.1165+-0.5654          might be 1.0123x faster
   array-with-double-add                              3.6955+-0.1834     ?      4.1972+-0.9106        ? might be 1.1358x slower
   array-with-double-increment                        3.2454+-0.1009            3.2043+-0.1280          might be 1.0128x faster
   array-with-double-mul-add                          4.4223+-0.0900     ?      4.4705+-0.0982        ? might be 1.0109x slower
   array-with-double-sum                              3.3061+-0.2158            3.2209+-0.0762          might be 1.0264x faster
   array-with-int32-add-sub                           6.2482+-0.1563            6.1901+-0.1305        
   array-with-int32-or-double-sum                     3.5089+-0.3471     ?      3.5098+-0.4097        ?
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     27.2628+-1.7888     ?     29.6006+-0.7332        ? might be 1.0857x slower
   ArrayBuffer-DataView-alloc-long-lived             12.4074+-0.5954     ?     12.9848+-1.2773        ? might be 1.0465x slower
   ArrayBuffer-Int32Array-byteOffset                  3.7382+-0.2548     ?      3.8285+-0.5401        ? might be 1.0242x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     27.3548+-2.3292     !     32.0100+-1.5050        ! definitely 1.1702x slower
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     20.6488+-2.7733           19.4124+-0.1469          might be 1.0637x faster
   ArrayBuffer-Int8Array-alloc-long-lived            11.5102+-0.7512           11.2008+-0.7394          might be 1.0276x faster
   ArrayBuffer-Int8Array-alloc                       10.0125+-1.0585     ?     10.8179+-2.6574        ? might be 1.0804x slower
   arrowfunction-call                                10.8238+-0.1316     ?     11.4980+-1.7103        ? might be 1.0623x slower
   asmjs_bool_bug                                     8.0575+-0.1099     ?      8.1298+-0.2534        ?
   assign-custom-setter-polymorphic                   2.4163+-0.0516     ?      2.4723+-0.0683        ? might be 1.0232x slower
   assign-custom-setter                               3.2132+-0.1014     ?      3.3443+-0.0718        ? might be 1.0408x slower
   basic-set                                          7.7167+-0.5402            7.5721+-0.8653          might be 1.0191x faster
   big-int-mul                                        3.6086+-0.2924            3.4705+-0.0995          might be 1.0398x faster
   boolean-test                                       3.1538+-0.1985     ?      3.2517+-0.3426        ? might be 1.0310x slower
   branch-fold                                        3.8526+-0.4484            3.6162+-0.0292          might be 1.0654x faster
   branch-on-string-as-boolean                       17.9867+-1.5243           17.0179+-0.8618          might be 1.0569x faster
   by-val-generic                                     2.5059+-0.1534            2.4357+-0.0984          might be 1.0288x faster
   call-spread-apply                                 30.2807+-3.1740           29.7961+-3.5955          might be 1.0163x faster
   call-spread-call                                  22.4650+-1.0887           22.3966+-1.4917        
   captured-assignments                               0.5009+-0.1260            0.4545+-0.0173          might be 1.1021x faster
   cast-int-to-double                                 5.3569+-0.6163            5.3252+-0.5479        
   cell-argument                                      5.9928+-0.2982     ?      6.8588+-2.2697        ? might be 1.1445x slower
   cfg-simplify                                       2.9152+-0.0837     ?      2.9525+-0.1572        ? might be 1.0128x slower
   chain-getter-access                                8.5757+-0.2329     ?      8.9074+-1.0097        ? might be 1.0387x slower
   cmpeq-obj-to-obj-other                            12.9774+-0.5880           12.4681+-1.6979          might be 1.0408x faster
   constant-test                                      4.8534+-0.0560     ?      4.9230+-0.2331        ? might be 1.0143x slower
   create-lots-of-functions                           9.5743+-0.4376     ?      9.8891+-0.8447        ? might be 1.0329x slower
   cse-new-array-buffer                               2.3664+-0.1315            2.3400+-0.1954          might be 1.0113x faster
   cse-new-array                                      2.3691+-0.1564     ?      2.4752+-0.2066        ? might be 1.0448x slower
   custom-setter-getter-as-put-get-by-id              0.5273+-0.0521            0.5238+-0.0335        
   DataView-custom-properties                        33.3038+-4.3339     ?     34.7460+-0.9410        ? might be 1.0433x slower
   delay-tear-off-arguments-strictmode               12.8674+-0.3213           12.5818+-0.2093          might be 1.0227x faster
   deltablue-varargs                                164.8903+-2.7394     ?    172.6110+-9.6130        ? might be 1.0468x slower
   destructuring-arguments                          165.5807+-12.4295    ?    167.4430+-8.7054        ? might be 1.0112x slower
   destructuring-parameters-overridden-by-function   
                                                      0.4729+-0.0230     ?      0.4841+-0.0379        ? might be 1.0237x slower
   destructuring-swap                                 4.8846+-0.1650            4.8426+-0.1990        
   direct-arguments-getbyval                          1.2081+-0.0730            1.1923+-0.0502          might be 1.0133x faster
   div-boolean-double                                 5.3170+-0.1052            5.3094+-0.1569        
   div-boolean                                        8.2005+-0.2362     ?      8.3585+-0.3736        ? might be 1.0193x slower
   double-get-by-val-out-of-bounds                    4.5085+-0.2333     ?      4.8100+-0.9944        ? might be 1.0669x slower
   double-pollution-getbyval                          8.5498+-0.4789            8.5040+-0.3226        
   double-pollution-putbyoffset                       4.1005+-0.6426            3.6105+-0.0785          might be 1.1357x faster
   double-real-use                                   25.4091+-0.8136     ?     26.3377+-3.0904        ? might be 1.0365x slower
   double-to-int32-typed-array-no-inline              2.2882+-0.1136     ?      2.3029+-0.0946        ?
   double-to-int32-typed-array                        2.3308+-0.4174            2.2640+-0.2566          might be 1.0295x faster
   double-to-uint32-typed-array-no-inline             2.3728+-0.2249            2.2776+-0.0759          might be 1.0418x faster
   double-to-uint32-typed-array                       2.1744+-0.0514            2.1381+-0.1081          might be 1.0170x faster
   elidable-new-object-dag                           34.4685+-0.6854     ?     35.2900+-1.3437        ? might be 1.0238x slower
   elidable-new-object-roflcopter                    32.7061+-2.2102     ?     33.0039+-1.3074        ?
   elidable-new-object-then-call                     33.3606+-1.7373           32.4339+-0.7901          might be 1.0286x faster
   elidable-new-object-tree                          37.8837+-1.2294           37.8118+-0.7977        
   empty-string-plus-int                              4.7868+-0.0715     ?      4.8047+-0.3412        ?
   emscripten-cube2hash                              29.1339+-1.1519           27.6968+-0.4991          might be 1.0519x faster
   exit-length-on-plain-object                       15.9366+-0.7079     ?     16.7823+-3.3940        ? might be 1.0531x slower
   external-arguments-getbyval                        1.2254+-0.1222     ?      1.2709+-0.0528        ? might be 1.0371x slower
   external-arguments-putbyval                        2.3226+-0.4193     ?      2.4247+-0.3544        ? might be 1.0440x slower
   fixed-typed-array-storage-var-index                1.3617+-0.1817            1.2938+-0.0670          might be 1.0525x faster
   fixed-typed-array-storage                          0.9735+-0.1061     ?      1.0000+-0.0866        ? might be 1.0272x slower
   Float32Array-matrix-mult                           4.5004+-0.6646     ?      4.7171+-0.5611        ? might be 1.0482x slower
   Float32Array-to-Float64Array-set                  51.6944+-3.5117           51.5225+-1.8954        
   Float64Array-alloc-long-lived                     62.6529+-3.8010           62.4897+-3.0304        
   Float64Array-to-Int16Array-set                    60.6450+-4.1339     ?     60.9178+-4.7199        ?
   fold-double-to-int                                13.4349+-1.1272           12.9364+-0.5407          might be 1.0385x faster
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     10.0498+-1.1835     ?     10.9462+-0.7232        ? might be 1.0892x slower
   fold-get-by-id-to-multi-get-by-offset              9.9194+-0.6741            9.4346+-0.2141          might be 1.0514x faster
   fold-multi-get-by-offset-to-get-by-offset   
                                                     10.1796+-1.2314           10.0800+-1.0000        
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      9.4378+-1.0191            9.0635+-0.5323          might be 1.0413x faster
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                     11.8475+-0.9870            9.0859+-2.3046          might be 1.3039x faster
   fold-multi-put-by-offset-to-put-by-offset   
                                                      9.9958+-0.5323     ?     11.1168+-2.1763        ? might be 1.1121x slower
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                      9.7776+-0.7982     ?     10.4193+-1.2341        ? might be 1.0656x slower
   fold-put-by-id-to-multi-put-by-offset             11.0192+-2.1340     ?     11.6873+-1.9903        ? might be 1.0606x slower
   fold-put-by-val-with-string-to-multi-put-by-offset   
                                                     11.1191+-1.1688     ?     11.1528+-1.5272        ?
   fold-put-by-val-with-symbol-to-multi-put-by-offset   
                                                     10.4156+-0.8490     ?     11.6044+-1.7362        ? might be 1.1141x slower
   fold-put-structure                                 8.0559+-0.5954            7.9521+-1.3478          might be 1.0130x faster
   for-of-iterate-array-entries                      11.2197+-0.6165           10.8237+-0.2479          might be 1.0366x faster
   for-of-iterate-array-keys                          3.7569+-0.3616            3.6137+-0.2025          might be 1.0396x faster
   for-of-iterate-array-values                        3.3894+-0.0885     ?      3.3934+-0.0863        ?
   fround                                            18.1292+-1.4539           17.8774+-0.3611          might be 1.0141x faster
   ftl-library-inlining-dataview                     60.6005+-3.3250           59.5945+-1.0366          might be 1.0169x faster
   ftl-library-inlining                             102.5514+-5.1673          100.2622+-4.2562          might be 1.0228x faster
   function-call                                     10.7756+-0.1412     ?     10.7989+-0.1373        ?
   function-dot-apply                                 2.1600+-0.1704            2.0380+-0.0557          might be 1.0599x faster
   function-test                                      2.8422+-0.1679            2.7474+-0.0760          might be 1.0345x faster
   function-with-eval                                84.1970+-2.2865     ?     84.2501+-3.3290        ?
   gcse-poly-get-less-obvious                        22.5426+-2.3360           21.4302+-0.2769          might be 1.0519x faster
   gcse-poly-get                                     24.1287+-2.3189           22.4238+-2.3242          might be 1.0760x faster
   gcse                                               3.5938+-0.4829            3.4324+-0.0398          might be 1.0470x faster
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.7181+-0.1166            2.6603+-0.0800          might be 1.0218x faster
   get-by-id-bimorphic-check-structure-elimination   
                                                      5.0238+-0.4945            4.7321+-0.0650          might be 1.0617x faster
   get-by-id-chain-from-try-block                     2.4784+-0.1132            2.4163+-0.1537          might be 1.0257x faster
   get-by-id-check-structure-elimination              3.9506+-0.2158            3.9404+-0.0427        
   get-by-id-proto-or-self                           16.9796+-1.8414     ?     18.0381+-2.0957        ? might be 1.0623x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      2.8586+-0.0332     ?      2.9137+-0.0392        ? might be 1.0193x slower
   get-by-id-self-or-proto                           16.9038+-1.4576           16.5980+-1.7433          might be 1.0184x faster
   get-by-val-out-of-bounds                           4.3463+-0.3729            4.2174+-0.1331          might be 1.0305x faster
   get-by-val-with-string-bimorphic-check-structure-elimination-simple   
                                                      2.7180+-0.0562     ?      2.8309+-0.1301        ? might be 1.0416x slower
   get-by-val-with-string-bimorphic-check-structure-elimination   
                                                      6.3052+-0.5487            6.1517+-0.1490          might be 1.0250x faster
   get-by-val-with-string-chain-from-try-block   
                                                      2.4035+-0.0273     ?      2.5562+-0.1505        ? might be 1.0635x slower
   get-by-val-with-string-check-structure-elimination   
                                                      5.7780+-0.3228            5.6174+-0.1685          might be 1.0286x faster
   get-by-val-with-string-proto-or-self              16.3012+-0.5156     ?     16.8388+-1.1084        ? might be 1.0330x slower
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple   
                                                      3.1342+-0.1575            3.1084+-0.0984        
   get-by-val-with-string-self-or-proto              16.6978+-1.2499           15.7971+-0.4090          might be 1.0570x faster
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple   
                                                      2.9325+-0.0518     ?      2.9466+-0.0775        ?
   get-by-val-with-symbol-bimorphic-check-structure-elimination   
                                                     12.4537+-0.2359           12.3475+-0.1732        
   get-by-val-with-symbol-chain-from-try-block   
                                                      2.5321+-0.1220            2.4733+-0.1044          might be 1.0237x faster
   get-by-val-with-symbol-check-structure-elimination   
                                                     11.5799+-0.3498     ?     12.5893+-3.1120        ? might be 1.0872x slower
   get-by-val-with-symbol-proto-or-self              17.5138+-1.6705     ?     18.1098+-2.1002        ? might be 1.0340x slower
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple   
                                                      3.6557+-0.0309     !      3.7824+-0.0925        ! definitely 1.0347x slower
   get-by-val-with-symbol-self-or-proto              18.2387+-4.0029           16.7940+-1.0130          might be 1.0860x faster
   get_callee_monomorphic                             2.4284+-0.1695     ?      3.0763+-0.5641        ? might be 1.2668x slower
   get_callee_polymorphic                             3.5172+-0.0820            3.4158+-0.2014          might be 1.0297x faster
   getter-no-activation                               4.9306+-0.2874            4.8782+-0.2925          might be 1.0107x faster
   getter-prototype                                   8.3937+-0.9587            8.2848+-1.1422          might be 1.0131x faster
   getter-richards-try-catch                       1048.6664+-28.0096        1013.8158+-29.7771         might be 1.0344x faster
   getter-richards                                  128.1370+-17.0216         122.4501+-15.6806         might be 1.0464x faster
   getter                                             5.6335+-0.7425     ?      5.6915+-0.6879        ? might be 1.0103x slower
   global-object-access-with-mutating-structure   
                                                      5.6742+-0.2388     ?      5.7172+-0.3622        ?
   global-var-const-infer-fire-from-opt               0.7438+-0.0776     ?      0.7799+-0.0992        ? might be 1.0485x slower
   global-var-const-infer                             0.7218+-0.1364     ?      0.7644+-0.2352        ? might be 1.0590x slower
   hard-overflow-check-equal                         29.0748+-3.1458           28.0609+-1.5640          might be 1.0361x faster
   hard-overflow-check                               26.8239+-0.9391     ?     27.4438+-1.7537        ? might be 1.0231x slower
   HashMap-put-get-iterate-keys                      27.8287+-1.9413     ?     29.1774+-3.7225        ? might be 1.0485x slower
   HashMap-put-get-iterate                           28.9170+-1.4810           28.3873+-2.3841          might be 1.0187x faster
   HashMap-string-put-get-iterate                    24.0299+-1.4740           23.8142+-1.0354        
   hoist-make-rope                                    8.4922+-0.4921            8.3471+-0.8363          might be 1.0174x faster
   hoist-poly-check-structure-effectful-loop   
                                                      3.7324+-0.2023            3.6368+-0.0433          might be 1.0263x faster
   hoist-poly-check-structure                         3.0813+-0.0513     ?      3.1184+-0.1415        ? might be 1.0120x slower
   imul-double-only                                   7.5843+-0.2716     ?      7.8321+-0.1182        ? might be 1.0327x slower
   imul-int-only                                      8.7727+-0.6827     ?      9.1214+-1.3079        ? might be 1.0397x slower
   imul-mixed                                         7.1309+-0.5430            6.9435+-0.3777          might be 1.0270x faster
   in-four-cases                                     18.5672+-0.3432           18.3702+-0.3603          might be 1.0107x faster
   in-one-case-false                                 10.2209+-0.3027     ?     11.7047+-3.6783        ? might be 1.1452x slower
   in-one-case-true                                  10.6510+-0.4965           10.2890+-0.3458          might be 1.0352x faster
   in-two-cases                                      10.7263+-0.4320     ?     10.8219+-0.8758        ?
   indexed-properties-in-objects                      3.0272+-0.2933            2.8699+-0.2517          might be 1.0548x faster
   infer-closure-const-then-mov-no-inline             3.9108+-0.5068            3.6043+-0.0192          might be 1.0851x faster
   infer-closure-const-then-mov                      17.3678+-2.4447           16.3692+-0.6363          might be 1.0610x faster
   infer-closure-const-then-put-to-scope-no-inline   
                                                     11.1572+-0.3073     ?     11.2179+-0.4389        ?
   infer-closure-const-then-put-to-scope             23.0612+-0.7706           22.8107+-0.4092          might be 1.0110x faster
   infer-closure-const-then-reenter-no-inline   
                                                     47.5253+-0.9332     ?     49.1792+-2.4607        ? might be 1.0348x slower
   infer-closure-const-then-reenter                  22.9773+-0.1275     !     23.8346+-0.6302        ! definitely 1.0373x slower
   infer-constant-global-property                     3.4646+-0.1882            3.4371+-0.0429        
   infer-constant-property                            2.6524+-0.0799     ?      2.7187+-0.2270        ? might be 1.0250x slower
   infer-one-time-closure-ten-vars                    7.8044+-0.1815     ?      8.0904+-0.5103        ? might be 1.0366x slower
   infer-one-time-closure-two-vars                    7.3600+-0.2455     ?      7.6296+-0.3245        ? might be 1.0366x slower
   infer-one-time-closure                             7.3606+-0.2065     ?      7.4163+-0.1754        ?
   infer-one-time-deep-closure                       11.3361+-0.4301           10.8643+-0.2868          might be 1.0434x faster
   inline-arguments-access                            3.7467+-0.2916     ?      5.1013+-1.7195        ? might be 1.3616x slower
   inline-arguments-aliased-access                    3.8338+-0.3661            3.6787+-0.2383          might be 1.0422x faster
   inline-arguments-local-escape                      3.7628+-0.2162     ?      3.8446+-0.3185        ? might be 1.0217x slower
   inline-get-scoped-var                              4.6946+-0.1682            4.6260+-0.1894          might be 1.0148x faster
   inlined-put-by-id-transition                       9.2303+-0.3914     ?      9.5533+-0.6056        ? might be 1.0350x slower
   inlined-put-by-val-with-string-transition   
                                                     43.5966+-3.7421           42.3875+-0.4618          might be 1.0285x faster
   inlined-put-by-val-with-symbol-transition   
                                                     44.3243+-6.0398           43.7332+-1.8454          might be 1.0135x faster
   int-or-other-abs-then-get-by-val                   4.6696+-0.3510            4.4846+-0.0427          might be 1.0412x faster
   int-or-other-abs-zero-then-get-by-val             16.0385+-0.8554     ?     16.7196+-0.9069        ? might be 1.0425x slower
   int-or-other-add-then-get-by-val                   4.2383+-0.0552     ?      4.2633+-0.1041        ?
   int-or-other-add                                   5.0542+-0.1731     ?      5.4605+-0.9747        ? might be 1.0804x slower
   int-or-other-div-then-get-by-val                   3.8167+-0.0770     ?      4.3211+-1.1043        ? might be 1.1322x slower
   int-or-other-max-then-get-by-val                   3.9577+-0.1366     ?      4.1515+-0.4346        ? might be 1.0490x slower
   int-or-other-min-then-get-by-val                   3.8676+-0.1069     ?      4.1446+-0.3627        ? might be 1.0716x slower
   int-or-other-mod-then-get-by-val                   3.6806+-0.1742     ?      3.6808+-0.0975        ?
   int-or-other-mul-then-get-by-val                   3.6530+-0.1686     ?      3.6669+-0.1072        ?
   int-or-other-neg-then-get-by-val                   4.2793+-0.1259            4.1722+-0.1702          might be 1.0257x faster
   int-or-other-neg-zero-then-get-by-val             15.9623+-0.5001     ?     16.1167+-0.6903        ?
   int-or-other-sub-then-get-by-val                   4.1899+-0.0342     ^      4.1150+-0.0339        ^ definitely 1.0182x faster
   int-or-other-sub                                   3.8612+-1.0746            3.6907+-0.6088          might be 1.0462x faster
   int-overflow-local                                 4.2452+-0.3406            4.1601+-0.0923          might be 1.0205x faster
   Int16Array-alloc-long-lived                       45.3502+-1.6401     ?     46.7292+-4.9774        ? might be 1.0304x slower
   Int16Array-bubble-sort-with-byteLength            18.2366+-1.0465     !     22.9866+-0.4364        ! definitely 1.2605x slower
   Int16Array-bubble-sort                            18.0867+-1.1051     !     21.2810+-0.4866        ! definitely 1.1766x slower
   Int16Array-load-int-mul                            1.5097+-0.0323            1.5090+-0.0519        
   Int16Array-to-Int32Array-set                      47.6233+-2.4797           46.5300+-0.8959          might be 1.0235x faster
   Int32Array-alloc-large                            12.5791+-0.7616     ?     12.8657+-0.7147        ? might be 1.0228x slower
   Int32Array-alloc-long-lived                       50.9106+-1.9551           49.1442+-1.8145          might be 1.0359x faster
   Int32Array-alloc                                   3.1104+-0.4508            2.9573+-0.2489          might be 1.0518x faster
   Int32Array-Int8Array-view-alloc                    6.5586+-0.8431            6.0727+-0.2254          might be 1.0800x faster
   int52-spill                                        4.5531+-0.1130     ?      4.6915+-0.1920        ? might be 1.0304x slower
   Int8Array-alloc-long-lived                        39.0082+-1.0628     ?     39.8475+-1.7275        ? might be 1.0215x slower
   Int8Array-load-with-byteLength                     3.4452+-0.0592            3.4191+-0.0401        
   Int8Array-load                                     3.4467+-0.1361     ?      3.5317+-0.2132        ? might be 1.0246x slower
   integer-divide                                    10.6822+-0.6200           10.6017+-0.7344        
   integer-modulo                                     1.6902+-0.1632            1.6418+-0.0650          might be 1.0295x faster
   is-boolean-fold-tricky                             4.0055+-0.3872            3.9093+-0.2400          might be 1.0246x faster
   is-boolean-fold                                    2.6561+-0.0504     ?      2.6775+-0.0837        ?
   is-function-fold-tricky-internal-function   
                                                      9.7225+-0.4443            9.6392+-0.2614        
   is-function-fold-tricky                            4.1112+-0.3128     ?      4.4465+-1.0935        ? might be 1.0816x slower
   is-function-fold                                   2.7351+-0.1183            2.6733+-0.0343          might be 1.0231x faster
   is-number-fold-tricky                              3.9971+-0.1738            3.9638+-0.0534        
   is-number-fold                                     2.6286+-0.0419     ?      2.7073+-0.1232        ? might be 1.0300x slower
   is-object-or-null-fold-functions                   2.6995+-0.0930            2.6900+-0.0193        
   is-object-or-null-fold-less-tricky                 4.1571+-0.2070            4.0397+-0.0472          might be 1.0291x faster
   is-object-or-null-fold-tricky                      4.8880+-0.2834     ?      5.4128+-0.6588        ? might be 1.1074x slower
   is-object-or-null-fold                             2.7725+-0.0996            2.6940+-0.0602          might be 1.0292x faster
   is-object-or-null-trickier-function                4.1076+-0.1010            4.0198+-0.0665          might be 1.0218x faster
   is-object-or-null-trickier-internal-function   
                                                      9.9220+-0.3365     ?     10.2238+-0.3962        ? might be 1.0304x slower
   is-object-or-null-tricky-function                  4.0455+-0.0846            4.0069+-0.0535        
   is-object-or-null-tricky-internal-function   
                                                      7.3991+-0.2752     ?      7.4666+-0.0809        ?
   is-string-fold-tricky                              4.2275+-0.6159            4.1530+-0.3421          might be 1.0179x faster
   is-string-fold                                     2.6441+-0.0445            2.6378+-0.0221        
   is-undefined-fold-tricky                           3.6704+-0.2979     ?      3.7847+-1.0370        ? might be 1.0312x slower
   is-undefined-fold                                  2.6539+-0.0488     ?      2.7265+-0.1425        ? might be 1.0274x slower
   JSONP-negative-0                                   0.2832+-0.0244            0.2752+-0.0185          might be 1.0290x faster
   large-int-captured                                 4.1141+-0.1730     ?      4.2308+-0.1833        ? might be 1.0284x slower
   large-int-neg                                     14.5450+-0.8823           14.3423+-0.7510          might be 1.0141x faster
   large-int                                         13.3562+-0.3653           13.0203+-0.5566          might be 1.0258x faster
   load-varargs-elimination                          21.5830+-2.7888     ?     21.8195+-1.9927        ? might be 1.0110x slower
   logical-not-weird-types                            3.1610+-0.1301            3.1061+-0.1031          might be 1.0177x faster
   logical-not                                        4.3964+-0.0291            4.3866+-0.1434        
   lots-of-fields                                     9.4120+-0.2883     ?      9.4122+-0.6217        ?
   make-indexed-storage                               2.9298+-0.1870     ?      3.0334+-0.1470        ? might be 1.0353x slower
   make-rope-cse                                      3.6802+-0.1081     ?      3.7300+-0.1464        ? might be 1.0135x slower
   marsaglia-larger-ints                             33.2210+-0.9075           33.1724+-1.9438        
   marsaglia-osr-entry                               23.5010+-3.1945           21.8896+-0.4764          might be 1.0736x faster
   math-with-out-of-bounds-array-values              23.0194+-1.6751           22.2487+-1.2765          might be 1.0346x faster
   max-boolean                                        2.7086+-0.0793     ?      2.7802+-0.2727        ? might be 1.0264x slower
   method-on-number                                  16.0817+-0.8546     ?     17.2286+-2.4411        ? might be 1.0713x slower
   min-boolean                                        2.7028+-0.1230     ?      2.7834+-0.1889        ? might be 1.0298x slower
   minus-boolean-double                               3.0744+-0.0367     ?      3.1432+-0.0908        ? might be 1.0224x slower
   minus-boolean                                      2.4376+-0.2103            2.3658+-0.0382          might be 1.0304x faster
   misc-strict-eq                                    29.0466+-1.0873     ?     30.4949+-1.9645        ? might be 1.0499x slower
   mod-boolean-double                                11.2804+-0.4355     ?     11.6716+-1.2118        ? might be 1.0347x slower
   mod-boolean                                        8.3440+-0.1253     ?      8.3530+-0.1267        ?
   mul-boolean-double                                 3.7204+-0.2643            3.7049+-0.1704        
   mul-boolean                                        2.8214+-0.0523     ?      2.9040+-0.1780        ? might be 1.0293x slower
   neg-boolean                                        3.1344+-0.2022            3.1181+-0.0737        
   negative-zero-divide                               0.3678+-0.0302            0.3599+-0.0189          might be 1.0218x faster
   negative-zero-modulo                               0.3758+-0.0448     ?      0.3823+-0.0667        ? might be 1.0173x slower
   negative-zero-negate                               0.3327+-0.0067     ?      0.3447+-0.0265        ? might be 1.0361x slower
   nested-function-parsing                           47.2879+-3.1897           46.9286+-1.6241        
   new-array-buffer-dead                             90.8338+-6.2374           88.3044+-1.4349          might be 1.0286x faster
   new-array-buffer-push                              6.4858+-0.5603     ?      6.5210+-0.5068        ?
   new-array-dead                                    15.3660+-1.5955           15.1783+-1.0851          might be 1.0124x faster
   new-array-push                                     3.7296+-0.2838            3.6932+-0.3360        
   no-inline-constructor                             31.2255+-1.1086     ?     32.1096+-2.9982        ? might be 1.0283x slower
   number-test                                        3.0324+-0.0427     ?      3.1300+-0.1304        ? might be 1.0322x slower
   object-closure-call                                4.8304+-0.0310     ?      4.8833+-0.1591        ? might be 1.0110x slower
   object-get-own-property-symbols-on-large-array   
                                                      4.6917+-1.0653            4.3891+-0.1270          might be 1.0689x faster
   object-test                                        2.7924+-0.1871            2.7744+-0.1689        
   obvious-sink-pathology-taken                      98.5116+-1.9396     ?     98.6770+-2.9661        ?
   obvious-sink-pathology                            30.4033+-1.0448           30.2486+-1.1713        
   obviously-elidable-new-object                     30.4155+-1.4412           29.5697+-0.9288          might be 1.0286x faster
   plus-boolean-arith                                 2.5470+-0.3828     ?      2.6559+-0.5509        ? might be 1.0428x slower
   plus-boolean-double                                3.1172+-0.0566     ?      3.1595+-0.1393        ? might be 1.0136x slower
   plus-boolean                                       2.6262+-0.1012            2.5956+-0.2142          might be 1.0118x faster
   poly-chain-access-different-prototypes-simple   
                                                      2.9096+-0.7499            2.5925+-0.0376          might be 1.1223x faster
   poly-chain-access-different-prototypes             2.5839+-0.0282     ?      2.6790+-0.2426        ? might be 1.0368x slower
   poly-chain-access-simpler                          2.6329+-0.2033     ?      2.6641+-0.1609        ? might be 1.0119x slower
   poly-chain-access                                  2.5785+-0.0652            2.5541+-0.0911        
   poly-stricteq                                     55.6777+-3.4477           55.2709+-1.1736        
   polymorphic-array-call                             1.2375+-0.0661     ?      1.2862+-0.0810        ? might be 1.0394x slower
   polymorphic-get-by-id                              2.9557+-0.1043            2.8973+-0.0555          might be 1.0202x faster
   polymorphic-put-by-id                             28.6547+-0.7492           28.1863+-1.2392          might be 1.0166x faster
   polymorphic-put-by-val-with-string                29.3873+-1.8661     ?     30.1665+-2.4354        ? might be 1.0265x slower
   polymorphic-put-by-val-with-symbol                28.5618+-1.3291     ?     30.3577+-2.9383        ? might be 1.0629x slower
   polymorphic-structure                             13.1352+-0.8458           12.5620+-0.2657          might be 1.0456x faster
   polyvariant-monomorphic-get-by-id                  6.4662+-0.8416     ?      8.4781+-3.0226        ? might be 1.3112x slower
   proto-getter-access                                8.4834+-0.3113            8.2262+-0.1137          might be 1.0313x faster
   prototype-access-with-mutating-prototype           5.4614+-0.2007     ?      5.5870+-0.3961        ? might be 1.0230x slower
   put-by-id-replace-and-transition                   8.1412+-0.9510            7.6584+-0.1285          might be 1.0630x faster
   put-by-id-slightly-polymorphic                     2.7030+-0.0680     ?      2.8010+-0.1725        ? might be 1.0362x slower
   put-by-id                                          9.7091+-0.3950     ?      9.9709+-0.6281        ? might be 1.0270x slower
   put-by-val-direct                                  0.3446+-0.0155     ?      0.3694+-0.0252        ? might be 1.0718x slower
   put-by-val-large-index-blank-indexing-type   
                                                      5.3026+-0.1731     ?      5.4196+-0.0680        ? might be 1.0221x slower
   put-by-val-machine-int                             2.8142+-0.7335            2.6460+-0.2065          might be 1.0635x faster
   put-by-val-with-string-replace-and-transition   
                                                     11.7597+-2.6047           11.2822+-0.9953          might be 1.0423x faster
   put-by-val-with-string-slightly-polymorphic   
                                                      3.0305+-0.1210     ?      3.0417+-0.1207        ?
   put-by-val-with-string                            10.3558+-0.2464     ?     10.9613+-0.7472        ? might be 1.0585x slower
   put-by-val-with-symbol-replace-and-transition   
                                                     11.8803+-0.5061     ?     12.4097+-1.1627        ? might be 1.0446x slower
   put-by-val-with-symbol-slightly-polymorphic   
                                                      3.2760+-0.0549            3.2487+-0.1779        
   put-by-val-with-symbol                            10.8193+-0.6517     ?     11.1075+-0.7756        ? might be 1.0266x slower
   rare-osr-exit-on-local                            14.5360+-1.2420           14.0629+-0.4874          might be 1.0336x faster
   raytrace-with-empty-try-catch                      5.4923+-0.4648            5.4292+-0.4107          might be 1.0116x faster
   raytrace-with-try-catch                           10.6770+-1.7018            9.9727+-0.2972          might be 1.0706x faster
   register-pressure-from-osr                        16.7854+-0.4993           16.2448+-0.2864          might be 1.0333x faster
   repeat-multi-get-by-offset                        22.6305+-0.7849     ?     22.6980+-0.2880        ?
   richards-empty-try-catch                          71.6922+-1.0434     ?     75.7991+-6.0449        ? might be 1.0573x slower
   richards-try-catch                               241.1811+-4.2577     ?    243.5395+-10.0137       ?
   setter-prototype                                   8.3781+-1.2024            7.9510+-0.2652          might be 1.0537x faster
   setter                                             6.3433+-0.9309            5.4824+-0.3858          might be 1.1570x faster
   simple-activation-demo                            24.8235+-1.0501           24.0968+-0.7077          might be 1.0302x faster
   simple-getter-access                              10.9160+-0.6412           10.8687+-0.1730        
   simple-poly-call-nested                            8.8516+-0.4480     ?      9.0648+-0.6486        ? might be 1.0241x slower
   simple-poly-call                                   1.4803+-0.3082            1.2985+-0.0702          might be 1.1400x faster
   sin-boolean                                       20.5022+-2.5595           19.5835+-1.8078          might be 1.0469x faster
   singleton-scope                                   65.4546+-7.3064     ?     67.3123+-4.3451        ? might be 1.0284x slower
   sink-function                                     10.4403+-1.1016            9.7930+-0.7607          might be 1.0661x faster
   sink-huge-activation                              16.1595+-0.7799           15.7345+-0.8732          might be 1.0270x faster
   sinkable-new-object-dag                           53.0458+-2.8627     ?     55.6769+-3.8141        ? might be 1.0496x slower
   sinkable-new-object-taken                         42.0523+-2.1385           41.5013+-1.8950          might be 1.0133x faster
   sinkable-new-object                               30.0297+-0.5715     ?     30.1630+-0.8600        ?
   slow-array-profile-convergence                     2.6390+-0.0881            2.5564+-0.1163          might be 1.0323x faster
   slow-convergence                                   2.4880+-0.2342     ?      2.5614+-0.2062        ? might be 1.0295x slower
   slow-ternaries                                    18.9313+-4.8091           18.2568+-1.4570          might be 1.0369x faster
   sorting-benchmark                                 17.3010+-0.4804     ?     17.8918+-0.8431        ? might be 1.0341x slower
   sparse-conditional                                 1.1800+-0.0261     ?      1.2651+-0.1547        ? might be 1.0722x slower
   splice-to-remove                                  12.2555+-0.2623     ?     12.3840+-0.7041        ? might be 1.0105x slower
   string-char-code-at                               15.3091+-2.5906           13.0959+-0.1779          might be 1.1690x faster
   string-concat-object                               2.4122+-0.5254            2.2030+-0.1300          might be 1.0950x faster
   string-concat-pair-object                          2.1379+-0.0618            2.0822+-0.0879          might be 1.0268x faster
   string-concat-pair-simple                          9.8256+-0.7599     ?     10.2390+-1.3859        ? might be 1.0421x slower
   string-concat-simple                               9.7703+-1.2012     ?      9.9089+-0.9068        ? might be 1.0142x slower
   string-cons-repeat                                 6.7559+-0.4447     ?      7.1316+-0.8253        ? might be 1.0556x slower
   string-cons-tower                                  6.6171+-0.3817     ?      6.7585+-0.3833        ? might be 1.0214x slower
   string-equality                                   18.5240+-0.5541     ?     18.5402+-0.6772        ?
   string-get-by-val-big-char                         6.5913+-0.4142     ?      6.7442+-0.4124        ? might be 1.0232x slower
   string-get-by-val-out-of-bounds-insane             3.1063+-0.0794     !      3.4075+-0.1704        ! definitely 1.0970x slower
   string-get-by-val-out-of-bounds                    3.9663+-0.0968     ?      4.0396+-0.2108        ? might be 1.0185x slower
   string-get-by-val                                  2.9362+-0.2468            2.8223+-0.0428          might be 1.0404x faster
   string-hash                                        1.9108+-0.1512     ?      2.0015+-0.1935        ? might be 1.0474x slower
   string-long-ident-equality                        15.3656+-0.7069     ?     15.5182+-1.3480        ?
   string-out-of-bounds                              10.3516+-0.5649     ?     10.6556+-0.5740        ? might be 1.0294x slower
   string-repeat-arith                               27.1805+-0.8199     ?     28.3769+-4.6810        ? might be 1.0440x slower
   string-sub                                        57.2643+-3.5215           54.3238+-2.1378          might be 1.0541x faster
   string-test                                        2.9241+-0.0377            2.9076+-0.0414        
   string-var-equality                               29.1103+-4.3248           27.9296+-1.6396          might be 1.0423x faster
   structure-hoist-over-transitions                   2.3761+-0.0775     ?      2.4362+-0.2285        ? might be 1.0253x slower
   substring-concat-weird                            35.3274+-0.9610     ?     37.2633+-2.2833        ? might be 1.0548x slower
   substring-concat                                  40.9032+-1.2125     ?     41.3151+-3.4707        ? might be 1.0101x slower
   substring                                         47.6965+-2.4566           46.9777+-1.8161          might be 1.0153x faster
   switch-char-constant                               2.6969+-0.0682     ?      2.7048+-0.0361        ?
   switch-char                                        6.4683+-1.3642            6.4341+-1.4367        
   switch-constant                                    8.3125+-0.8263     ?      8.6270+-0.7252        ? might be 1.0378x slower
   switch-string-basic-big-var                       14.9732+-0.2184     ?     15.0809+-0.5273        ?
   switch-string-basic-big                           15.5853+-0.5437           15.5821+-0.3280        
   switch-string-basic-var                           14.5590+-1.1603           13.8795+-0.6760          might be 1.0490x faster
   switch-string-basic                               13.0754+-0.3367     ?     13.5687+-0.3293        ? might be 1.0377x slower
   switch-string-big-length-tower-var                18.5850+-0.8896           18.3687+-1.1342          might be 1.0118x faster
   switch-string-length-tower-var                    13.8989+-0.8687     ?     15.9358+-6.3721        ? might be 1.1466x slower
   switch-string-length-tower                        12.8767+-1.4143     ?     14.4268+-3.8597        ? might be 1.1204x slower
   switch-string-short                               13.6551+-1.6640           12.2795+-0.5669          might be 1.1120x faster
   switch                                            10.4449+-0.2514     ?     11.9089+-2.1197        ? might be 1.1402x slower
   tear-off-arguments-simple                          3.3790+-0.4458            3.3739+-0.4827        
   tear-off-arguments                                 4.0663+-0.1074            4.0545+-0.1537        
   temporal-structure                                11.9174+-0.3435           11.7729+-0.3383          might be 1.0123x faster
   to-int32-boolean                                  13.6026+-1.6414           12.7845+-0.3351          might be 1.0640x faster
   try-catch-get-by-val-cloned-arguments              9.4069+-0.5299     ?      9.7902+-0.8841        ? might be 1.0407x slower
   try-catch-get-by-val-direct-arguments              2.2515+-0.1295            2.1430+-0.3807          might be 1.0506x faster
   try-catch-get-by-val-scoped-arguments              4.4825+-0.2384     ?      5.0721+-1.0978        ? might be 1.1315x slower
   typed-array-get-set-by-val-profiling              27.9195+-0.4904     ?     28.6694+-1.2855        ? might be 1.0269x slower
   undefined-property-access                        223.7152+-7.5880          219.2866+-5.5572          might be 1.0202x faster
   undefined-test                                     3.0654+-0.1101     ?      3.4283+-0.7443        ? might be 1.1184x slower
   unprofiled-licm                                    9.6305+-0.6064            9.3575+-0.1916          might be 1.0292x faster
   v8-raytrace-with-empty-try-catch                  25.2331+-1.1381           24.6231+-1.5966          might be 1.0248x faster
   v8-raytrace-with-try-catch                        61.6745+-1.3695     ?     62.7915+-2.6779        ? might be 1.0181x slower
   varargs-call                                      13.3997+-0.3756     ?     14.6288+-2.0211        ? might be 1.0917x slower
   varargs-construct-inline                          22.8887+-1.8688           22.6438+-1.2554          might be 1.0108x faster
   varargs-construct                                 20.9871+-0.8224     ?     22.9686+-6.5820        ? might be 1.0944x slower
   varargs-inline                                     8.8368+-0.2415     ?      9.2953+-0.9086        ? might be 1.0519x slower
   varargs-strict-mode                               10.8712+-1.1241           10.4580+-0.9322          might be 1.0395x faster
   varargs                                           10.2159+-0.5462           10.0581+-0.1973          might be 1.0157x faster
   weird-inlining-const-prop                          2.3569+-0.2413            2.2557+-0.1660          might be 1.0449x faster

   <geometric>                                        8.2048+-0.0352     ?      8.2434+-0.0572        ? might be 1.0047x slower

                                                        TipOfTree               FixCopiedSpace                                  
AsmBench:
   bigfib.cpp                                       455.1402+-8.6550     ?    459.8617+-15.2251       ? might be 1.0104x slower
   cray.c                                           396.9618+-7.2343     ?    404.3281+-12.3137       ? might be 1.0186x slower
   dry.c                                            432.2891+-13.0264         423.9412+-9.6189          might be 1.0197x faster
   FloatMM.c                                        703.2460+-11.3608         701.4260+-7.8377        
   gcc-loops.cpp                                   3517.8320+-24.1046        3505.3517+-30.6426       
   n-body.c                                         845.9297+-11.2608         843.3041+-8.8868        
   Quicksort.c                                      417.0189+-8.6145     ?    418.2319+-12.8214       ?
   stepanov_container.cpp                          3613.0169+-50.2972    ?   3787.6472+-439.0971      ? might be 1.0483x slower
   Towers.c                                         241.4386+-10.6602         238.7921+-9.9287          might be 1.0111x faster

   <geometric>                                      730.6750+-4.6671     ?    733.5150+-11.9762       ? might be 1.0039x slower

                                                        TipOfTree               FixCopiedSpace                                  
CompressionBench:
   huffman                                           61.8119+-0.8302           61.5134+-1.9500        
   arithmetic-simple                                284.7485+-9.7880          275.9785+-3.1879          might be 1.0318x faster
   arithmetic-precise                               263.6670+-10.7136         252.2924+-4.6120          might be 1.0451x faster
   arithmetic-complex-precise                       255.2839+-4.1047     ?    259.1010+-6.9896        ? might be 1.0150x slower
   arithmetic-precise-order-0                       293.2223+-7.4550     ?    294.0639+-5.5488        ?
   arithmetic-precise-order-1                       318.6818+-13.4544         312.2461+-7.2358          might be 1.0206x faster
   arithmetic-precise-order-2                       375.6613+-10.9248         370.0618+-21.7606         might be 1.0151x faster
   arithmetic-simple-order-1                        332.5595+-2.9513     ?    336.1376+-13.8921       ? might be 1.0108x slower
   arithmetic-simple-order-2                        375.5081+-12.7832    ?    385.2797+-8.4504        ? might be 1.0260x slower
   lz-string                                        333.2141+-20.7542         317.3293+-8.2851          might be 1.0501x faster

   <geometric>                                      265.2351+-1.3158          262.3610+-3.4897          might be 1.0110x faster

                                                        TipOfTree               FixCopiedSpace                                  
Geomean of preferred means:
   <scaled-result>                                   51.4099+-0.1422           51.3610+-0.2696          might be 1.0010x faster
Comment 3 Filip Pizlo 2015-10-17 00:05:49 PDT
Created attachment 263368 [details]
the patch
Comment 4 Andreas Kling 2015-10-17 09:04:23 PDT
Comment on attachment 263368 [details]
the patch

r=me
Comment 5 Filip Pizlo 2015-10-17 10:27:27 PDT
Landed in http://trac.webkit.org/changeset/191240
Comment 7 Filip Pizlo 2015-10-17 11:36:11 PDT
(In reply to comment #6)
> This change appears to have broken some Mac and iOS builds:
> https://build.webkit.org/builders/Apple%20El%20Capitan%20Release%20%2832-
> bit%20Build%29/builds/465
> 
> https://build.webkit.org/builders/Apple%20iOS%209%20Release%20%28Build%29/
> builds/398

Oops, forgot to include "JSCInlines.h" from CopiedBlock.cpp
Comment 8 Filip Pizlo 2015-10-17 11:36:51 PDT
I'm afk for ~10mins, I can land that fix after. Or relate the patch of you want to roll out. Or you could try the fix I suggested. ;-)
Comment 9 Filip Pizlo 2015-10-17 13:27:29 PDT
(In reply to comment #8)
> I'm afk for ~10mins, I can land that fix after. Or relate the patch of you
> want to roll out. Or you could try the fix I suggested. ;-)

Yup, that was a rookie mistake.  Relanding with fix shortly...
Comment 10 Filip Pizlo 2015-10-17 13:28:45 PDT
Landed in http://trac.webkit.org/changeset/191248