Bug 145610 - Object allocation sinking phase should sink NewArray and NewArrayBuffer
Summary: Object allocation sinking phase should sink NewArray and NewArrayBuffer
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Basile Clement
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-06-03 12:20 PDT by Basile Clement
Modified: 2015-06-15 15:33 PDT (History)
5 users (show)

See Also:


Attachments
Patch (34.27 KB, patch)
2015-06-03 12:39 PDT, Basile Clement
no flags Details | Formatted Diff | Diff
Patch (34.73 KB, patch)
2015-06-15 10:11 PDT, Basile Clement
no flags Details | Formatted Diff | Diff
Patch (34.86 KB, patch)
2015-06-15 12:27 PDT, Basile Clement
fpizlo: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Basile Clement 2015-06-03 12:20:49 PDT
Allow sinking of NewArray and NewArrayBuffer
Comment 1 Basile Clement 2015-06-03 12:39:58 PDT
Created attachment 254197 [details]
Patch
Comment 2 Basile Clement 2015-06-03 12:49:44 PDT
Benchmark looks good, except Kraken/audio-dft that seems to regress for some reason.

Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on Basiles-Mac-Pro (MacPro6,1).

VMs tested:
"r185155" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc
"SinkNewArray" at /Volumes/Data/secondary/OpenSource/WebKitBuild/SinkNewArray/Release/jsc

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.

                                                         r185155                 SinkNewArray                                   
SunSpider:
   3d-cube                                            6.8622+-0.1667            6.8225+-0.0636        
   3d-morph                                           7.5643+-0.0574     ?      7.6480+-0.2879        ? might be 1.0111x slower
   3d-raytrace                                        8.4341+-0.0780     ?      8.4501+-0.1151        ?
   access-binary-trees                                3.0360+-0.1358            2.9825+-0.0988          might be 1.0179x faster
   access-fannkuch                                    7.9783+-0.0836     ?      8.0632+-0.1609        ? might be 1.0106x slower
   access-nbody                                       3.9947+-0.0177     ?      4.0244+-0.0382        ?
   access-nsieve                                      4.7198+-0.1487     ?      4.7310+-0.1320        ?
   bitops-3bit-bits-in-byte                           2.1392+-0.0241            2.1108+-0.0406          might be 1.0134x faster
   bitops-bits-in-byte                                4.7397+-0.0734            4.7328+-0.0355        
   bitops-bitwise-and                                 2.8522+-0.0314     ?      2.8536+-0.0310        ?
   bitops-nsieve-bits                                 4.1845+-0.0219     ?      4.2853+-0.3693        ? might be 1.0241x slower
   controlflow-recursive                              3.2451+-0.1568            3.1704+-0.0179          might be 1.0236x faster
   crypto-aes                                         6.3136+-0.1252            6.1613+-0.0501          might be 1.0247x faster
   crypto-md5                                         3.7916+-0.0366     ^      3.5629+-0.0652        ^ definitely 1.0642x faster
   crypto-sha1                                        3.4529+-0.0828            3.3988+-0.0392          might be 1.0159x faster
   date-format-tofte                                 12.3647+-0.4801     ?     12.3957+-0.1103        ?
   date-format-xparb                                  7.7714+-0.2859            7.7509+-0.1162        
   math-cordic                                        4.0865+-0.0601            4.0752+-0.0290        
   math-partial-sums                                  7.1614+-0.0752            7.0480+-0.0471          might be 1.0161x faster
   math-spectral-norm                                 2.6748+-0.0597     ?      2.6758+-0.0985        ?
   regexp-dna                                         9.8165+-0.0661     ?      9.9540+-0.2996        ? might be 1.0140x slower
   string-base64                                      6.5442+-0.0276            6.5169+-0.1634        
   string-fasta                                       8.6782+-0.0405     ?      8.7174+-0.1017        ?
   string-tagcloud                                   12.3016+-0.1617     ?     12.5777+-0.5154        ? might be 1.0224x slower
   string-unpack-code                                27.2416+-0.3766           27.1159+-0.3190        
   string-validate-input                              7.4090+-0.0774     ?      7.4229+-0.0780        ?

   <arithmetic>                                       6.8984+-0.0324            6.8942+-0.0244          might be 1.0006x faster

                                                         r185155                 SinkNewArray                                   
LongSpider:
   3d-cube                                         1180.5798+-2.9622     !   1191.5290+-7.1113        ! definitely 1.0093x slower
   3d-morph                                        2081.3701+-0.4751         2081.0582+-0.4247        
   3d-raytrace                                      953.7150+-2.8373     ?    955.7830+-4.3622        ?
   access-binary-trees                             1210.0076+-3.5877     ?   1210.3552+-2.8201        ?
   access-fannkuch                                  444.4542+-8.6395     ?    453.3019+-13.0334       ? might be 1.0199x slower
   access-nbody                                     848.1415+-0.5970     ^    846.3759+-0.4534        ^ definitely 1.0021x faster
   access-nsieve                                    554.9745+-0.9593     ?    555.6383+-1.4896        ?
   bitops-3bit-bits-in-byte                          61.8364+-0.4419     ?     62.1258+-0.2567        ?
   bitops-bits-in-byte                              123.5986+-3.1571          122.5666+-0.6548        
   bitops-nsieve-bits                               594.3241+-3.0174          591.9820+-1.6328        
   controlflow-recursive                            659.1727+-12.6604    ?    666.5913+-9.5695        ? might be 1.0113x slower
   crypto-aes                                       898.6050+-3.3536          898.3972+-3.3681        
   crypto-md5                                       710.3269+-5.1937     ?    711.0428+-3.3843        ?
   crypto-sha1                                      828.6254+-4.2009     ?    834.5878+-2.4966        ?
   date-format-tofte                                966.7680+-9.3101     !    992.2595+-6.8754        ! definitely 1.0264x slower
   date-format-xparb                               1070.6454+-42.3034        1028.8084+-13.3004         might be 1.0407x faster
   hash-map                                         236.5599+-3.3174          235.6975+-2.3918        
   math-cordic                                      803.0132+-0.6187     ?    803.6917+-1.3060        ?
   math-partial-sums                                689.4597+-3.3576          689.0725+-3.1986        
   math-spectral-norm                               766.1008+-0.7716     ?    766.4632+-0.2172        ?
   string-base64                                    513.6718+-0.3555     ^    511.6399+-0.7087        ^ definitely 1.0040x faster
   string-fasta                                     559.5537+-0.4761     !    565.3187+-2.3628        ! definitely 1.0103x slower
   string-tagcloud                                  263.3042+-2.0196          262.6153+-0.8484        

   <geometric>                                      598.2158+-0.9851     ?    598.9835+-1.0499        ? might be 1.0013x slower

                                                         r185155                 SinkNewArray                                   
V8Spider:
   crypto                                            69.0458+-0.9457     ^     67.9836+-0.0514        ^ definitely 1.0156x faster
   deltablue                                         93.3756+-1.4924     ?     94.3508+-1.8003        ? might be 1.0104x slower
   earley-boyer                                      59.9181+-0.5829           59.2413+-0.7433          might be 1.0114x faster
   raytrace                                          41.7720+-0.8691           41.3510+-0.4954          might be 1.0102x faster
   regexp                                           108.2910+-1.7223          107.9690+-0.4038        
   richards                                          97.4963+-0.5869           97.0130+-1.4301        
   splay                                             49.1567+-2.0878           47.6984+-2.3589          might be 1.0306x faster

   <geometric>                                       70.1582+-0.5878           69.5111+-0.3887          might be 1.0093x faster

                                                         r185155                 SinkNewArray                                   
Octane:
   encrypt                                           0.30651+-0.00087    ?     0.30670+-0.00067       ?
   decrypt                                           5.32186+-0.01387          5.30769+-0.03034       
   deltablue                                x2       0.26152+-0.00861          0.26062+-0.00764       
   earley                                            0.48246+-0.00557    ?     0.48260+-0.00183       ?
   boyer                                             6.82992+-0.01124          6.82751+-0.00806       
   navier-stokes                            x2       7.05322+-0.00104    ?     7.05587+-0.00759       ?
   raytrace                                 x2       1.58014+-0.06300    ?     1.62115+-0.04953       ? might be 1.0260x slower
   richards                                 x2       0.16904+-0.00125          0.16836+-0.00102       
   splay                                    x2       0.47948+-0.00434    ?     0.48175+-0.00289       ?
   regexp                                   x2      40.30693+-0.10648    ^    40.09709+-0.03883       ^ definitely 1.0052x faster
   pdfjs                                    x2      56.33257+-0.18364    ^    55.97771+-0.11080       ^ definitely 1.0063x faster
   mandreel                                 x2      70.30266+-0.60227         70.17787+-0.17855       
   gbemu                                    x2      60.07628+-0.40360    ?    60.29855+-0.94238       ?
   closure                                           0.82770+-0.00434    ^     0.79560+-0.00205       ^ definitely 1.0403x faster
   jquery                                           10.54652+-0.04268    ^    10.17237+-0.06325       ^ definitely 1.0368x faster
   box2d                                    x2      17.72591+-0.03080         17.70808+-0.06723       
   zlib                                     x2     524.01217+-1.06646    ?   524.36111+-1.61727       ?
   typescript                               x2    1088.86519+-17.17017      1082.00688+-23.56197      

   <geometric>                                       8.83795+-0.04277          8.81924+-0.01972         might be 1.0021x faster

                                                         r185155                 SinkNewArray                                   
Kraken:
   ai-astar                                          416.164+-5.776      ?     417.480+-7.920         ?
   audio-beat-detection                              142.461+-1.229      ?     142.518+-0.846         ?
   audio-dft                                         149.814+-0.376      !     152.483+-2.032         ! definitely 1.0178x slower
   audio-fft                                         109.522+-3.532            107.672+-0.468           might be 1.0172x faster
   audio-oscillator                                   97.975+-0.880             97.540+-0.083         
   imaging-darkroom                                  140.212+-0.089      !     140.616+-0.254         ! definitely 1.0029x slower
   imaging-desaturate                                 87.364+-0.252      ?      87.566+-0.338         ?
   imaging-gaussian-blur                             147.139+-0.681      ?     149.668+-6.378         ? might be 1.0172x slower
   json-parse-financial                               63.250+-0.496             63.108+-0.356         
   json-stringify-tinderbox                           38.362+-0.684             38.299+-0.056         
   stanford-crypto-aes                                75.765+-0.655             75.699+-1.005         
   stanford-crypto-ccm                                64.245+-2.952             63.826+-1.400         
   stanford-crypto-pbkdf2                            145.343+-1.352      ?     145.983+-1.248         ?
   stanford-crypto-sha256-iterative                   56.637+-0.300      ?      57.086+-0.912         ?

   <arithmetic>                                      123.875+-0.913      ?     124.253+-0.507         ? might be 1.0031x slower

                                                         r185155                 SinkNewArray                                   
JSRegress:
   abs-boolean                                        3.4892+-0.0463            3.4690+-0.0420        
   adapt-to-double-divide                            21.8505+-0.2191     ?     21.8683+-0.7134        ?
   aliased-arguments-getbyval                         1.7873+-0.2078            1.7520+-0.0799          might be 1.0201x faster
   allocate-big-object                                3.3056+-0.0384     ?      3.3331+-0.1480        ?
   arguments-named-and-reflective                    14.7899+-0.2642     ?     15.2091+-0.3104        ? might be 1.0283x slower
   arguments-out-of-bounds                           19.1665+-0.2589           19.0792+-0.0327        
   arguments-strict-mode                             12.9889+-0.5213           12.9550+-0.3873        
   arguments                                         11.4373+-0.1382           11.2899+-0.2179          might be 1.0131x faster
   arity-mismatch-inlining                            1.2028+-0.0320     ?      1.2133+-0.0292        ?
   array-access-polymorphic-structure                 8.3097+-0.0536     ?      8.4573+-0.2501        ? might be 1.0178x slower
   array-nonarray-polymorhpic-access                 43.0949+-0.4283           42.8983+-0.5122        
   array-prototype-every                            108.5796+-0.2128          108.4701+-0.4131        
   array-prototype-forEach                          106.3185+-0.5778     !    107.8065+-0.6784        ! definitely 1.0140x slower
   array-prototype-map                              117.9091+-0.5048     ?    118.8726+-0.6299        ?
   array-prototype-reduce                           102.9709+-0.5664     ?    103.5614+-1.3385        ?
   array-prototype-reduceRight                      107.4561+-11.9641         102.9720+-0.5623          might be 1.0435x faster
   array-prototype-some                             108.9790+-1.2660          108.9102+-0.6111        
   array-splice-contiguous                           55.1587+-0.7529     ?     55.8205+-0.5866        ? might be 1.0120x slower
   array-with-double-add                              5.3809+-0.0318            5.3694+-0.0556        
   array-with-double-increment                        4.2922+-0.0601            4.2568+-0.0224        
   array-with-double-mul-add                          6.6361+-0.0455     ?      6.7821+-0.2737        ? might be 1.0220x slower
   array-with-double-sum                              4.3939+-0.2201            4.2657+-0.0255          might be 1.0301x faster
   array-with-int32-add-sub                           8.6269+-0.0329     ?      8.7515+-0.1831        ? might be 1.0144x slower
   array-with-int32-or-double-sum                     4.3400+-0.0375     ?      4.3488+-0.0280        ?
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     43.8085+-0.3293     ?     45.0854+-0.9872        ? might be 1.0291x slower
   ArrayBuffer-DataView-alloc-long-lived             18.4312+-0.1766     ?     18.4651+-0.4173        ?
   ArrayBuffer-Int32Array-byteOffset                  5.0875+-0.0480     ?      5.2563+-0.4738        ? might be 1.0332x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     48.6716+-1.5718           48.1833+-2.0897          might be 1.0101x faster
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     29.0753+-0.2541     ?     30.4884+-2.3432        ? might be 1.0486x slower
   ArrayBuffer-Int8Array-alloc-long-lived            17.2108+-0.0657     ?     18.4673+-1.8881        ? might be 1.0730x slower
   ArrayBuffer-Int8Array-alloc                       13.4367+-0.1224           13.4179+-0.2423        
   asmjs_bool_bug                                     9.9940+-0.0888     ?     10.0876+-0.1479        ?
   assign-custom-setter-polymorphic                   4.5039+-0.2272     ^      4.0906+-0.0473        ^ definitely 1.1010x faster
   assign-custom-setter                               6.1237+-0.2397     ^      5.6071+-0.0307        ^ definitely 1.0921x faster
   basic-set                                         12.2149+-0.2281     ?     12.2424+-0.1688        ?
   big-int-mul                                        5.1993+-0.0280     ?      5.2424+-0.0457        ?
   boolean-test                                       3.9935+-0.0313     ?      4.0054+-0.0345        ?
   branch-fold                                        5.0721+-0.2566            4.9532+-0.0388          might be 1.0240x faster
   branch-on-string-as-boolean                       25.6517+-0.5425           25.3355+-0.3522          might be 1.0125x faster
   by-val-generic                                    10.2267+-0.1785     ?     10.2913+-0.2004        ?
   call-spread-apply                                 43.9075+-0.7217     ^     38.4023+-0.7471        ^ definitely 1.1434x faster
   call-spread-call                                  34.9072+-1.3053           32.4992+-1.2681          might be 1.0741x faster
   captured-assignments                               0.7099+-0.0300     ?      0.7294+-0.0355        ? might be 1.0274x slower
   cast-int-to-double                                 6.7537+-0.0459            6.7464+-0.0438        
   cell-argument                                     10.7102+-0.1471     ?     10.8335+-0.2823        ? might be 1.0115x slower
   cfg-simplify                                       3.7094+-0.0706            3.6839+-0.0418        
   chain-getter-access                               12.0602+-0.1730           11.9431+-0.1592        
   cmpeq-obj-to-obj-other                            12.5204+-0.0996     ?     12.5601+-0.2339        ?
   constant-test                                      6.3764+-0.0476     ?      6.3899+-0.1232        ?
   create-lots-of-functions                          13.5106+-0.1626     ?     13.6611+-0.3292        ? might be 1.0111x slower
   cse-new-array-buffer                              20.9000+-0.2820     ^      9.0685+-0.0528        ^ definitely 2.3047x faster
   cse-new-array                                     21.7758+-0.6473     ^     10.2520+-0.3322        ^ definitely 2.1241x faster
   DataView-custom-properties                        51.4642+-0.3326     ?     53.4373+-1.9094        ? might be 1.0383x slower
   deconstructing-parameters-overridden-by-function   
                                                      0.8230+-0.0777            0.8042+-0.0297          might be 1.0233x faster
   delay-tear-off-arguments-strictmode               18.7885+-0.1827     ^     17.9836+-0.3977        ^ definitely 1.0448x faster
   deltablue-varargs                                275.9174+-10.5111         273.5146+-7.9299        
   destructuring-arguments                           21.4673+-0.6926           21.1427+-0.2381          might be 1.0154x faster
   destructuring-swap                                 6.5738+-0.1143     ?      6.6621+-0.2976        ? might be 1.0134x slower
   direct-arguments-getbyval                          1.7348+-0.0566     ?      1.7430+-0.1097        ?
   div-boolean-double                                 6.6791+-0.0186     ?      6.6887+-0.0060        ?
   div-boolean                                       10.0332+-0.0217           10.0293+-0.0188        
   double-get-by-val-out-of-bounds                    5.6527+-0.2083            5.6431+-0.1846        
   double-pollution-getbyval                         11.5264+-0.2644           11.4715+-0.0308        
   double-pollution-putbyoffset                       5.5224+-0.0596            5.5095+-0.0771        
   double-to-int32-typed-array-no-inline              2.9791+-0.0418            2.9618+-0.0544        
   double-to-int32-typed-array                        2.6241+-0.0483     ?      2.6497+-0.0410        ?
   double-to-uint32-typed-array-no-inline             3.0038+-0.0477     ?      3.0246+-0.0878        ?
   double-to-uint32-typed-array                       2.7305+-0.0633            2.6921+-0.0647          might be 1.0143x faster
   elidable-new-object-dag                           51.4230+-1.4776     ?     51.8464+-0.6294        ?
   elidable-new-object-roflcopter                    53.1587+-0.7393     ?     53.2649+-0.7540        ?
   elidable-new-object-then-call                     46.4349+-2.2382     ?     48.1708+-0.9522        ? might be 1.0374x slower
   elidable-new-object-tree                          54.3972+-1.1790     ?     54.4475+-1.3752        ?
   empty-string-plus-int                              6.8987+-0.0683            6.8841+-0.0728        
   emscripten-cube2hash                              48.9580+-0.2771           48.9501+-0.8944        
   exit-length-on-plain-object                       17.8538+-0.5472           17.7239+-0.2269        
   external-arguments-getbyval                        1.6809+-0.1055     ?      1.6943+-0.0954        ?
   external-arguments-putbyval                        3.0477+-0.0714     ?      3.0983+-0.0592        ? might be 1.0166x slower
   fixed-typed-array-storage-var-index                1.6677+-0.0832     ?      1.6788+-0.0661        ?
   fixed-typed-array-storage                          1.2812+-0.1155            1.2338+-0.0291          might be 1.0384x faster
   Float32Array-matrix-mult                           5.9377+-0.0530     ?      5.9436+-0.0390        ?
   Float32Array-to-Float64Array-set                  70.0961+-1.0564           69.4597+-0.9350        
   Float64Array-alloc-long-lived                    103.2985+-1.0428          102.7408+-1.0077        
   Float64Array-to-Int16Array-set                    92.7090+-0.8456           92.6434+-0.7364        
   fold-double-to-int                                18.4393+-0.1496           18.2979+-0.0471        
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     10.0674+-0.1765            9.9805+-0.0747        
   fold-get-by-id-to-multi-get-by-offset              9.0889+-0.4879     ?      9.1374+-0.5538        ?
   fold-multi-get-by-offset-to-get-by-offset   
                                                      7.8554+-0.7968     ?      8.2314+-0.6733        ? might be 1.0479x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      8.3231+-0.5377     ?      8.5517+-0.4332        ? might be 1.0275x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      7.8621+-0.4952            7.8543+-0.4146        
   fold-multi-put-by-offset-to-put-by-offset   
                                                      5.5053+-0.6241            5.2851+-0.6708          might be 1.0417x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     12.1678+-0.9064     ?     12.4644+-0.6222        ? might be 1.0244x slower
   fold-put-by-id-to-multi-put-by-offset              8.6897+-0.0841            8.4458+-0.3973          might be 1.0289x faster
   fold-put-structure                                 5.8218+-0.4522            5.7798+-0.7953        
   for-of-iterate-array-entries                       5.6194+-0.0706     ?      5.6468+-0.0975        ?
   for-of-iterate-array-keys                          4.9690+-0.4716            4.9459+-0.5453        
   for-of-iterate-array-values                        4.7225+-0.2655            4.6182+-0.1183          might be 1.0226x faster
   fround                                            26.5612+-0.6416           26.3667+-0.2342        
   ftl-library-inlining-dataview                     95.5096+-9.0938           88.5484+-1.1060          might be 1.0786x faster
   ftl-library-inlining                              89.7212+-0.5472     ?    106.6564+-27.1422       ? might be 1.1888x slower
   function-dot-apply                                 2.9176+-0.0445            2.9074+-0.0383        
   function-test                                      3.7559+-0.0594     ?      3.7589+-0.0241        ?
   function-with-eval                               129.8562+-0.5314          128.7255+-1.8995        
   gcse-poly-get-less-obvious                        27.8376+-2.1575     ?     27.9579+-2.8888        ?
   gcse-poly-get                                     31.3446+-4.0518     ?     32.1906+-5.6046        ? might be 1.0270x slower
   gcse                                               5.6820+-0.0339     ?      5.7000+-0.1131        ?
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.5837+-0.0648            3.5811+-0.0537        
   get-by-id-bimorphic-check-structure-elimination   
                                                      7.8982+-0.1886     ?      7.9038+-0.0925        ?
   get-by-id-chain-from-try-block                     8.9340+-0.0243     !      9.0391+-0.0360        ! definitely 1.0118x slower
   get-by-id-check-structure-elimination              6.9232+-0.6561            6.6763+-0.0325          might be 1.0370x faster
   get-by-id-proto-or-self                           25.0811+-2.5145           24.2387+-2.6489          might be 1.0348x faster
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      3.8313+-0.0329     ?      3.8585+-0.0655        ?
   get-by-id-self-or-proto                           24.2371+-0.9223           23.5535+-0.9474          might be 1.0290x faster
   get-by-val-out-of-bounds                           5.3849+-0.1281     ?      5.5270+-0.2944        ? might be 1.0264x slower
   get_callee_monomorphic                             3.1998+-0.1049     ?      3.2351+-0.0683        ? might be 1.0111x slower
   get_callee_polymorphic                             4.6675+-0.1021            4.6513+-0.1210        
   getter-no-activation                               6.1731+-0.0256            6.1679+-0.0432        
   getter-richards                                  123.3070+-2.7623          122.9559+-3.7203        
   getter                                             6.8438+-0.0387     ?      6.8686+-0.0376        ?
   global-var-const-infer-fire-from-opt               1.3358+-0.1105     ?      1.4290+-0.1058        ? might be 1.0698x slower
   global-var-const-infer                             1.2537+-0.1650            1.1836+-0.1181          might be 1.0593x faster
   HashMap-put-get-iterate-keys                      33.0585+-0.4640           32.8571+-0.2407        
   HashMap-put-get-iterate                           32.2993+-0.2182     ?     32.4017+-0.2613        ?
   HashMap-string-put-get-iterate                    36.5535+-0.4461     ?     36.6653+-1.1267        ?
   hoist-make-rope                                   15.3127+-1.1930     ?     15.7286+-0.6152        ? might be 1.0272x slower
   hoist-poly-check-structure-effectful-loop   
                                                      6.6027+-0.3288            6.4907+-0.0208          might be 1.0172x faster
   hoist-poly-check-structure                         4.8132+-0.0492            4.7863+-0.0592        
   imul-double-only                                   9.4972+-0.1545            9.4456+-0.1321        
   imul-int-only                                     12.1392+-0.4200           12.1324+-0.4059        
   imul-mixed                                        10.0254+-0.1345            9.8722+-0.3970          might be 1.0155x faster
   in-four-cases                                     28.1958+-0.2244     ?     28.5259+-0.6553        ? might be 1.0117x slower
   in-one-case-false                                 14.1324+-0.0512           14.1298+-0.0413        
   in-one-case-true                                  14.1755+-0.0237           14.1388+-0.0179        
   in-two-cases                                      14.9531+-0.0932     ?     15.0164+-0.2598        ?
   indexed-properties-in-objects                      3.8127+-0.0269     ^      3.7692+-0.0156        ^ definitely 1.0115x faster
   infer-closure-const-then-mov-no-inline             5.0698+-0.0535     !      5.1614+-0.0344        ! definitely 1.0181x slower
   infer-closure-const-then-mov                      25.6770+-0.2132     ?     25.6821+-0.2190        ?
   infer-closure-const-then-put-to-scope-no-inline   
                                                     16.5661+-0.2553     ?     16.5923+-0.2362        ?
   infer-closure-const-then-put-to-scope             28.4413+-0.5745     !     30.0090+-0.9480        ! definitely 1.0551x slower
   infer-closure-const-then-reenter-no-inline   
                                                     72.9990+-1.1998           72.6307+-0.9516        
   infer-closure-const-then-reenter                  29.6882+-1.2418     ?     30.2356+-1.2074        ? might be 1.0184x slower
   infer-constant-global-property                     4.6156+-0.0354     ?      4.6202+-0.0328        ?
   infer-constant-property                            3.5407+-0.0432     ?      3.5725+-0.1075        ?
   infer-one-time-closure-ten-vars                   15.9163+-0.3909           15.7830+-0.1931        
   infer-one-time-closure-two-vars                   15.4420+-0.2775           15.1517+-0.1757          might be 1.0192x faster
   infer-one-time-closure                            14.9883+-0.0827     ?     15.1425+-0.0931        ? might be 1.0103x slower
   infer-one-time-deep-closure                       26.9846+-0.2190     ?     27.1479+-0.3966        ?
   inline-arguments-access                            5.4659+-0.1973            5.3656+-0.0779          might be 1.0187x faster
   inline-arguments-aliased-access                    5.3702+-0.1532     ?      5.4185+-0.2550        ?
   inline-arguments-local-escape                      5.5412+-0.2324            5.3628+-0.0997          might be 1.0333x faster
   inline-get-scoped-var                              6.1215+-0.0707            6.0720+-0.0334        
   inlined-put-by-id-transition                      13.7260+-0.4080     ?     13.9829+-0.4944        ? might be 1.0187x slower
   int-or-other-abs-then-get-by-val                   6.3630+-0.0343     ?      6.4238+-0.1685        ?
   int-or-other-abs-zero-then-get-by-val             23.6810+-0.0779     ^     23.1745+-0.3138        ^ definitely 1.0219x faster
   int-or-other-add-then-get-by-val                   5.5165+-0.0310     ?      5.7459+-0.5335        ? might be 1.0416x slower
   int-or-other-add                                   6.8497+-0.0583     ?      6.9033+-0.0459        ?
   int-or-other-div-then-get-by-val                   5.4464+-0.0373     ?      5.4654+-0.0178        ?
   int-or-other-max-then-get-by-val                   5.5685+-0.0254            5.5592+-0.0220        
   int-or-other-min-then-get-by-val                   5.6005+-0.0639     ?      5.6689+-0.1365        ? might be 1.0122x slower
   int-or-other-mod-then-get-by-val                   5.0822+-0.0170            5.0535+-0.0201        
   int-or-other-mul-then-get-by-val                   5.0727+-0.0316            5.0508+-0.0504        
   int-or-other-neg-then-get-by-val                   6.1343+-0.0305     ?      6.1569+-0.0711        ?
   int-or-other-neg-zero-then-get-by-val             23.7402+-0.7589           23.4658+-0.2961          might be 1.0117x faster
   int-or-other-sub-then-get-by-val                   5.5549+-0.0560     ?      5.5727+-0.0634        ?
   int-or-other-sub                                   4.6130+-0.0327     ?      4.6516+-0.0476        ?
   int-overflow-local                                 5.8180+-0.0166            5.8058+-0.0118        
   Int16Array-alloc-long-lived                       63.6807+-0.8409           63.1632+-0.6943        
   Int16Array-bubble-sort-with-byteLength            25.4237+-0.2026     ?     25.8194+-0.6979        ? might be 1.0156x slower
   Int16Array-bubble-sort                            26.3307+-0.1727     ?     26.3917+-0.1895        ?
   Int16Array-load-int-mul                            2.0225+-0.0153     ?      2.1001+-0.1673        ? might be 1.0384x slower
   Int16Array-to-Int32Array-set                      68.6027+-0.6332           67.7814+-0.5480          might be 1.0121x faster
   Int32Array-alloc-large                            24.3733+-1.2038     ?     24.4484+-1.1706        ?
   Int32Array-alloc-long-lived                       75.0006+-0.8041     ?     75.2477+-1.3906        ?
   Int32Array-alloc                                   3.5046+-0.2319            3.3920+-0.0661          might be 1.0332x faster
   Int32Array-Int8Array-view-alloc                    8.6304+-0.2928     ?      8.7489+-0.6823        ? might be 1.0137x slower
   int52-spill                                        7.5137+-0.3714            7.3816+-0.0575          might be 1.0179x faster
   Int8Array-alloc-long-lived                        57.4707+-0.7637           56.8752+-0.5802          might be 1.0105x faster
   Int8Array-load-with-byteLength                     4.3846+-0.0350     ?      4.4207+-0.0584        ?
   Int8Array-load                                     4.4207+-0.0195            4.4002+-0.0245        
   integer-divide                                    14.3361+-0.0494     ?     14.4061+-0.1018        ?
   integer-modulo                                     2.7517+-0.0558            2.7308+-0.0643        
   is-boolean-fold-tricky                             5.8173+-0.1436            5.7792+-0.0425        
   is-boolean-fold                                    3.7369+-0.0545            3.6495+-0.0354          might be 1.0239x faster
   is-function-fold-tricky-internal-function   
                                                     15.6886+-0.1043     ^     15.4932+-0.0716        ^ definitely 1.0126x faster
   is-function-fold-tricky                            5.9687+-0.1558            5.9330+-0.0691        
   is-function-fold                                   3.7815+-0.0358            3.7358+-0.0651          might be 1.0122x faster
   is-number-fold-tricky                              5.7958+-0.0471            5.7579+-0.0240        
   is-number-fold                                     3.7417+-0.0463            3.7399+-0.0505        
   is-object-or-null-fold-functions                   3.9548+-0.3222            3.8227+-0.0607          might be 1.0346x faster
   is-object-or-null-fold-less-tricky                 5.8680+-0.0255     ?      5.9270+-0.1405        ? might be 1.0100x slower
   is-object-or-null-fold-tricky                      8.5057+-0.0858            8.4736+-0.0385        
   is-object-or-null-fold                             3.7734+-0.0454            3.7570+-0.0400        
   is-object-or-null-trickier-function                6.0144+-0.0264     ?      6.0350+-0.0538        ?
   is-object-or-null-trickier-internal-function   
                                                     16.8421+-0.0339     ^     16.4623+-0.0330        ^ definitely 1.0231x faster
   is-object-or-null-tricky-function                  5.9810+-0.1085     ?      6.0732+-0.2023        ? might be 1.0154x slower
   is-object-or-null-tricky-internal-function   
                                                     12.2328+-0.0202     ?     12.2522+-0.0828        ?
   is-string-fold-tricky                              5.7647+-0.0262     ?      6.0591+-0.3228        ? might be 1.0511x slower
   is-string-fold                                     3.6895+-0.0367     ?      3.7238+-0.0497        ?
   is-undefined-fold-tricky                           4.9314+-0.2643            4.9153+-0.1633        
   is-undefined-fold                                  3.7170+-0.0210            3.6946+-0.0396        
   large-int-captured                                 5.4628+-0.1481     ?      5.5299+-0.2017        ? might be 1.0123x slower
   large-int-neg                                     21.2181+-0.2636     ?     21.2758+-0.1941        ?
   large-int                                         19.6565+-0.3036     ?     19.7620+-0.3202        ?
   load-varargs-elimination                          32.4157+-0.3085           32.2959+-0.2295        
   logical-not-weird-types                            4.2494+-0.0408     ?      4.2578+-0.0310        ?
   logical-not                                        5.9244+-0.1556            5.8639+-0.1039          might be 1.0103x faster
   lots-of-fields                                    16.4158+-0.5129           16.0699+-0.2332          might be 1.0215x faster
   make-indexed-storage                               4.0931+-0.0560            3.9515+-0.3795          might be 1.0358x faster
   make-rope-cse                                     14.7476+-0.2154           14.7109+-0.1417        
   marsaglia-larger-ints                             52.3750+-0.4022           52.3538+-0.2899        
   marsaglia-osr-entry                               29.4667+-0.2653           29.4302+-0.3340        
   math-with-out-of-bounds-array-values              33.7806+-0.5485     ^     32.1107+-0.0738        ^ definitely 1.0520x faster
   max-boolean                                        3.2322+-0.0190     ?      3.2623+-0.0927        ?
   method-on-number                                  22.6702+-0.2787     ?     22.9014+-0.8668        ? might be 1.0102x slower
   min-boolean                                        3.2937+-0.1580            3.2465+-0.0402          might be 1.0145x faster
   minus-boolean-double                               4.1201+-0.0243     ?      4.1408+-0.0196        ?
   minus-boolean                                      3.1632+-0.2351            3.0517+-0.0252          might be 1.0365x faster
   misc-strict-eq                                    52.1984+-3.4962           50.5047+-1.4675          might be 1.0335x faster
   mod-boolean-double                                14.2016+-0.1360           14.1991+-0.0440        
   mod-boolean                                       10.0769+-0.0128     ?     10.0849+-0.0321        ?
   mul-boolean-double                                 4.8166+-0.0147     ?      4.8615+-0.0626        ?
   mul-boolean                                        3.7712+-0.0453            3.7511+-0.0275        
   neg-boolean                                        4.1464+-0.0537            4.1411+-0.0160        
   negative-zero-divide                               0.5791+-0.0554            0.5621+-0.0188          might be 1.0304x faster
   negative-zero-modulo                               0.5522+-0.0417     ?      0.5787+-0.0276        ? might be 1.0481x slower
   negative-zero-negate                               0.5546+-0.0454            0.5086+-0.0273          might be 1.0903x faster
   nested-function-parsing                           50.3312+-0.7221           49.9071+-0.5603        
   new-array-buffer-dead                            123.8398+-0.4526     ^     52.6320+-0.8296        ^ definitely 2.3529x faster
   new-array-buffer-push                              8.2305+-0.0736     ?      8.3007+-0.2270        ?
   new-array-dead                                    23.2309+-0.5933           22.7325+-0.7434          might be 1.0219x faster
   new-array-push                                     7.8534+-0.1534     ?      7.9275+-0.1522        ?
   no-inline-constructor                             48.6307+-0.3572           48.4940+-0.3584        
   number-test                                        3.9592+-0.0387     ?      3.9812+-0.0520        ?
   object-closure-call                                7.2613+-0.0357     ?      7.2722+-0.0682        ?
   object-test                                        3.7173+-0.0345     ?      3.7294+-0.1268        ?
   obvious-sink-pathology-taken                     152.2159+-1.5034     ?    152.6471+-1.5523        ?
   obvious-sink-pathology                           141.9209+-0.7704          141.6438+-0.7475        
   obviously-elidable-new-object                     41.8191+-0.7070     ?     42.0721+-0.5702        ?
   plus-boolean-arith                                 3.2892+-0.0210            3.2602+-0.0248        
   plus-boolean-double                                4.2255+-0.1820            4.1629+-0.0325          might be 1.0151x faster
   plus-boolean                                       3.1326+-0.0120     ?      3.1525+-0.0267        ?
   poly-chain-access-different-prototypes-simple   
                                                      4.2753+-0.0225     ?      4.3030+-0.0426        ?
   poly-chain-access-different-prototypes             3.3281+-0.0287     ?      3.3733+-0.0236        ? might be 1.0136x slower
   poly-chain-access-simpler                          4.2824+-0.0281     ?      4.3068+-0.0387        ?
   poly-chain-access                                  3.3586+-0.0260            3.3468+-0.0381        
   poly-stricteq                                     79.5319+-0.5082           79.4462+-0.1757        
   polymorphic-array-call                             1.8417+-0.1135     ?      1.8877+-0.0567        ? might be 1.0250x slower
   polymorphic-get-by-id                              4.0570+-0.0418            4.0460+-0.0566        
   polymorphic-put-by-id                             38.4915+-1.3388     ?     39.6918+-3.4424        ? might be 1.0312x slower
   polymorphic-structure                             19.7120+-0.2738           19.6422+-0.1765        
   polyvariant-monomorphic-get-by-id                 11.0590+-0.0777           11.0278+-0.0508        
   proto-getter-access                               11.9693+-0.1766           11.8590+-0.0663        
   put-by-id-replace-and-transition                  12.0683+-0.2976           11.9072+-0.4183          might be 1.0135x faster
   put-by-id-slightly-polymorphic                     3.6973+-0.0347     ?      3.7028+-0.0309        ?
   put-by-id                                         14.8794+-0.2184     ?     15.0537+-0.2892        ? might be 1.0117x slower
   put-by-val-direct                                  0.5586+-0.0345     ?      0.5735+-0.0175        ? might be 1.0267x slower
   put-by-val-large-index-blank-indexing-type   
                                                     15.4264+-0.6247           14.9988+-0.1954          might be 1.0285x faster
   put-by-val-machine-int                             3.4751+-0.1156            3.3650+-0.0690          might be 1.0327x faster
   rare-osr-exit-on-local                            19.4674+-0.0714     ?     19.6543+-0.1370        ?
   register-pressure-from-osr                        28.2229+-0.0347     ?     28.4599+-0.4253        ?
   repeat-multi-get-by-offset                        32.1820+-0.0292     ?     32.2459+-0.1762        ?
   setter                                             6.8373+-0.0280     ?      6.8807+-0.0243        ?
   simple-activation-demo                            33.8609+-0.7118           33.1983+-0.0619          might be 1.0200x faster
   simple-getter-access                              15.0988+-0.1996     ?     15.2596+-0.2866        ? might be 1.0107x slower
   simple-poly-call-nested                           10.3978+-0.1761           10.2649+-0.0638          might be 1.0129x faster
   simple-poly-call                                   1.8348+-0.1619            1.7938+-0.0192          might be 1.0228x faster
   sin-boolean                                       25.1956+-1.8747     ?     26.5326+-2.9066        ? might be 1.0531x slower
   singleton-scope                                   83.5079+-0.5424     ?     83.6096+-0.6910        ?
   sink-function                                     14.1471+-0.7513     ?     14.7142+-0.3510        ? might be 1.0401x slower
   sink-huge-activation                              23.2033+-0.2576     ?     23.4458+-0.9029        ? might be 1.0105x slower
   sinkable-new-object-dag                           83.9292+-0.7602     ?     84.3373+-0.9510        ?
   sinkable-new-object-taken                         65.7277+-2.4145           63.6785+-0.1606          might be 1.0322x faster
   sinkable-new-object                               47.0057+-0.8916     ?     47.3016+-0.7682        ?
   slow-array-profile-convergence                     3.8662+-0.0771            3.8595+-0.1292        
   slow-convergence                                   3.7863+-0.1124            3.6911+-0.0741          might be 1.0258x faster
   slow-ternaries                                    24.2292+-0.7126           23.9312+-0.2426          might be 1.0125x faster
   sorting-benchmark                                 24.7287+-0.5906     ?     24.7910+-0.5529        ?
   sparse-conditional                                 1.6150+-0.0365            1.6077+-0.0242        
   splice-to-remove                                  19.8088+-0.3637           19.6753+-0.2628        
   string-char-code-at                               21.4649+-0.2736     ?     21.6215+-0.2133        ?
   string-concat-object                               2.9577+-0.0588     ?      2.9803+-0.0674        ?
   string-concat-pair-object                          2.8868+-0.0320     ?      2.9478+-0.0495        ? might be 1.0211x slower
   string-concat-pair-simple                         14.1009+-0.2969           13.8660+-0.2033          might be 1.0169x faster
   string-concat-simple                              14.3301+-0.0608     ?     14.6124+-0.7228        ? might be 1.0197x slower
   string-cons-repeat                                 9.4753+-0.2039            9.3563+-0.1122          might be 1.0127x faster
   string-cons-tower                                  9.6766+-0.2450            9.6061+-0.1290        
   string-equality                                   23.7360+-0.8764           23.2137+-0.2721          might be 1.0225x faster
   string-get-by-val-big-char                         9.0890+-0.0918     ?      9.1401+-0.1221        ?
   string-get-by-val-out-of-bounds-insane             4.6890+-0.0484            4.6703+-0.0358        
   string-get-by-val-out-of-bounds                    7.0322+-0.0467     ?      7.0803+-0.0877        ?
   string-get-by-val                                  4.4447+-0.0303     ^      4.3915+-0.0213        ^ definitely 1.0121x faster
   string-hash                                        2.7856+-0.0655            2.7220+-0.0535          might be 1.0233x faster
   string-long-ident-equality                        19.1872+-0.2810     ?     19.3696+-0.4102        ?
   string-out-of-bounds                              18.9999+-0.0939           18.9629+-0.1576        
   string-repeat-arith                               43.2847+-1.1521           42.3561+-0.8714          might be 1.0219x faster
   string-sub                                        85.2656+-0.6193           84.5941+-0.6028        
   string-test                                        3.8227+-0.0831            3.7878+-0.0374        
   string-var-equality                               43.1200+-0.0316     ?     43.4176+-0.7812        ?
   structure-hoist-over-transitions                   3.2696+-0.0978     ?      3.2854+-0.0402        ?
   substring-concat-weird                            51.6262+-0.3175           51.5186+-0.2282        
   substring-concat                                  54.7959+-0.7353     ?     54.8708+-0.7733        ?
   substring                                         60.0956+-1.0156           59.7013+-0.9438        
   switch-char-constant                               3.5588+-0.0597            3.5524+-0.0208        
   switch-char                                       10.6503+-4.5769           10.6294+-4.4904        
   switch-constant                                   10.2667+-0.2508     ?     10.5473+-0.3155        ? might be 1.0273x slower
   switch-string-basic-big-var                       24.7682+-0.6327           24.6956+-0.0616        
   switch-string-basic-big                           21.4917+-0.6127     ?     21.5562+-0.4797        ?
   switch-string-basic-var                           19.8081+-0.3074     ?     19.8128+-0.1838        ?
   switch-string-basic                               18.3879+-0.3132           18.3815+-0.3832        
   switch-string-big-length-tower-var                26.3715+-0.0522           26.3060+-0.0286        
   switch-string-length-tower-var                    20.3326+-0.1583           20.3298+-0.1678        
   switch-string-length-tower                        17.2017+-0.1207     ?     17.2220+-0.1092        ?
   switch-string-short                               17.1757+-0.0247           17.1633+-0.0722        
   switch                                            15.9788+-0.1390     ?     16.0897+-0.4990        ?
   tear-off-arguments-simple                          4.1698+-0.0562            4.1460+-0.0613        
   tear-off-arguments                                 5.7116+-0.1154     ?      5.7375+-0.1554        ?
   temporal-structure                                16.1341+-0.6087           16.0892+-0.4972        
   to-int32-boolean                                  17.9351+-0.0330           17.9312+-0.0233        
   try-catch-get-by-val-cloned-arguments             18.6383+-0.2598     ?     18.8584+-0.3059        ? might be 1.0118x slower
   try-catch-get-by-val-direct-arguments              8.1129+-0.1428     ?      8.1752+-0.0949        ?
   try-catch-get-by-val-scoped-arguments              9.5928+-0.1508            9.5870+-0.4961        
   typed-array-get-set-by-val-profiling              43.8533+-0.9249     ?     44.4946+-0.3704        ? might be 1.0146x slower
   undefined-property-access                        458.2738+-0.2280     ?    458.3631+-0.5375        ?
   undefined-test                                     3.9043+-0.0243            3.8963+-0.0474        
   unprofiled-licm                                   29.1641+-0.4772           29.1163+-0.3589        
   varargs-call                                      19.7913+-0.1610     ?     20.0462+-0.2904        ? might be 1.0129x slower
   varargs-construct-inline                          34.3714+-0.3426     ?     34.5522+-0.9352        ?
   varargs-construct                                 29.1034+-0.0727     ?     29.1962+-0.1938        ?
   varargs-inline                                    12.0703+-0.0498           12.0565+-0.0399        
   varargs-strict-mode                               13.0513+-0.0357           13.0444+-0.0767        
   varargs                                           13.0935+-0.2158           13.0186+-0.0554        
   weird-inlining-const-prop                          2.9572+-0.1045     ?      2.9888+-0.0829        ? might be 1.0107x slower

   <geometric>                                       11.0844+-0.0325     ^     10.9920+-0.0163        ^ definitely 1.0084x faster

                                                         r185155                 SinkNewArray                                   
AsmBench:
   bigfib.cpp                                       659.6657+-1.9385          659.5763+-1.3830        
   cray.c                                           571.5378+-1.8235     ?    573.1967+-5.6290        ?
   dry.c                                            663.5815+-15.3691         659.5581+-16.5267       
   FloatMM.c                                        972.9917+-0.2619     ?    972.9986+-0.4314        ?
   gcc-loops.cpp                                   5688.0036+-13.0359        5682.9780+-13.7580       
   n-body.c                                        1327.4185+-0.4025     ?   1328.0354+-0.9812        ?
   Quicksort.c                                      570.7265+-0.7112          566.4269+-6.6085        
   stepanov_container.cpp                          5033.0731+-11.5270    ?   5047.4958+-17.5657       ?
   Towers.c                                         344.7647+-0.6132          344.6506+-0.4697        

   <geometric>                                     1068.7924+-2.8983         1067.7421+-4.3175          might be 1.0010x faster

                                                         r185155                 SinkNewArray                                   
CompressionBench:
   huffman                                          519.0905+-1.0966     ^    472.8241+-3.5570        ^ definitely 1.0979x faster
   arithmetic-simple                                488.3917+-0.9892          488.1672+-0.8040        
   arithmetic-precise                               390.5841+-3.1105     ?    390.8800+-2.5548        ?
   arithmetic-complex-precise                       404.2934+-3.0045          403.1429+-0.8474        
   arithmetic-precise-order-0                       513.7917+-0.2401          510.1337+-4.5468        
   arithmetic-precise-order-1                       444.6978+-9.7363          441.0293+-1.5421        
   arithmetic-precise-order-2                       500.3618+-1.8855          500.2085+-2.0196        
   arithmetic-simple-order-1                        568.8978+-3.0882     ?    569.0549+-3.3936        ?
   arithmetic-simple-order-2                        633.8684+-2.4850     ?    633.9730+-2.6142        ?
   lz-string                                        378.8268+-4.2282     ?    379.9957+-5.4518        ?

   <geometric>                                      478.1807+-1.4588     ^    473.0439+-1.4258        ^ definitely 1.0109x faster

                                                         r185155                 SinkNewArray                                   
Geomean of preferred means:
   <scaled-result>                                   80.6814+-0.1301     ^     80.4017+-0.1041        ^ definitely 1.0035x faster
Comment 3 Basile Clement 2015-06-03 13:02:51 PDT
   huffman                                          519.0905+-1.0966     ^    472.8241+-3.5570        ^ definitely 1.0979x faster

Doesn't make any sense, there is no array allocation to sink here. Investigating.
Comment 4 Basile Clement 2015-06-03 13:07:24 PDT
(In reply to comment #3)
>    huffman                                          519.0905+-1.0966     ^  
> 472.8241+-3.5570        ^ definitely 1.0979x faster
> 
> Doesn't make any sense, there is no array allocation to sink here.
> Investigating.

It is apparently only coming from the GetButterfly redirection, so it may make sense.
Comment 5 Basile Clement 2015-06-03 17:29:38 PDT
(In reply to comment #4)
> (In reply to comment #3)
> >    huffman                                          519.0905+-1.0966     ^  
> > 472.8241+-3.5570        ^ definitely 1.0979x faster
> > 
> > Doesn't make any sense, there is no array allocation to sink here.
> > Investigating.
> 
> It is apparently only coming from the GetButterfly redirection, so it may
> make sense.

I stand by my first observation, I can't make sense of this, and 10% is a lot. Seemingly irrelevant small code changes move it from 10% to 2%.
Comment 6 WebKit Commit Bot 2015-06-03 17:39:48 PDT
Attachment 254197 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:1043:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:1059:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:1072:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:1091:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:1105:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 5 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 7 Filip Pizlo 2015-06-03 21:32:28 PDT
Comment on attachment 254197 [details]
Patch

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

> Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:1056
> +                || !node->child2()->constant()->value().isUInt32()) {

You need something stricter than isUInt32, I think.  "pow(2, 31) - 1" is a UInt32, but it isn't a valid array index.  Also, you could have:

array: NewArray(@x, @y, @z) // length = 3
index: JSConstant(Int32:4)
GetByVal(@array, @index, ContiguousInBounds)

This should always exit.  We may even perform optimizations assuming that this always exits.  And there is no good way to lower this to a direct load from a phantom array.
Comment 8 Basile Clement 2015-06-04 09:28:10 PDT
(In reply to comment #7)
> Comment on attachment 254197 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=254197&action=review
> 
> > Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:1056
> > +                || !node->child2()->constant()->value().isUInt32()) {
> 
> You need something stricter than isUInt32, I think.  "pow(2, 31) - 1" is a
> UInt32, but it isn't a valid array index.  

Ah yes, I forgot about that detail, I will change this.

> Also, you could have:
> 
> array: NewArray(@x, @y, @z) // length = 3
> index: JSConstant(Int32:4)
> GetByVal(@array, @index, ContiguousInBounds)
> 
> This should always exit.  We may even perform optimizations assuming that
> this always exits.  And there is no good way to lower this to a direct load
> from a phantom array.

Oh, because a load from a hole is InBounds. I will change the tests to check the length of the underlying array then.
Comment 9 Darin Adler 2015-06-06 15:54:44 PDT
Comment on attachment 254197 [details]
Patch

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

>>> Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:1056
>>> +                || !node->child2()->constant()->value().isUInt32()) {
>> 
>> You need something stricter than isUInt32, I think.  "pow(2, 31) - 1" is a UInt32, but it isn't a valid array index.  Also, you could have:
>> 
>> array: NewArray(@x, @y, @z) // length = 3
>> index: JSConstant(Int32:4)
>> GetByVal(@array, @index, ContiguousInBounds)
>> 
>> This should always exit.  We may even perform optimizations assuming that this always exits.  And there is no good way to lower this to a direct load from a phantom array.
> 
> Ah yes, I forgot about that detail, I will change this.

There’s another thing to remember about the function isUInt32 in cases like this. To quote a comment that appears in three places in the source code: "Despite its name, JSValue::isUInt32 will return true only for positive boxed int32_t". So it will return false for pow(2, 30) and higher.

Maybe we should rename that function.
Comment 10 Basile Clement 2015-06-15 10:11:04 PDT
Created attachment 254880 [details]
Patch
Comment 11 Basile Clement 2015-06-15 12:07:45 PDT
Looks reasonable.

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

VMs tested:
"ToT" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc
"SinkNewArray" at /Volumes/Data/secondary/OpenSource/WebKitBuild/SinkNewArray/Release/jsc

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.

                                                           ToT                   SinkNewArray                                   
SunSpider:
   3d-cube                                            6.4620+-0.4259            6.2751+-0.1099          might be 1.0298x faster
   3d-morph                                           7.4650+-0.1833            7.4189+-0.1082        
   3d-raytrace                                        7.3448+-0.0778     ?      7.5102+-0.4120        ? might be 1.0225x slower
   access-binary-trees                                2.8152+-0.1358     ?      2.9573+-0.1837        ? might be 1.0505x slower
   access-fannkuch                                    8.9322+-3.0920            7.7188+-0.2158          might be 1.1572x faster
   access-nbody                                       3.5219+-0.0376            3.5111+-0.0273        
   access-nsieve                                      4.4395+-0.3056     ?      4.5962+-0.3366        ? might be 1.0353x slower
   bitops-3bit-bits-in-byte                           2.0612+-0.0741            2.0414+-0.0757        
   bitops-bits-in-byte                                5.0533+-0.5122            4.8723+-0.1364          might be 1.0371x faster
   bitops-bitwise-and                                 2.8992+-0.0593            2.8934+-0.0234        
   bitops-nsieve-bits                                 4.1979+-0.1812     ?      4.2832+-0.2677        ? might be 1.0203x slower
   controlflow-recursive                              3.2293+-0.1887     ?      3.5222+-0.1595        ? might be 1.0907x slower
   crypto-aes                                         5.7975+-0.4277            5.6050+-0.1104          might be 1.0343x faster
   crypto-md5                                         3.3483+-0.1346     ?      3.3813+-0.0863        ?
   crypto-sha1                                        4.3288+-0.4124            4.1602+-0.2572          might be 1.0405x faster
   date-format-tofte                                  9.6481+-0.3966            9.4831+-0.2433          might be 1.0174x faster
   date-format-xparb                                  6.9274+-0.2787            6.8870+-0.1149        
   math-cordic                                        3.8770+-0.0266     ?      4.0486+-0.2745        ? might be 1.0443x slower
   math-partial-sums                                  6.6391+-0.3215            6.3875+-0.1145          might be 1.0394x faster
   math-spectral-norm                                 2.6106+-0.2653     ?      2.7200+-0.2240        ? might be 1.0419x slower
   regexp-dna                                         9.4604+-0.2050            9.4022+-0.2025        
   string-base64                                      6.4295+-0.3154     ?      6.4694+-0.5328        ?
   string-fasta                                       8.7258+-0.1451     ?      8.8586+-0.4034        ? might be 1.0152x slower
   string-tagcloud                                   11.6349+-0.3379     ?     11.7156+-0.3683        ?
   string-unpack-code                                27.7021+-0.3903     ?     27.8430+-0.8370        ?
   string-validate-input                              7.5049+-0.1380            7.4187+-0.2129          might be 1.0116x faster

   <arithmetic>                                       6.6560+-0.1009            6.6146+-0.1033          might be 1.0063x faster

                                                           ToT                   SinkNewArray                                   
LongSpider:
   3d-cube                                         1165.5142+-3.6818     !   1178.9495+-7.1101        ! definitely 1.0115x slower
   3d-morph                                        2248.2281+-1.0691         2247.1182+-0.7891        
   3d-raytrace                                      915.5581+-23.6210    ?    947.8099+-10.4353       ? might be 1.0352x slower
   access-binary-trees                             1156.1095+-9.3719         1148.8581+-4.7785        
   access-fannkuch                                  407.5990+-8.0765          407.3709+-8.2867        
   access-nbody                                     768.9311+-0.3131     ^    767.0618+-0.1645        ^ definitely 1.0024x faster
   access-nsieve                                    501.9590+-3.8896     ?    502.9154+-4.9150        ?
   bitops-3bit-bits-in-byte                          59.3515+-0.6375     ?     59.7249+-0.5190        ?
   bitops-bits-in-byte                              109.0033+-2.0457     ?    110.2948+-2.5226        ? might be 1.0118x slower
   bitops-nsieve-bits                               598.5341+-1.1862     ?    606.7844+-14.6026       ? might be 1.0138x slower
   controlflow-recursive                            650.7711+-11.0926    !    676.8234+-9.5011        ! definitely 1.0400x slower
   crypto-aes                                       832.4177+-5.0822          832.1430+-4.9238        
   crypto-md5                                       695.7232+-3.3560          693.8603+-5.8291        
   crypto-sha1                                      915.5306+-5.6425     ^    900.4557+-5.1220        ^ definitely 1.0167x faster
   date-format-tofte                                741.4649+-23.5605    ?    746.1817+-34.0723       ?
   date-format-xparb                                933.6765+-2.2071          931.6545+-1.9320        
   hash-map                                         242.2531+-4.6986          240.6289+-5.3065        
   math-cordic                                      728.0025+-0.5755     ?    728.0797+-0.8731        ?
   math-partial-sums                                619.1314+-0.9487          618.7151+-1.2653        
   math-spectral-norm                               824.0890+-0.6368     ?    824.5369+-0.3908        ?
   string-base64                                    508.0516+-2.9142     ?    508.1735+-3.3230        ?
   string-fasta                                     545.8498+-0.9628     ?    551.0441+-7.7398        ?
   string-tagcloud                                  245.7683+-1.6413     ?    246.0581+-2.5663        ?

   <geometric>                                      570.4531+-0.9243     !    572.8723+-1.2613        ! definitely 1.0042x slower

                                                           ToT                   SinkNewArray                                   
V8Spider:
   crypto                                            74.7977+-3.9219           73.3599+-4.0877          might be 1.0196x faster
   deltablue                                        120.5553+-13.1611    ?    125.3534+-25.0934       ? might be 1.0398x slower
   earley-boyer                                      65.8162+-2.6604     ?     67.1539+-3.9819        ? might be 1.0203x slower
   raytrace                                          47.6269+-5.7831           45.6871+-2.1273          might be 1.0425x faster
   regexp                                           108.1121+-14.9822         102.6625+-0.7176          might be 1.0531x faster
   richards                                         109.7837+-6.0301          104.4385+-2.9418          might be 1.0512x faster
   splay                                             48.0495+-2.6855     ?     50.0175+-1.8376        ? might be 1.0410x slower

   <geometric>                                       76.8755+-3.1344           76.1880+-2.0580          might be 1.0090x faster

                                                           ToT                   SinkNewArray                                   
Octane:
   encrypt                                           0.29143+-0.00105    ?     0.29435+-0.00450       ? might be 1.0100x slower
   decrypt                                           5.10050+-0.01478    ?     5.13530+-0.13216       ?
   deltablue                                x2       0.23234+-0.01005          0.22898+-0.00314         might be 1.0147x faster
   earley                                            0.44882+-0.00201    ?     0.45490+-0.00688       ? might be 1.0135x slower
   boyer                                             9.06497+-0.01674    ?     9.09923+-0.04359       ?
   navier-stokes                            x2       7.55601+-0.02040          7.54591+-0.00963       
   raytrace                                 x2       1.70070+-0.01490          1.68796+-0.02104       
   richards                                 x2       0.15579+-0.00219          0.15463+-0.00156       
   splay                                    x2       0.49884+-0.00699    ?     0.50175+-0.01014       ?
   regexp                                   x2      41.89718+-1.10871         40.92212+-0.70543         might be 1.0238x faster
   pdfjs                                    x2      53.50400+-0.30185         53.04648+-0.26519       
   mandreel                                 x2      71.71831+-0.94574         71.30785+-1.63264       
   gbemu                                    x2      61.41832+-3.79318         58.09554+-0.96424         might be 1.0572x faster
   closure                                           0.70356+-0.00413    ?     0.70578+-0.00317       ?
   jquery                                            9.11467+-0.04708          9.11435+-0.07977       
   box2d                                    x2      16.57658+-0.12666    ?    16.67063+-0.09454       ?
   zlib                                     x2     523.11637+-19.53807   ?   527.11112+-26.34456      ?
   typescript                               x2     883.58297+-4.46029        875.41602+-9.67856       

   <geometric>                                       8.62643+-0.06889          8.57196+-0.05353         might be 1.0064x faster

                                                           ToT                   SinkNewArray                                   
Kraken:
   ai-astar                                          364.080+-7.771      ?     364.598+-7.193         ?
   audio-beat-detection                               99.396+-1.758      ?      99.719+-1.841         ?
   audio-dft                                         156.637+-1.973            156.473+-1.192         
   audio-fft                                          85.744+-1.197             79.308+-8.958           might be 1.0812x faster
   audio-oscillator                                  110.073+-0.536            110.065+-0.648         
   imaging-darkroom                                  130.731+-0.862            129.894+-1.259         
   imaging-desaturate                                 80.726+-3.099      ?      82.452+-3.954         ? might be 1.0214x slower
   imaging-gaussian-blur                             126.134+-0.211            125.956+-1.289         
   json-parse-financial                               58.635+-1.440      ^      55.922+-0.275         ^ definitely 1.0485x faster
   json-stringify-tinderbox                           35.871+-1.347      ?      36.565+-1.513         ? might be 1.0193x slower
   stanford-crypto-aes                                76.337+-0.654      ?      77.298+-0.912         ? might be 1.0126x slower
   stanford-crypto-ccm                                58.017+-2.997             57.696+-3.074         
   stanford-crypto-pbkdf2                            148.070+-1.125      ?     148.424+-0.773         ?
   stanford-crypto-sha256-iterative                   56.126+-0.742             55.699+-0.832         

   <arithmetic>                                      113.327+-0.684            112.862+-0.281           might be 1.0041x faster

                                                           ToT                   SinkNewArray                                   
JSRegress:
   abs-boolean                                        3.4447+-0.0561     ?      3.4465+-0.1640        ?
   adapt-to-double-divide                            23.4646+-0.4398     ?     23.5307+-0.9790        ?
   aliased-arguments-getbyval                         1.6715+-0.0779            1.6084+-0.1035          might be 1.0392x faster
   allocate-big-object                                3.6281+-0.3092            3.6242+-0.2343        
   arguments-named-and-reflective                    15.4883+-0.4621     ?     16.0725+-0.7652        ? might be 1.0377x slower
   arguments-out-of-bounds                           14.0551+-0.1568           14.0173+-0.3269        
   arguments-strict-mode                             13.8357+-0.4962           13.7705+-0.3924        
   arguments                                         12.1738+-0.1900           12.0101+-0.1037          might be 1.0136x faster
   arity-mismatch-inlining                            1.0971+-0.0386     ?      1.1104+-0.0760        ? might be 1.0121x slower
   array-access-polymorphic-structure                 8.4875+-0.1375            8.4068+-0.4165        
   array-nonarray-polymorhpic-access                 35.9062+-0.3900     ?     36.1455+-0.4836        ?
   array-prototype-every                            112.9097+-0.6022          112.6798+-2.9467        
   array-prototype-forEach                          110.4435+-0.9883     ?    110.5648+-0.6090        ?
   array-prototype-map                              122.4644+-1.1409     ^    120.0437+-0.9236        ^ definitely 1.0202x faster
   array-prototype-reduce                           106.5285+-0.7825     ^    104.7537+-0.7370        ^ definitely 1.0169x faster
   array-prototype-reduceRight                      105.2504+-0.4939     ^    104.1735+-0.5146        ^ definitely 1.0103x faster
   array-prototype-some                             112.4754+-0.2232          111.9652+-1.3528        
   array-splice-contiguous                           55.4940+-0.5350     ?     55.8498+-0.7496        ?
   array-with-double-add                              4.7762+-0.0421     ?      4.7957+-0.1052        ?
   array-with-double-increment                        4.2697+-0.1071            4.2618+-0.0500        
   array-with-double-mul-add                          5.9066+-0.0618     ?      6.1191+-0.1953        ? might be 1.0360x slower
   array-with-double-sum                              4.5637+-0.1466            4.5232+-0.0896        
   array-with-int32-add-sub                           8.2614+-0.2231     ?      8.2685+-0.1012        ?
   array-with-int32-or-double-sum                     4.5244+-0.0373     ?      4.6844+-0.2226        ? might be 1.0354x slower
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     41.7718+-0.9379           41.4312+-0.4757        
   ArrayBuffer-DataView-alloc-long-lived             18.4676+-0.2112           18.1145+-0.1681          might be 1.0195x faster
   ArrayBuffer-Int32Array-byteOffset                  5.1809+-0.0544            5.1494+-0.0152        
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     44.6673+-0.7601           44.2901+-0.9116        
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     29.5011+-0.2742           29.4005+-0.1735        
   ArrayBuffer-Int8Array-alloc-long-lived            17.8502+-0.2486     ?     18.0346+-0.8690        ? might be 1.0103x slower
   ArrayBuffer-Int8Array-alloc                       14.1788+-0.2650     ^     13.7301+-0.1231        ^ definitely 1.0327x faster
   asmjs_bool_bug                                    10.8134+-0.1891           10.6013+-0.1622          might be 1.0200x faster
   assign-custom-setter-polymorphic                   3.6547+-0.0766     ?      3.7397+-0.2014        ? might be 1.0232x slower
   assign-custom-setter                               5.0953+-0.2190            4.8865+-0.0332          might be 1.0427x faster
   basic-set                                         12.9807+-0.6027           12.4698+-0.4891          might be 1.0410x faster
   big-int-mul                                        5.7022+-0.7990            4.8732+-0.0310          might be 1.1701x faster
   boolean-test                                       4.0885+-0.1393     ?      4.0944+-0.0914        ?
   branch-fold                                        5.3607+-0.1492     ?      5.3687+-0.1726        ?
   branch-on-string-as-boolean                       23.2675+-0.5564           23.0732+-0.4272        
   by-val-generic                                    10.3986+-0.1998     ?     10.5871+-0.2145        ? might be 1.0181x slower
   call-spread-apply                                 38.6675+-1.6197     ?     39.1600+-3.7987        ? might be 1.0127x slower
   call-spread-call                                  31.1883+-0.3477           31.0932+-0.9482        
   captured-assignments                               0.6141+-0.0467            0.6035+-0.0191          might be 1.0175x faster
   cast-int-to-double                                 7.1657+-0.0700            7.1476+-0.0809        
   cell-argument                                      9.0394+-0.1659            8.9837+-0.2815        
   cfg-simplify                                       3.9381+-0.1186     ?      3.9506+-0.1278        ?
   chain-getter-access                               11.6575+-0.3038           11.5463+-0.2255        
   cmpeq-obj-to-obj-other                            16.0081+-1.5170     ?     17.0230+-0.9316        ? might be 1.0634x slower
   constant-test                                      6.8110+-0.2383     ?      6.8824+-0.2282        ? might be 1.0105x slower
   create-lots-of-functions                          13.8182+-0.9398           13.2148+-0.6011          might be 1.0457x faster
   cse-new-array-buffer                               3.1328+-0.1020            3.0882+-0.1520          might be 1.0145x faster
   cse-new-array                                      3.2046+-0.2638     ?      3.2130+-0.1460        ?
   DataView-custom-properties                        49.8806+-1.0372     ?     50.9999+-1.9167        ? might be 1.0224x slower
   deconstructing-parameters-overridden-by-function   
                                                      0.6803+-0.0546     ?      0.6846+-0.0268        ?
   delay-tear-off-arguments-strictmode               18.3356+-0.1450     ^     17.6899+-0.1598        ^ definitely 1.0365x faster
   deltablue-varargs                                288.0083+-15.5744         281.6616+-7.7423          might be 1.0225x faster
   destructuring-arguments                           18.9681+-0.6389           18.7376+-0.3261          might be 1.0123x faster
   destructuring-swap                                 6.6764+-0.2007            6.6229+-0.0959        
   direct-arguments-getbyval                          1.6217+-0.0575     ?      1.7392+-0.3673        ? might be 1.0725x slower
   div-boolean-double                                 7.6713+-0.2258            7.6216+-0.1528        
   div-boolean                                       11.7002+-0.0534     ?     11.7818+-0.1840        ?
   double-get-by-val-out-of-bounds                    5.7213+-0.2250            5.5919+-0.0943          might be 1.0231x faster
   double-pollution-getbyval                         12.7540+-0.6464           12.7449+-0.5363        
   double-pollution-putbyoffset                       5.4714+-0.3293            5.4651+-0.2128        
   double-real-use                                   36.3107+-3.3037           36.0736+-2.2888        
   double-to-int32-typed-array-no-inline              3.0664+-0.2525     ?      3.1414+-0.1317        ? might be 1.0245x slower
   double-to-int32-typed-array                        2.4917+-0.2689            2.4510+-0.0719          might be 1.0166x faster
   double-to-uint32-typed-array-no-inline             3.2311+-0.1749     ?      3.2563+-0.3521        ?
   double-to-uint32-typed-array                       2.6436+-0.2113            2.6084+-0.0915          might be 1.0135x faster
   elidable-new-object-dag                           48.3201+-1.2424     ?     48.7469+-0.7766        ?
   elidable-new-object-roflcopter                    48.7465+-1.1767           48.6353+-0.7594        
   elidable-new-object-then-call                     44.3131+-1.2605     ?     45.9399+-1.3450        ? might be 1.0367x slower
   elidable-new-object-tree                          52.4810+-0.8938     ?     53.4568+-1.3010        ? might be 1.0186x slower
   empty-string-plus-int                              6.8860+-0.0673            6.8699+-0.1290        
   emscripten-cube2hash                              37.3814+-1.8172     ?     38.6296+-2.0936        ? might be 1.0334x slower
   exit-length-on-plain-object                       17.6853+-0.3626     ?     17.7412+-0.3013        ?
   external-arguments-getbyval                        1.6358+-0.0934     ?      1.6877+-0.2888        ? might be 1.0317x slower
   external-arguments-putbyval                        3.0188+-0.1010            2.9239+-0.0438          might be 1.0325x faster
   fixed-typed-array-storage-var-index                1.6246+-0.0704            1.5994+-0.0651          might be 1.0157x faster
   fixed-typed-array-storage                          1.2545+-0.2653            1.2060+-0.0808          might be 1.0402x faster
   Float32Array-matrix-mult                           5.8355+-0.6031            5.5964+-0.3179          might be 1.0427x faster
   Float32Array-to-Float64Array-set                  68.0295+-0.8095     ?     68.8479+-3.8508        ? might be 1.0120x slower
   Float64Array-alloc-long-lived                     98.4087+-1.3541           97.6731+-1.8626        
   Float64Array-to-Int16Array-set                    83.2711+-0.9673           82.6435+-0.3604        
   fold-double-to-int                                18.0098+-0.1838     ?     18.0179+-0.0890        ?
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     14.2102+-0.8433           14.1356+-0.8103        
   fold-get-by-id-to-multi-get-by-offset             12.1858+-0.4489     ?     12.4178+-1.4427        ? might be 1.0190x slower
   fold-multi-get-by-offset-to-get-by-offset   
                                                     11.7449+-0.9834     ?     12.1905+-0.9650        ? might be 1.0379x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                     10.0861+-1.0719     ?     10.7445+-0.7989        ? might be 1.0653x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                     10.4521+-0.8362     ?     10.5580+-0.8458        ? might be 1.0101x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                      7.3041+-1.5216     ?      7.7907+-0.4852        ? might be 1.0666x slower
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     12.0791+-0.3607     ?     13.0122+-1.2325        ? might be 1.0772x slower
   fold-put-by-id-to-multi-put-by-offset             12.6789+-0.8705     ?     12.9833+-1.0814        ? might be 1.0240x slower
   fold-put-structure                                 7.9680+-0.6299            7.7090+-0.5419          might be 1.0336x faster
   for-of-iterate-array-entries                       5.6356+-0.1212     ?      5.7445+-0.1655        ? might be 1.0193x slower
   for-of-iterate-array-keys                          4.6982+-0.4334            4.6937+-0.0907        
   for-of-iterate-array-values                        4.5430+-0.3574     ?      4.5998+-0.4022        ? might be 1.0125x slower
   fround                                            26.1171+-0.2840     ?     26.3711+-0.7068        ?
   ftl-library-inlining-dataview                     83.7738+-1.7618     ?     83.8027+-0.7679        ?
   ftl-library-inlining                             155.3261+-1.8169          155.2509+-0.9202        
   function-dot-apply                                 2.7359+-0.0574     ?      2.7719+-0.0717        ? might be 1.0132x slower
   function-test                                      3.7965+-0.0862            3.7953+-0.1803        
   function-with-eval                               128.5990+-1.6044     ?    128.8015+-0.5283        ?
   gcse-poly-get-less-obvious                        20.5014+-0.2406     ?     20.5860+-0.2626        ?
   gcse-poly-get                                     20.3615+-0.0727     ?     20.5620+-0.2915        ?
   gcse                                               5.5129+-0.2825            5.4812+-0.1261        
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.6726+-0.0645            3.6502+-0.0815        
   get-by-id-bimorphic-check-structure-elimination   
                                                      8.2616+-0.2236     ?      8.3042+-0.1133        ?
   get-by-id-chain-from-try-block                     9.3547+-0.0863            9.3253+-0.0693        
   get-by-id-check-structure-elimination              6.3745+-0.3017            6.3477+-0.2413        
   get-by-id-proto-or-self                           21.1370+-1.5480           20.9874+-1.3416        
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      4.0826+-0.0559            4.0469+-0.0611        
   get-by-id-self-or-proto                           21.2708+-1.0930           20.6997+-0.4691          might be 1.0276x faster
   get-by-val-out-of-bounds                           5.8234+-0.3409            5.4559+-0.1199          might be 1.0673x faster
   get_callee_monomorphic                             3.3866+-0.0842     ?      3.4871+-0.2455        ? might be 1.0297x slower
   get_callee_polymorphic                             4.8854+-0.4359     ?      4.9099+-0.3139        ?
   getter-no-activation                               6.8056+-0.1987            6.7596+-0.2051        
   getter-prototype                                  13.9268+-0.2126     ?     14.0601+-0.3953        ?
   getter-richards                                  159.0631+-14.2885    ?    159.1223+-22.5895       ?
   getter                                             7.7859+-0.7588            7.5129+-0.5605          might be 1.0363x faster
   global-var-const-infer-fire-from-opt               1.2762+-0.0140            1.2693+-0.0938        
   global-var-const-infer                             1.0175+-0.0988     ?      1.1005+-0.1725        ? might be 1.0815x slower
   HashMap-put-get-iterate-keys                      40.8877+-3.7061           37.4152+-2.4625          might be 1.0928x faster
   HashMap-put-get-iterate                           42.0907+-5.0904           41.0007+-3.0040          might be 1.0266x faster
   HashMap-string-put-get-iterate                    40.8537+-1.0630           38.9493+-1.7511          might be 1.0489x faster
   hoist-make-rope                                   11.4074+-1.5317           11.2749+-1.1260          might be 1.0118x faster
   hoist-poly-check-structure-effectful-loop   
                                                      5.9540+-0.0716     ?      6.0082+-0.0541        ?
   hoist-poly-check-structure                         4.5196+-0.0358     ?      4.6317+-0.1695        ? might be 1.0248x slower
   imul-double-only                                   9.9347+-0.7442            9.4990+-0.1825          might be 1.0459x faster
   imul-int-only                                     11.3140+-0.1372     ?     11.4698+-0.8412        ? might be 1.0138x slower
   imul-mixed                                         8.9402+-0.2339     ?      9.2015+-0.5101        ? might be 1.0292x slower
   in-four-cases                                     22.6990+-0.3195           22.5095+-0.3285        
   in-one-case-false                                 13.7681+-0.3032           13.6181+-0.5118          might be 1.0110x faster
   in-one-case-true                                  14.2463+-0.7791     ^     13.3357+-0.0860        ^ definitely 1.0683x faster
   in-two-cases                                      13.9230+-0.3460     ?     13.9371+-0.2956        ?
   indexed-properties-in-objects                      4.2130+-0.4523            3.9297+-0.1479          might be 1.0721x faster
   infer-closure-const-then-mov-no-inline             4.4725+-0.0676     ?      4.7043+-0.5094        ? might be 1.0518x slower
   infer-closure-const-then-mov                      24.1718+-0.5509           24.0657+-0.3903        
   infer-closure-const-then-put-to-scope-no-inline   
                                                     16.7432+-0.0785     ?     16.8010+-0.1063        ?
   infer-closure-const-then-put-to-scope             31.2041+-0.7272     ?     31.2832+-0.8139        ?
   infer-closure-const-then-reenter-no-inline   
                                                     70.5920+-0.8886           70.0687+-0.1537        
   infer-closure-const-then-reenter                  31.1966+-0.3051     ?     31.4068+-0.4466        ?
   infer-constant-global-property                     4.9490+-0.2200            4.8025+-0.0449          might be 1.0305x faster
   infer-constant-property                            3.7436+-0.2130            3.6607+-0.0333          might be 1.0226x faster
   infer-one-time-closure-ten-vars                   11.7959+-0.2049     ?     12.0095+-0.4966        ? might be 1.0181x slower
   infer-one-time-closure-two-vars                   11.4674+-0.4060     ?     11.5072+-0.3311        ?
   infer-one-time-closure                            11.3536+-0.1767           11.1552+-0.1949          might be 1.0178x faster
   infer-one-time-deep-closure                       18.3765+-0.3796           18.1848+-0.0667          might be 1.0105x faster
   inline-arguments-access                            5.4071+-0.1909     ?      5.4076+-0.2069        ?
   inline-arguments-aliased-access                    5.4158+-0.2950     ?      5.5922+-0.4789        ? might be 1.0326x slower
   inline-arguments-local-escape                      5.4653+-0.1240     ?      5.5341+-0.3447        ? might be 1.0126x slower
   inline-get-scoped-var                              6.4684+-0.2096            6.4497+-0.1050        
   inlined-put-by-id-transition                      13.9231+-0.1566     ?     14.6938+-0.6439        ? might be 1.0554x slower
   int-or-other-abs-then-get-by-val                   6.6871+-0.0342     ?      6.7622+-0.0964        ? might be 1.0112x slower
   int-or-other-abs-zero-then-get-by-val             22.9838+-0.2819           22.8396+-0.1001        
   int-or-other-add-then-get-by-val                   5.7160+-0.1558     ?      5.7987+-0.1436        ? might be 1.0145x slower
   int-or-other-add                                   6.9090+-0.0646            6.8681+-0.1030        
   int-or-other-div-then-get-by-val                   5.2795+-0.1458     ?      5.2869+-0.2166        ?
   int-or-other-max-then-get-by-val                   5.6655+-0.1285     ?      5.7716+-0.3100        ? might be 1.0187x slower
   int-or-other-min-then-get-by-val                   5.7865+-0.5010            5.7058+-0.1234          might be 1.0141x faster
   int-or-other-mod-then-get-by-val                   5.0318+-0.1739     ?      5.0529+-0.0699        ?
   int-or-other-mul-then-get-by-val                   5.1222+-0.0529     ?      5.6112+-0.5409        ? might be 1.0955x slower
   int-or-other-neg-then-get-by-val                   6.2839+-0.1366     ?      6.3058+-0.1925        ?
   int-or-other-neg-zero-then-get-by-val             23.3319+-0.4081           23.3239+-0.3146        
   int-or-other-sub-then-get-by-val                   5.7621+-0.1182     ?      5.8663+-0.3993        ? might be 1.0181x slower
   int-or-other-sub                                   4.8128+-0.0455     ?      4.8444+-0.0756        ?
   int-overflow-local                                 6.0565+-0.0911     ?      6.1749+-0.2575        ? might be 1.0195x slower
   Int16Array-alloc-long-lived                       64.3979+-1.4884     ?     64.5314+-1.0853        ?
   Int16Array-bubble-sort-with-byteLength            25.1576+-0.1106     ?     25.2114+-0.1637        ?
   Int16Array-bubble-sort                            25.3008+-0.6065           25.0662+-0.1962        
   Int16Array-load-int-mul                            2.0257+-0.1250     ?      2.0534+-0.1568        ? might be 1.0137x slower
   Int16Array-to-Int32Array-set                      63.4798+-1.0764     ?     65.3597+-0.8100        ? might be 1.0296x slower
   Int32Array-alloc-large                            16.9207+-1.0171     ?     17.6879+-0.8894        ? might be 1.0453x slower
   Int32Array-alloc-long-lived                       76.0684+-2.1305           75.3499+-1.0502        
   Int32Array-alloc                                   4.0753+-0.3679            3.9774+-0.2548          might be 1.0246x faster
   Int32Array-Int8Array-view-alloc                    8.5316+-0.1696            8.5138+-0.0759        
   int52-spill                                        8.2486+-3.1849            7.0771+-0.2316          might be 1.1655x faster
   Int8Array-alloc-long-lived                        58.9163+-1.5018     ?     59.6632+-1.3609        ? might be 1.0127x slower
   Int8Array-load-with-byteLength                     4.8614+-0.1165            4.8278+-0.0518        
   Int8Array-load                                     5.0979+-0.4893            4.8547+-0.0674          might be 1.0501x faster
   integer-divide                                    14.6098+-0.0616     ?     14.7489+-0.4399        ?
   integer-modulo                                     2.3440+-0.0619            2.3353+-0.0691        
   is-boolean-fold-tricky                             5.3248+-0.0317     ?      5.3289+-0.0435        ?
   is-boolean-fold                                    3.8586+-0.3466            3.7102+-0.0537          might be 1.0400x faster
   is-function-fold-tricky-internal-function   
                                                     14.1034+-0.1447     !     14.4038+-0.0631        ! definitely 1.0213x slower
   is-function-fold-tricky                            5.8336+-0.0746            5.7948+-0.0345        
   is-function-fold                                   3.7329+-0.0544            3.7312+-0.0378        
   is-number-fold-tricky                              5.8750+-0.4579            5.7024+-0.0573          might be 1.0303x faster
   is-number-fold                                     3.6923+-0.0437     ?      3.7333+-0.0504        ? might be 1.0111x slower
   is-object-or-null-fold-functions                   3.7655+-0.0783            3.7453+-0.0205        
   is-object-or-null-fold-less-tricky                 5.8389+-0.0752            5.7685+-0.0285          might be 1.0122x faster
   is-object-or-null-fold-tricky                      7.4935+-0.1296            7.4139+-0.1392          might be 1.0107x faster
   is-object-or-null-fold                             3.7224+-0.0724     ?      3.8503+-0.3717        ? might be 1.0344x slower
   is-object-or-null-trickier-function                5.9387+-0.2930            5.8425+-0.1013          might be 1.0165x faster
   is-object-or-null-trickier-internal-function   
                                                     14.8734+-0.0804     ?     15.8672+-0.9164        ? might be 1.0668x slower
   is-object-or-null-tricky-function                  5.8249+-0.0365            5.8105+-0.0476        
   is-object-or-null-tricky-internal-function   
                                                     10.9638+-0.0710           10.9600+-0.1171        
   is-string-fold-tricky                              5.7754+-0.1469            5.7607+-0.1287        
   is-string-fold                                     3.7174+-0.0682     ?      3.7206+-0.0878        ?
   is-undefined-fold-tricky                           4.7326+-0.0772            4.6707+-0.0382          might be 1.0133x faster
   is-undefined-fold                                  3.6982+-0.0546            3.6864+-0.0485        
   large-int-captured                                 5.7280+-0.3598            5.6570+-0.2016          might be 1.0126x faster
   large-int-neg                                     20.0339+-0.3203           20.0063+-0.5868        
   large-int                                         19.5975+-0.2763           19.5538+-0.4250        
   load-varargs-elimination                          30.6144+-0.3474           30.5534+-0.2198        
   logical-not-weird-types                            3.9318+-0.1015     ?      4.0169+-0.2836        ? might be 1.0217x slower
   logical-not                                        6.0317+-0.6067            5.7496+-0.0727          might be 1.0491x faster
   lots-of-fields                                    13.7654+-0.7032           13.0540+-0.4040          might be 1.0545x faster
   make-indexed-storage                               3.9229+-0.1112     ?      4.0341+-0.0951        ? might be 1.0283x slower
   make-rope-cse                                     16.0533+-0.9344     ?     16.0907+-0.8341        ?
   marsaglia-larger-ints                             47.5251+-0.5857           47.3651+-0.5867        
   marsaglia-osr-entry                               29.9279+-0.3197     ?     30.4356+-0.7593        ? might be 1.0170x slower
   math-with-out-of-bounds-array-values              30.7618+-0.4159     !     32.5852+-0.6098        ! definitely 1.0593x slower
   max-boolean                                        3.7745+-0.0576     ?      3.8838+-0.1324        ? might be 1.0290x slower
   method-on-number                                  23.2431+-0.3662     ?     23.7395+-1.1306        ? might be 1.0214x slower
   min-boolean                                        3.7998+-0.1879            3.7877+-0.0650        
   minus-boolean-double                               4.4510+-0.2435            4.3057+-0.0247          might be 1.0337x faster
   minus-boolean                                      3.3120+-0.0886            3.2513+-0.0595          might be 1.0187x faster
   misc-strict-eq                                    44.4905+-0.8290     ?     46.0675+-3.0530        ? might be 1.0354x slower
   mod-boolean-double                                16.0910+-0.0515           16.0852+-0.0711        
   mod-boolean                                       12.0833+-0.4111     ?     12.2203+-0.6122        ? might be 1.0113x slower
   mul-boolean-double                                 5.2192+-0.2281            5.2003+-0.2910        
   mul-boolean                                        3.9312+-0.0385     ?      4.0040+-0.2278        ? might be 1.0185x slower
   neg-boolean                                        4.4479+-0.1810            4.3393+-0.0341          might be 1.0250x faster
   negative-zero-divide                               0.4673+-0.0117     ?      0.4862+-0.0474        ? might be 1.0405x slower
   negative-zero-modulo                               0.4724+-0.0521            0.4425+-0.0129          might be 1.0677x faster
   negative-zero-negate                               0.4352+-0.0347     ?      0.5251+-0.2243        ? might be 1.2065x slower
   nested-function-parsing                           47.8448+-0.4125     ?     48.0353+-1.0171        ?
   new-array-buffer-dead                            118.5815+-1.0909     ^     49.3545+-1.1402        ^ definitely 2.4027x faster
   new-array-buffer-push                              8.5349+-0.4158            8.4177+-0.4694          might be 1.0139x faster
   new-array-dead                                    18.5445+-0.7297     ?     19.6522+-0.6569        ? might be 1.0597x slower
   new-array-push                                     7.9772+-0.1574     ?      8.0108+-0.3163        ?
   no-inline-constructor                             45.8046+-0.8493           45.5667+-1.0700        
   number-test                                        4.0118+-0.0433            4.0016+-0.0770        
   object-closure-call                                6.9542+-0.1025            6.8672+-0.1217          might be 1.0127x faster
   object-test                                        3.6812+-0.0715     ?      3.6836+-0.0417        ?
   obvious-sink-pathology-taken                     138.1554+-0.8490          137.7163+-1.6098        
   obvious-sink-pathology                           130.8601+-0.6464     ?    131.1322+-1.0614        ?
   obviously-elidable-new-object                     40.2645+-1.1233     ?     40.6797+-0.3004        ? might be 1.0103x slower
   plus-boolean-arith                                 3.3199+-0.0327     ?      3.3432+-0.1002        ?
   plus-boolean-double                                4.3736+-0.0593            4.3490+-0.0402        
   plus-boolean                                       3.6628+-0.1073     ?      3.7390+-0.3543        ? might be 1.0208x slower
   poly-chain-access-different-prototypes-simple   
                                                      3.8379+-0.0830            3.7841+-0.0509          might be 1.0142x faster
   poly-chain-access-different-prototypes             3.6077+-0.2217            3.5159+-0.0415          might be 1.0261x faster
   poly-chain-access-simpler                          3.8427+-0.0638     ^      3.7580+-0.0187        ^ definitely 1.0225x faster
   poly-chain-access                                  3.4819+-0.0563     ?      3.4951+-0.0212        ?
   poly-stricteq                                     72.7793+-0.1841     ?     73.5795+-0.7440        ? might be 1.0110x slower
   polymorphic-array-call                             1.6809+-0.0925            1.6586+-0.0645          might be 1.0134x faster
   polymorphic-get-by-id                              4.0480+-0.0625     ?      4.1561+-0.2835        ? might be 1.0267x slower
   polymorphic-put-by-id                             36.5878+-1.6693           35.9707+-1.2047          might be 1.0172x faster
   polymorphic-structure                             19.0585+-0.6926           18.8691+-0.1558          might be 1.0100x faster
   polyvariant-monomorphic-get-by-id                  9.8488+-0.9159            9.2648+-0.9817          might be 1.0630x faster
   proto-getter-access                               11.4511+-0.1575           11.4241+-0.1745        
   put-by-id-replace-and-transition                  10.6160+-0.4122     ?     11.1586+-0.9840        ? might be 1.0511x slower
   put-by-id-slightly-polymorphic                     3.6502+-0.0279     ?      3.7246+-0.0799        ? might be 1.0204x slower
   put-by-id                                         13.6373+-0.9256           13.5017+-0.5931          might be 1.0100x faster
   put-by-val-direct                                  0.4875+-0.0543     ?      0.5113+-0.0875        ? might be 1.0489x slower
   put-by-val-large-index-blank-indexing-type   
                                                     16.0518+-0.9295           15.8452+-0.3139          might be 1.0130x faster
   put-by-val-machine-int                             3.4543+-0.1147            3.4233+-0.0975        
   rare-osr-exit-on-local                            20.8619+-0.1650     ?     21.0890+-0.1751        ? might be 1.0109x slower
   register-pressure-from-osr                         5.9394+-0.2826     ?      6.1133+-0.7807        ? might be 1.0293x slower
   repeat-multi-get-by-offset                        31.5610+-0.8101     ?     31.6165+-0.6159        ?
   setter-prototype                                  10.6701+-0.2761           10.5892+-0.3188        
   setter                                             7.3477+-0.4872     ?      8.3250+-1.7170        ? might be 1.1330x slower
   simple-activation-demo                            35.1720+-0.3464     ?     35.3663+-0.7147        ?
   simple-getter-access                              14.7541+-0.3616     ?     14.7627+-0.3466        ?
   simple-poly-call-nested                           12.3137+-0.7938           12.1593+-0.8076          might be 1.0127x faster
   simple-poly-call                                   1.6800+-0.0434     ?      1.8280+-0.2925        ? might be 1.0881x slower
   sin-boolean                                       25.7398+-2.2997           25.2312+-0.3665          might be 1.0202x faster
   singleton-scope                                   81.8487+-0.0915           81.8279+-0.0945        
   sink-function                                     13.3206+-1.2674     ?     13.9239+-1.1223        ? might be 1.0453x slower
   sink-huge-activation                              23.0592+-0.6424           22.2062+-0.6106          might be 1.0384x faster
   sinkable-new-object-dag                           80.0572+-0.7412     ?     80.6264+-1.5414        ?
   sinkable-new-object-taken                         61.2653+-0.9561     ?     62.2662+-2.0414        ? might be 1.0163x slower
   sinkable-new-object                               43.1818+-0.8687           42.7889+-0.9062        
   slow-array-profile-convergence                     3.7372+-0.3267     ?      3.8503+-0.2455        ? might be 1.0303x slower
   slow-convergence                                   4.9179+-0.3578            4.7169+-0.2165          might be 1.0426x faster
   slow-ternaries                                    23.9500+-0.3589           23.7406+-0.2095        
   sorting-benchmark                                 24.1223+-0.7836           23.9695+-0.5262        
   sparse-conditional                                 1.5525+-0.0430     ?      1.5703+-0.0649        ? might be 1.0115x slower
   splice-to-remove                                  18.0640+-0.4263           17.8163+-0.2964          might be 1.0139x faster
   string-char-code-at                               20.9621+-0.1453     ?     21.5082+-0.9427        ? might be 1.0261x slower
   string-concat-object                               3.0443+-0.1335     ?      3.2043+-0.1440        ? might be 1.0526x slower
   string-concat-pair-object                          3.0833+-0.1642            3.0798+-0.1456        
   string-concat-pair-simple                         12.7252+-0.5495     ?     12.8010+-0.2464        ?
   string-concat-simple                              13.0702+-0.4167           12.8462+-0.2121          might be 1.0174x faster
   string-cons-repeat                                 9.2720+-0.3023            9.2301+-0.3010        
   string-cons-tower                                  9.5595+-0.2224     ?      9.9779+-0.4568        ? might be 1.0438x slower
   string-equality                                   22.0387+-0.6523           22.0360+-0.4991        
   string-get-by-val-big-char                         9.5002+-0.1965            9.4671+-0.2981        
   string-get-by-val-out-of-bounds-insane             4.5863+-0.0573     ?      4.6139+-0.0987        ?
   string-get-by-val-out-of-bounds                    5.9871+-0.1484            5.9525+-0.1265        
   string-get-by-val                                  3.9886+-0.0507     ?      4.0578+-0.1186        ? might be 1.0173x slower
   string-hash                                        2.6060+-0.1568            2.5478+-0.0208          might be 1.0229x faster
   string-long-ident-equality                        18.3726+-0.1092     ?     18.4144+-0.0605        ?
   string-out-of-bounds                              15.2758+-0.6553           14.8133+-0.1615          might be 1.0312x faster
   string-repeat-arith                               39.8111+-0.9496     ^     38.6082+-0.2004        ^ definitely 1.0312x faster
   string-sub                                        76.9996+-0.5420     ?     77.6253+-0.8932        ?
   string-test                                        3.9615+-0.1608            3.8263+-0.0392          might be 1.0353x faster
   string-var-equality                               36.9857+-0.4432           36.5289+-0.1707          might be 1.0125x faster
   structure-hoist-over-transitions                   3.3840+-0.1126     ?      3.4619+-0.0576        ? might be 1.0230x slower
   substring-concat-weird                            53.1941+-1.1301     ?     53.7129+-0.8164        ?
   substring-concat                                  56.8217+-0.8451     ?     56.8410+-0.5339        ?
   substring                                         65.3829+-1.4530     ?     65.5586+-0.6381        ?
   switch-char-constant                               3.8552+-0.1248     ?      3.9842+-0.2837        ? might be 1.0335x slower
   switch-char                                        8.5063+-1.6512            7.9098+-0.8490          might be 1.0754x faster
   switch-constant                                   11.2163+-0.8718           11.1184+-0.9024        
   switch-string-basic-big-var                       23.5643+-0.2173     ?     23.6774+-0.3469        ?
   switch-string-basic-big                           20.9624+-0.3239           20.7684+-0.2432        
   switch-string-basic-var                           18.9980+-0.1669     ?     19.1134+-0.2584        ?
   switch-string-basic                               18.1254+-0.4472           17.9694+-0.1969        
   switch-string-big-length-tower-var                25.6084+-0.2331           25.5317+-0.3021        
   switch-string-length-tower-var                    18.6718+-0.0531     ?     18.7151+-0.1059        ?
   switch-string-length-tower                        16.6176+-0.2060           16.5128+-0.1039        
   switch-string-short                               16.6564+-0.0606     ?     16.8316+-0.2448        ? might be 1.0105x slower
   switch                                            16.3107+-0.4277     ?     16.4823+-0.8291        ? might be 1.0105x slower
   tear-off-arguments-simple                          4.3913+-0.2278     ?      4.5393+-0.2600        ? might be 1.0337x slower
   tear-off-arguments                                 6.0424+-0.0783            6.0299+-0.1470        
   temporal-structure                                17.3840+-0.1829           17.3577+-0.1574        
   to-int32-boolean                                  19.3539+-0.6558           19.1743+-0.3015        
   try-catch-get-by-val-cloned-arguments             19.1593+-0.4465           18.8738+-0.2744          might be 1.0151x faster
   try-catch-get-by-val-direct-arguments              8.6525+-0.8551            8.3850+-0.1716          might be 1.0319x faster
   try-catch-get-by-val-scoped-arguments             10.0625+-0.1900            9.9945+-0.2922        
   typed-array-get-set-by-val-profiling              46.8158+-1.2169           46.3362+-1.4625          might be 1.0104x faster
   undefined-property-access                        319.9773+-0.8668     ?    320.5708+-4.1957        ?
   undefined-test                                     3.9632+-0.0764     ?      4.0177+-0.0643        ? might be 1.0137x slower
   unprofiled-licm                                   20.2107+-0.2221     ?     20.3387+-0.4070        ?
   varargs-call                                      21.9235+-5.3047           19.9691+-0.2650          might be 1.0979x faster
   varargs-construct-inline                          31.7065+-0.6824           31.5653+-1.0934        
   varargs-construct                                 28.2440+-0.5799     ?     28.6754+-0.8143        ? might be 1.0153x slower
   varargs-inline                                    11.9604+-0.1035           11.9303+-0.1844        
   varargs-strict-mode                               13.1782+-0.2213           13.0566+-0.0477        
   varargs                                           13.0565+-0.2212           13.0381+-0.0870        
   weird-inlining-const-prop                          3.8135+-0.4373     ?      4.0838+-0.3660        ? might be 1.0709x slower

   <geometric>                                       10.8172+-0.0325           10.7937+-0.0109          might be 1.0022x faster

                                                           ToT                   SinkNewArray                                   
AsmBench:
   bigfib.cpp                                       657.2799+-2.4528          653.6757+-2.6926        
   cray.c                                           587.7290+-1.5785          587.4943+-1.3100        
   dry.c                                            647.4288+-21.8845         646.5314+-21.6164       
   FloatMM.c                                       1028.2790+-0.8189     ?   1028.3118+-0.7698        ?
   gcc-loops.cpp                                   5161.3079+-64.7876        5148.0117+-31.1622       
   n-body.c                                        1239.3692+-0.7884         1239.1803+-1.5246        
   Quicksort.c                                      609.8112+-4.9962          606.2788+-6.5283        
   stepanov_container.cpp                          5212.8597+-30.7388        5209.5727+-21.0209       
   Towers.c                                         336.7882+-3.5738     ?    338.3530+-3.7189        ?

   <geometric>                                     1064.8455+-3.8058         1063.4640+-6.0580          might be 1.0013x faster

                                                           ToT                   SinkNewArray                                   
CompressionBench:
   huffman                                          491.5022+-7.2746     ^    455.2397+-2.1972        ^ definitely 1.0797x faster
   arithmetic-simple                                429.4030+-2.0403     ?    430.2218+-5.3695        ?
   arithmetic-precise                               381.4248+-3.2050     ?    385.9755+-7.7131        ? might be 1.0119x slower
   arithmetic-complex-precise                       361.7280+-1.2594     ?    404.9041+-75.8409       ? might be 1.1194x slower
   arithmetic-precise-order-0                       440.7911+-1.8671     ?    441.7456+-1.8906        ?
   arithmetic-precise-order-1                       431.7844+-3.3963     ?    433.5873+-2.9876        ?
   arithmetic-precise-order-2                       497.8798+-4.6494          493.6587+-3.4099        
   arithmetic-simple-order-1                        491.8870+-2.7251     ?    492.3499+-2.8869        ?
   arithmetic-simple-order-2                        694.2440+-150.6608        605.1494+-8.6717          might be 1.1472x faster
   lz-string                                        422.5778+-4.2735     ?    426.8592+-7.9342        ? might be 1.0101x slower

   <geometric>                                      456.3962+-9.1992          453.0402+-8.6506          might be 1.0074x faster

                                                           ToT                   SinkNewArray                                   
Geomean of preferred means:
   <scaled-result>                                   78.8809+-0.4273           78.5663+-0.2481          might be 1.0040x faster
Comment 12 WebKit Commit Bot 2015-06-15 12:10:41 PDT
Attachment 254880 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:1031:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:1043:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:1057:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:1285:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 4 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 13 Basile Clement 2015-06-15 12:27:20 PDT
Created attachment 254887 [details]
Patch
Comment 14 WebKit Commit Bot 2015-06-15 12:30:12 PDT
Attachment 254887 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:1033:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:1045:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:1059:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:1287:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 4 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 15 Filip Pizlo 2015-06-15 15:33:50 PDT
Comment on attachment 254887 [details]
Patch

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

> Source/JavaScriptCore/dfg/DFGPromoteHeapAccess.h:36
> +static inline bool indexIsInBounds(Node* base, Node* index, Array::Type type)

No need to say "static".

> Source/JavaScriptCore/dfg/DFGPromoteHeapAccess.h:39
> +    if (!index->isMachineIntConstant())
> +        return false;

Just use int32.

> Source/JavaScriptCore/dfg/DFGPromoteHeapAccess.h:71
> +    if (index->asMachineInt() < 0 || index->asMachineInt() >= length)

Ditto.