Bug 148915 - CallLinkInfo inside StructureStubInfo should not use polymorphic stubs
Summary: CallLinkInfo inside StructureStubInfo should not use polymorphic stubs
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: Other
Hardware: All All
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords:
Depends on:
Blocks: 148914 148717
  Show dependency treegraph
 
Reported: 2015-09-06 13:10 PDT by Filip Pizlo
Modified: 2015-09-08 11:17 PDT (History)
10 users (show)

See Also:


Attachments
the patch (5.92 KB, patch)
2015-09-06 14:28 PDT, Filip Pizlo
mark.lam: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Filip Pizlo 2015-09-06 13:10:24 PDT
Because we can't handle that soundly yet, see: https://bugs.webkit.org/show_bug.cgi?id=148914.
Comment 1 Filip Pizlo 2015-09-06 14:23:03 PDT
Performance is OK:


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

VMs tested:
"TipOfTree" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r189445)
"NoStubInStub" at /Volumes/Data/quartary/OpenSource/WebKitBuild/Release/jsc (r189445)

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

                                                        TipOfTree                NoStubInStub                                   
SunSpider:
   3d-cube                                            4.4863+-0.3037     ?      4.5702+-0.2353        ? might be 1.0187x slower
   3d-morph                                           5.0741+-0.1274            4.9985+-0.1619          might be 1.0151x faster
   3d-raytrace                                        5.2273+-0.2595     ?      5.3072+-0.5163        ? might be 1.0153x slower
   access-binary-trees                                2.2078+-0.4364            2.0059+-0.1611          might be 1.1007x faster
   access-fannkuch                                    5.2579+-0.0649     ?      5.2679+-0.1200        ?
   access-nbody                                       2.4175+-0.0524     ?      2.4976+-0.2245        ? might be 1.0332x slower
   access-nsieve                                      3.1463+-0.1867            3.0030+-0.0855          might be 1.0477x faster
   bitops-3bit-bits-in-byte                           1.0945+-0.0146            1.0886+-0.0149        
   bitops-bits-in-byte                                3.2297+-0.0519     ?      3.2903+-0.1139        ? might be 1.0188x slower
   bitops-bitwise-and                                 2.0590+-0.1059            1.9787+-0.0215          might be 1.0406x faster
   bitops-nsieve-bits                                 3.0474+-0.1402            2.9359+-0.1077          might be 1.0380x faster
   controlflow-recursive                              2.2109+-0.2329     ?      2.2199+-0.3178        ?
   crypto-aes                                         3.8497+-0.1525            3.7915+-0.0995          might be 1.0154x faster
   crypto-md5                                         2.3409+-0.1050     ?      2.4137+-0.2106        ? might be 1.0311x slower
   crypto-sha1                                        2.3342+-0.2377            2.3076+-0.1487          might be 1.0115x faster
   date-format-tofte                                  6.9188+-0.2255            6.7803+-0.1394          might be 1.0204x faster
   date-format-xparb                                  4.9956+-0.3415     ^      4.5246+-0.0651        ^ definitely 1.1041x faster
   math-cordic                                        2.8676+-0.1282            2.8104+-0.1069          might be 1.0204x faster
   math-partial-sums                                  5.1741+-0.3847            5.1719+-0.3610        
   math-spectral-norm                                 1.7890+-0.0440     ?      1.8225+-0.0658        ? might be 1.0187x slower
   regexp-dna                                         6.3525+-0.0792     ?      6.6026+-0.4818        ? might be 1.0394x slower
   string-base64                                      4.5549+-0.2503            4.2684+-0.0993          might be 1.0671x faster
   string-fasta                                       5.8602+-0.4061            5.7390+-0.1687          might be 1.0211x faster
   string-tagcloud                                    7.9677+-0.3272            7.7136+-0.1252          might be 1.0329x faster
   string-unpack-code                                18.1760+-0.2635     ?     18.4814+-0.4719        ? might be 1.0168x slower
   string-validate-input                              4.9892+-0.1441     ?      5.0230+-0.1059        ?

   <arithmetic>                                       4.5242+-0.0318            4.4852+-0.0505          might be 1.0087x faster

                                                        TipOfTree                NoStubInStub                                   
LongSpider:
   3d-cube                                          806.8251+-6.7709     ?    811.3313+-17.8794       ?
   3d-morph                                        1487.5291+-3.0184         1485.6471+-3.0198        
   3d-raytrace                                      600.3646+-2.6881          598.4247+-4.7627        
   access-binary-trees                              799.3903+-4.3820          794.1060+-2.1701        
   access-fannkuch                                  270.9680+-2.6412     ?    273.9191+-5.3494        ? might be 1.0109x slower
   access-nbody                                     508.2931+-1.0516     ?    509.9128+-4.6424        ?
   access-nsieve                                    368.1795+-11.5616         358.6409+-2.0344          might be 1.0266x faster
   bitops-3bit-bits-in-byte                          33.6956+-0.4579     ?     34.5469+-1.0365        ? might be 1.0253x slower
   bitops-bits-in-byte                               75.3085+-0.4176     ?     75.4519+-0.7142        ?
   bitops-nsieve-bits                               401.0587+-1.8868     ?    403.7114+-4.4201        ?
   controlflow-recursive                            430.6757+-8.5851          430.6240+-6.1257        
   crypto-aes                                       574.6968+-6.4648     ?    577.6324+-1.7762        ?
   crypto-md5                                       490.3250+-4.1085     ?    492.0566+-4.6088        ?
   crypto-sha1                                      625.4554+-9.6406     ?    632.8088+-10.1040       ? might be 1.0118x slower
   date-format-tofte                                502.8369+-1.4068     ?    503.4295+-8.0359        ?
   date-format-xparb                                662.2698+-6.3771     ?    662.4692+-2.5129        ?
   hash-map                                         168.0698+-2.0674     ?    169.8882+-5.4826        ? might be 1.0108x slower
   math-cordic                                      475.4584+-2.0676     ?    476.7958+-3.1921        ?
   math-partial-sums                                462.6608+-8.0439          461.9444+-7.3613        
   math-spectral-norm                               548.1280+-1.6347          546.5201+-1.4016        
   string-base64                                    363.8511+-1.6983     ?    368.9916+-8.2376        ? might be 1.0141x slower
   string-fasta                                     363.3456+-2.2319     ?    365.7929+-5.9052        ?
   string-tagcloud                                  175.8462+-2.0411          174.4048+-1.1084        

   <geometric>                                      388.2050+-1.5183     ?    389.1822+-1.2551        ? might be 1.0025x slower

                                                        TipOfTree                NoStubInStub                                   
V8Spider:
   crypto                                            49.2291+-1.9633           49.0299+-2.0053        
   deltablue                                         88.4742+-4.0679           83.6919+-4.3359          might be 1.0571x faster
   earley-boyer                                      39.9048+-0.6154     !     41.8211+-0.7963        ! definitely 1.0480x slower
   raytrace                                          31.1692+-1.5761     ?     31.4865+-0.7358        ? might be 1.0102x slower
   regexp                                            62.2840+-1.3511     ?     62.7709+-2.2257        ?
   richards                                          64.6859+-0.6690           64.5993+-1.6172        
   splay                                             35.4570+-1.6000     ?     36.7076+-2.0637        ? might be 1.0353x slower

   <geometric>                                       49.9052+-0.7047     ?     50.1730+-0.4239        ? might be 1.0054x slower

                                                        TipOfTree                NoStubInStub                                   
Octane:
   encrypt                                           0.16968+-0.00082          0.16940+-0.00051       
   decrypt                                           3.30260+-0.07246          3.27650+-0.02141       
   deltablue                                x2       0.15625+-0.00132    ?     0.16358+-0.01356       ? might be 1.0469x slower
   earley                                            0.28528+-0.00353          0.28230+-0.00243         might be 1.0106x faster
   boyer                                             4.26981+-0.02797    ?     4.30473+-0.04682       ?
   navier-stokes                            x2       4.82061+-0.00943    ?     4.82936+-0.02379       ?
   raytrace                                 x2       1.00953+-0.05469          1.00119+-0.06153       
   richards                                 x2       0.10732+-0.00163          0.10666+-0.00158       
   splay                                    x2       0.33023+-0.01172          0.32631+-0.00243         might be 1.0120x faster
   regexp                                   x2      24.95905+-0.45041    ?    24.97907+-0.63837       ?
   pdfjs                                    x2      36.85872+-0.26870         36.80195+-0.22459       
   mandreel                                 x2      44.04581+-0.53996         43.77024+-0.49820       
   gbemu                                    x2      33.85562+-0.39719    ?    35.27678+-2.56624       ? might be 1.0420x slower
   closure                                           0.56738+-0.00320          0.56687+-0.00393       
   jquery                                            7.09176+-0.06106    ?     7.12307+-0.17365       ?
   box2d                                    x2       9.91938+-0.05786    ?     9.92044+-0.05343       ?
   zlib                                     x2     382.61721+-12.36181       378.58754+-10.88932        might be 1.0106x faster
   typescript                               x2     637.98741+-7.48997    ?   693.82129+-108.53300     ? might be 1.0875x slower

   <geometric>                                       5.55480+-0.04184    ?     5.59558+-0.07193       ? might be 1.0073x slower

                                                        TipOfTree                NoStubInStub                                   
Kraken:
   ai-astar                                          221.657+-7.404            220.366+-1.894         
   audio-beat-detection                               50.190+-0.403      ?      50.206+-0.591         ?
   audio-dft                                          95.523+-0.962      ?      96.717+-1.731         ? might be 1.0125x slower
   audio-fft                                          34.643+-0.207      ?      34.666+-0.358         ?
   audio-oscillator                                   59.145+-0.706      ?      60.176+-2.556         ? might be 1.0174x slower
   imaging-darkroom                                   60.785+-0.137             60.734+-0.099         
   imaging-desaturate                                 48.775+-0.294      ?      49.541+-1.134         ? might be 1.0157x slower
   imaging-gaussian-blur                              85.271+-0.325             85.090+-0.399         
   json-parse-financial                               40.134+-2.063             38.746+-0.598           might be 1.0358x faster
   json-stringify-tinderbox                           23.050+-0.592             22.446+-0.497           might be 1.0269x faster
   stanford-crypto-aes                                40.960+-1.078             40.522+-0.753           might be 1.0108x faster
   stanford-crypto-ccm                                35.447+-1.598             35.218+-1.414         
   stanford-crypto-pbkdf2                             99.370+-14.898            93.338+-0.157           might be 1.0646x faster
   stanford-crypto-sha256-iterative                   35.814+-0.423      ?      36.589+-1.610         ? might be 1.0216x slower

   <arithmetic>                                       66.483+-0.971             66.025+-0.372           might be 1.0069x faster

                                                        TipOfTree                NoStubInStub                                   
JSRegress:
   abc-forward-loop-equal                            29.7244+-0.7421     ?     31.1076+-2.5834        ? might be 1.0465x slower
   abc-postfix-backward-loop                         29.5448+-0.4980     ?     29.9453+-0.7308        ? might be 1.0136x slower
   abc-simple-backward-loop                          29.5804+-0.8255     ?     29.8438+-1.3053        ?
   abc-simple-forward-loop                           29.2694+-0.7099           29.0974+-0.5866        
   abc-skippy-loop                                   21.3121+-0.4092           21.2400+-0.5586        
   abs-boolean                                        2.4745+-0.1382     ?      2.5015+-0.1951        ? might be 1.0109x slower
   adapt-to-double-divide                            15.9676+-0.2260     ?     16.2312+-0.2857        ? might be 1.0165x slower
   aliased-arguments-getbyval                         1.1943+-0.0895            1.1770+-0.0546          might be 1.0147x faster
   allocate-big-object                                2.5547+-0.2203            2.5283+-0.1291          might be 1.0105x faster
   arguments-named-and-reflective                    11.0901+-0.4128           10.6414+-0.2345          might be 1.0422x faster
   arguments-out-of-bounds                            9.4186+-0.5272            9.3877+-0.5624        
   arguments-strict-mode                              9.4594+-0.5420            9.3050+-0.3824          might be 1.0166x faster
   arguments                                          8.0910+-0.2493     ?      8.3850+-0.4227        ? might be 1.0363x slower
   arity-mismatch-inlining                            0.8299+-0.0346     ?      0.8340+-0.0542        ?
   array-access-polymorphic-structure                 6.1870+-0.6204            5.8774+-0.3797          might be 1.0527x faster
   array-nonarray-polymorhpic-access                 26.8662+-4.8985           25.3439+-1.0107          might be 1.0601x faster
   array-prototype-every                             74.5350+-0.6680           74.0367+-0.8892        
   array-prototype-forEach                           73.6602+-0.7949     ?     73.8019+-1.5184        ?
   array-prototype-map                               80.2021+-0.6616           79.9478+-1.1112        
   array-prototype-reduce                            70.2996+-0.9462           69.9914+-1.2668        
   array-prototype-reduceRight                       69.9532+-0.8572     ?     71.9436+-4.0373        ? might be 1.0285x slower
   array-prototype-some                              75.3942+-0.9478           74.6004+-1.1567          might be 1.0106x faster
   array-splice-contiguous                           21.3991+-0.8386           20.6709+-1.6456          might be 1.0352x faster
   array-with-double-add                              3.4019+-0.0596     ?      3.5032+-0.3005        ? might be 1.0298x slower
   array-with-double-increment                        3.1958+-0.2802            3.0254+-0.0579          might be 1.0563x faster
   array-with-double-mul-add                          4.2989+-0.3100     ?      4.4030+-0.7248        ? might be 1.0242x slower
   array-with-double-sum                              3.1895+-0.1115            3.1468+-0.0415          might be 1.0136x faster
   array-with-int32-add-sub                           5.6114+-0.0452            5.6003+-0.0339        
   array-with-int32-or-double-sum                     3.2364+-0.0781            3.2077+-0.0553        
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     26.0305+-1.1462           25.5238+-0.4927          might be 1.0199x faster
   ArrayBuffer-DataView-alloc-long-lived             11.4500+-0.1828     ?     11.8132+-0.3342        ? might be 1.0317x slower
   ArrayBuffer-Int32Array-byteOffset                  3.6484+-0.2443            3.4762+-0.0475          might be 1.0496x faster
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     30.1263+-0.6853           29.5524+-0.7495          might be 1.0194x faster
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     19.9542+-0.4455     ?     20.2920+-0.5131        ? might be 1.0169x slower
   ArrayBuffer-Int8Array-alloc-long-lived            12.0696+-0.2845     ?     12.3127+-0.2866        ? might be 1.0201x slower
   ArrayBuffer-Int8Array-alloc                        9.4438+-0.4651     ?      9.4674+-0.4329        ?
   arrowfunction-call                                 9.9634+-0.2406     ?      9.9743+-0.2338        ?
   asmjs_bool_bug                                     7.6534+-0.1416            7.5491+-0.1153          might be 1.0138x faster
   assign-custom-setter-polymorphic                   2.4540+-0.4127            2.3919+-0.1748          might be 1.0260x faster
   assign-custom-setter                               3.1885+-0.0405     ?      3.4525+-0.5640        ? might be 1.0828x slower
   basic-set                                          7.2740+-0.2723     ?      7.3503+-0.3956        ? might be 1.0105x slower
   big-int-mul                                        3.5113+-0.0875            3.4994+-0.1660        
   boolean-test                                       3.0268+-0.2173            2.8673+-0.0495          might be 1.0556x faster
   branch-fold                                        3.5906+-0.0497     ?      3.6002+-0.0876        ?
   branch-on-string-as-boolean                       16.8010+-0.5952     ?     17.0924+-0.5960        ? might be 1.0173x slower
   by-val-generic                                     2.2467+-0.0445            2.2060+-0.1130          might be 1.0185x faster
   call-spread-apply                                 25.9139+-0.3747     ?     27.2242+-1.7575        ? might be 1.0506x slower
   call-spread-call                                  21.1360+-0.8603     ?     23.0452+-5.0492        ? might be 1.0903x slower
   captured-assignments                               0.4126+-0.0120     ?      0.4207+-0.0316        ? might be 1.0194x slower
   cast-int-to-double                                 4.9820+-0.1554     ?      5.0335+-0.1206        ? might be 1.0103x slower
   cell-argument                                      6.4866+-0.1843            6.2238+-0.2682          might be 1.0422x faster
   cfg-simplify                                       2.7990+-0.0861     ?      2.9252+-0.3169        ? might be 1.0451x slower
   chain-getter-access                                8.1314+-0.1970     ?      8.3066+-0.2197        ? might be 1.0215x slower
   cmpeq-obj-to-obj-other                            11.0854+-1.0462     ?     12.7997+-1.4830        ? might be 1.1546x slower
   constant-test                                      4.7382+-0.0924     ?      4.8018+-0.0773        ? might be 1.0134x slower
   create-lots-of-functions                           9.6133+-0.5413     ?     10.0395+-1.3193        ? might be 1.0443x slower
   cse-new-array-buffer                               2.3808+-0.2955            2.2601+-0.1306          might be 1.0534x faster
   cse-new-array                                      2.3218+-0.1387     ?      2.3408+-0.0704        ?
   DataView-custom-properties                        30.6669+-1.0409     ?     31.8961+-1.0801        ? might be 1.0401x slower
   delay-tear-off-arguments-strictmode               12.1011+-0.5198     ?     12.5457+-0.5612        ? might be 1.0367x slower
   deltablue-varargs                                162.8049+-2.2320          161.0285+-3.0028          might be 1.0110x faster
   destructuring-arguments                          160.4623+-1.3405          160.1183+-1.7519        
   destructuring-parameters-overridden-by-function   
                                                      0.4600+-0.0239            0.4420+-0.0298          might be 1.0408x faster
   destructuring-swap                                 4.6286+-0.0545     ?      4.6528+-0.1295        ?
   direct-arguments-getbyval                          1.1877+-0.0606            1.1826+-0.0931        
   div-boolean-double                                 5.2381+-0.2374     ?      5.3285+-0.1533        ? might be 1.0172x slower
   div-boolean                                        8.0312+-0.0517     ?      8.1805+-0.1572        ? might be 1.0186x slower
   double-get-by-val-out-of-bounds                    4.0324+-0.1043     ?      4.1190+-0.2022        ? might be 1.0215x slower
   double-pollution-getbyval                          8.8461+-0.2412            8.7795+-0.3400        
   double-pollution-putbyoffset                       3.6892+-0.0658     ?      3.7332+-0.2184        ? might be 1.0119x slower
   double-real-use                                   24.5750+-1.5498     ?     25.6860+-2.4632        ? might be 1.0452x slower
   double-to-int32-typed-array-no-inline              2.0336+-0.1266            1.9353+-0.0532          might be 1.0508x faster
   double-to-int32-typed-array                        1.7902+-0.0201     ?      1.8434+-0.1410        ? might be 1.0297x slower
   double-to-uint32-typed-array-no-inline             2.0975+-0.2596            2.0942+-0.1638        
   double-to-uint32-typed-array                       1.9083+-0.1362            1.8737+-0.0332          might be 1.0184x faster
   elidable-new-object-dag                           34.0727+-0.5003     ?     34.2442+-0.5749        ?
   elidable-new-object-roflcopter                    33.9821+-1.1125           33.7797+-0.9085        
   elidable-new-object-then-call                     32.1508+-1.2873     ?     32.5077+-1.2293        ? might be 1.0111x slower
   elidable-new-object-tree                          37.3875+-0.6587     ?     37.7885+-1.3148        ? might be 1.0107x slower
   empty-string-plus-int                              4.9699+-0.4158            4.7076+-0.1499          might be 1.0557x faster
   emscripten-cube2hash                              27.5615+-2.5568           27.1147+-2.2161          might be 1.0165x faster
   exit-length-on-plain-object                       12.4902+-0.3860           12.4095+-0.8482        
   external-arguments-getbyval                        1.2685+-0.2397            1.1970+-0.1313          might be 1.0597x faster
   external-arguments-putbyval                        2.0605+-0.0308            2.0401+-0.0514          might be 1.0100x faster
   fixed-typed-array-storage-var-index                1.1234+-0.0148            1.1136+-0.0184        
   fixed-typed-array-storage                          0.8378+-0.0118            0.8260+-0.0184          might be 1.0143x faster
   Float32Array-matrix-mult                           3.9083+-0.1543     ?      3.9683+-0.3899        ? might be 1.0154x slower
   Float32Array-to-Float64Array-set                  51.2129+-10.6846          46.9283+-1.2082          might be 1.0913x faster
   Float64Array-alloc-long-lived                     68.8929+-1.2634           68.8300+-1.0604        
   Float64Array-to-Int16Array-set                    57.7153+-1.0168           57.3258+-0.7650        
   fold-double-to-int                                12.1111+-0.5085           11.7480+-0.2286          might be 1.0309x faster
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     11.6903+-1.1869           11.5548+-0.5457          might be 1.0117x faster
   fold-get-by-id-to-multi-get-by-offset             11.4863+-2.2720           10.0982+-1.0602          might be 1.1375x faster
   fold-multi-get-by-offset-to-get-by-offset   
                                                      8.4140+-1.2361            7.8843+-1.6048          might be 1.0672x faster
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      7.3711+-1.9996     ?      7.4784+-0.7777        ? might be 1.0145x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      7.8396+-1.3328     ?      9.6893+-2.3636        ? might be 1.2360x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                      3.8420+-0.3311     ?      3.8702+-0.4889        ?
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                      8.1524+-0.7699            7.9287+-0.3646          might be 1.0282x faster
   fold-put-by-id-to-multi-put-by-offset             10.8834+-1.8123            9.9760+-0.4265          might be 1.0910x faster
   fold-put-by-val-with-string-to-multi-put-by-offset   
                                                      9.7015+-0.3591     ?     10.3698+-1.2469        ? might be 1.0689x slower
   fold-put-by-val-with-symbol-to-multi-put-by-offset   
                                                      9.5112+-0.9558     ?      9.9116+-0.8088        ? might be 1.0421x slower
   fold-put-structure                                 4.2846+-0.5733     ?      4.4036+-0.8056        ? might be 1.0278x slower
   for-of-iterate-array-entries                      10.9256+-0.3371           10.8512+-0.1927        
   for-of-iterate-array-keys                          3.6234+-0.1555     ?      3.7260+-0.2289        ? might be 1.0283x slower
   for-of-iterate-array-values                        3.4242+-0.1897     ?      3.5662+-0.2270        ? might be 1.0415x slower
   fround                                            18.0548+-1.6204           18.0354+-0.8815        
   ftl-library-inlining-dataview                     56.9488+-1.2334           55.0791+-0.7072          might be 1.0339x faster
   ftl-library-inlining                              94.9161+-1.1514     ?     95.7021+-1.2779        ?
   function-call                                      9.9780+-0.2066     ?      9.9970+-0.2069        ?
   function-dot-apply                                 1.9674+-0.0421            1.9548+-0.0493        
   function-test                                      2.7051+-0.0926     ?      2.7668+-0.1337        ? might be 1.0228x slower
   function-with-eval                               102.5778+-2.6982          100.9557+-1.9072          might be 1.0161x faster
   gcse-poly-get-less-obvious                        14.3511+-0.3082           14.1007+-0.1907          might be 1.0178x faster
   gcse-poly-get                                     15.7545+-0.2348     ?     16.0480+-0.2478        ? might be 1.0186x slower
   gcse                                               3.8751+-0.0937     ?      3.8863+-0.2454        ?
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.5475+-0.0315     ?      2.6438+-0.2234        ? might be 1.0378x slower
   get-by-id-bimorphic-check-structure-elimination   
                                                      5.7104+-0.1030            5.6990+-0.0590        
   get-by-id-chain-from-try-block                     5.6634+-0.3265            5.4262+-0.1506          might be 1.0437x faster
   get-by-id-check-structure-elimination              4.4297+-0.0757     ?      4.9540+-1.2232        ? might be 1.1184x slower
   get-by-id-proto-or-self                           14.9323+-0.4905           14.8992+-0.1927        
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      2.8336+-0.0253     ?      2.9306+-0.1755        ? might be 1.0342x slower
   get-by-id-self-or-proto                           15.4272+-0.9876           14.9246+-0.5426          might be 1.0337x faster
   get-by-val-out-of-bounds                           3.6752+-0.0631            3.6645+-0.0935        
   get-by-val-with-string-bimorphic-check-structure-elimination-simple   
                                                      2.7798+-0.0597            2.7386+-0.0328          might be 1.0151x faster
   get-by-val-with-string-bimorphic-check-structure-elimination   
                                                      6.0734+-0.2354            6.0545+-0.2269        
   get-by-val-with-string-chain-from-try-block   
                                                      5.7360+-0.3764            5.5291+-0.1040          might be 1.0374x faster
   get-by-val-with-string-check-structure-elimination   
                                                      5.0696+-0.1044     ?      5.1602+-0.1914        ? might be 1.0179x slower
   get-by-val-with-string-proto-or-self              14.9756+-0.4689           14.9016+-0.4355        
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple   
                                                      3.2512+-0.0693     ?      3.2725+-0.0342        ?
   get-by-val-with-string-self-or-proto              14.7131+-0.2424     ?     15.1312+-0.5016        ? might be 1.0284x slower
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple   
                                                      3.0715+-0.0516            3.0660+-0.0168        
   get-by-val-with-symbol-bimorphic-check-structure-elimination   
                                                     12.2552+-0.1110     ?     12.2670+-0.1089        ?
   get-by-val-with-symbol-chain-from-try-block   
                                                      5.7844+-0.2651            5.4945+-0.1538          might be 1.0528x faster
   get-by-val-with-symbol-check-structure-elimination   
                                                     11.0419+-0.1808           10.9046+-0.0304          might be 1.0126x faster
   get-by-val-with-symbol-proto-or-self              15.1485+-0.3572           14.9056+-0.3742          might be 1.0163x faster
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple   
                                                      3.6510+-0.0842     ?      3.7186+-0.2493        ? might be 1.0185x slower
   get-by-val-with-symbol-self-or-proto              15.0587+-0.6712     ?     15.3902+-0.6485        ? might be 1.0220x slower
   get_callee_monomorphic                             2.3700+-0.2440            2.3172+-0.0616          might be 1.0228x faster
   get_callee_polymorphic                             3.1828+-0.1898     ?      3.4938+-0.3378        ? might be 1.0977x slower
   getter-no-activation                               4.6329+-0.1113     ?      4.6738+-0.1611        ?
   getter-prototype                                   8.9694+-0.2693     ?      9.0427+-0.2433        ?
   getter-richards                                  127.5516+-17.7726         121.4921+-4.5400          might be 1.0499x faster
   getter                                             5.8790+-0.8371            5.8096+-0.7442          might be 1.0119x faster
   global-object-access-with-mutating-structure   
                                                      5.5235+-0.1415     ?      5.7412+-0.3479        ? might be 1.0394x slower
   global-var-const-infer-fire-from-opt               0.7842+-0.0725     ?      0.7899+-0.0697        ?
   global-var-const-infer                             0.6211+-0.0814            0.6089+-0.0450          might be 1.0202x faster
   hard-overflow-check-equal                         33.1301+-1.1818           32.5904+-0.4468          might be 1.0166x faster
   hard-overflow-check                               32.8319+-0.7311     ?     32.8544+-0.6724        ?
   HashMap-put-get-iterate-keys                      26.2363+-1.6603     ?     26.5059+-1.5360        ? might be 1.0103x slower
   HashMap-put-get-iterate                           29.7619+-2.0010           27.6706+-1.8967          might be 1.0756x faster
   HashMap-string-put-get-iterate                    25.3133+-1.5341           23.8610+-0.6029          might be 1.0609x faster
   hoist-make-rope                                    9.2512+-1.0114            8.8914+-0.7010          might be 1.0405x faster
   hoist-poly-check-structure-effectful-loop   
                                                      4.0898+-0.0561     ?      4.1622+-0.2372        ? might be 1.0177x slower
   hoist-poly-check-structure                         3.2233+-0.0521     ?      3.2434+-0.0488        ?
   imul-double-only                                   7.2578+-0.2038            7.2438+-0.1603        
   imul-int-only                                      7.8965+-0.4671     ?      8.4932+-0.9080        ? might be 1.0756x slower
   imul-mixed                                         6.8119+-0.3918     ?      7.1201+-0.2032        ? might be 1.0452x slower
   in-four-cases                                     16.4903+-0.3002     ?     16.6920+-0.6565        ? might be 1.0122x slower
   in-one-case-false                                  9.6363+-0.3833     ?     10.8731+-2.6149        ? might be 1.1284x slower
   in-one-case-true                                  10.1146+-0.6087            9.9513+-0.5425          might be 1.0164x faster
   in-two-cases                                      10.0990+-0.4318     ?     10.1347+-0.4771        ?
   indexed-properties-in-objects                      2.7513+-0.0699     ?      2.9806+-0.5694        ? might be 1.0834x slower
   infer-closure-const-then-mov-no-inline             3.0608+-0.1382     ?      3.1136+-0.3148        ? might be 1.0172x slower
   infer-closure-const-then-mov                      18.9044+-0.5900           18.4240+-0.6846          might be 1.0261x faster
   infer-closure-const-then-put-to-scope-no-inline   
                                                      9.9698+-0.2389     ?     10.2043+-0.3361        ? might be 1.0235x slower
   infer-closure-const-then-put-to-scope             22.2333+-0.9377     ?     22.7525+-0.4826        ? might be 1.0234x slower
   infer-closure-const-then-reenter-no-inline   
                                                     44.4270+-0.7025           43.9877+-0.2092        
   infer-closure-const-then-reenter                  22.2840+-0.9074           21.7404+-0.4951          might be 1.0250x faster
   infer-constant-global-property                     3.5175+-0.3862            3.3929+-0.0452          might be 1.0367x faster
   infer-constant-property                            2.5828+-0.0247     ?      2.5973+-0.0598        ?
   infer-one-time-closure-ten-vars                    7.9645+-0.8842            7.7613+-0.5225          might be 1.0262x faster
   infer-one-time-closure-two-vars                    7.6703+-0.8447            7.5686+-0.5208          might be 1.0134x faster
   infer-one-time-closure                             7.3757+-0.4092     ?      7.5402+-0.4017        ? might be 1.0223x slower
   infer-one-time-deep-closure                       10.9158+-0.5376           10.7157+-0.5347          might be 1.0187x faster
   inline-arguments-access                            3.9076+-0.4230            3.5909+-0.0644          might be 1.0882x faster
   inline-arguments-aliased-access                    3.6672+-0.2239            3.6671+-0.1764        
   inline-arguments-local-escape                      3.6558+-0.1895     ?      3.8782+-0.4266        ? might be 1.0608x slower
   inline-get-scoped-var                              4.5084+-0.2198            4.4009+-0.0405          might be 1.0244x faster
   inlined-put-by-id-transition                      11.0112+-1.5346           10.3217+-0.4281          might be 1.0668x faster
   inlined-put-by-val-with-string-transition   
                                                     71.6415+-1.0950           71.4178+-1.0030        
   inlined-put-by-val-with-symbol-transition   
                                                     70.1026+-1.7776     ?     70.6097+-1.9293        ?
   int-or-other-abs-then-get-by-val                   4.1186+-0.0315            4.1059+-0.0534        
   int-or-other-abs-zero-then-get-by-val             15.3881+-0.2796     ?     15.8994+-0.6066        ? might be 1.0332x slower
   int-or-other-add-then-get-by-val                   4.0050+-0.0489     ?      4.0164+-0.0690        ?
   int-or-other-add                                   4.8683+-0.1430            4.8402+-0.0835        
   int-or-other-div-then-get-by-val                   3.7682+-0.1695            3.7101+-0.0604          might be 1.0157x faster
   int-or-other-max-then-get-by-val                   3.7732+-0.2554            3.6704+-0.0625          might be 1.0280x faster
   int-or-other-min-then-get-by-val                   3.7868+-0.1326     ?      3.9592+-0.3517        ? might be 1.0455x slower
   int-or-other-mod-then-get-by-val                   3.4373+-0.0887            3.4022+-0.0720          might be 1.0103x faster
   int-or-other-mul-then-get-by-val                   3.6821+-0.1142            3.5548+-0.0658          might be 1.0358x faster
   int-or-other-neg-then-get-by-val                   3.8489+-0.1359            3.8436+-0.0720        
   int-or-other-neg-zero-then-get-by-val             15.8160+-0.7994           15.4628+-0.3901          might be 1.0228x faster
   int-or-other-sub-then-get-by-val                   4.0068+-0.0981     ?      4.1253+-0.3380        ? might be 1.0296x slower
   int-or-other-sub                                   3.4825+-0.1581            3.4044+-0.0672          might be 1.0230x faster
   int-overflow-local                                 4.0118+-0.1176            3.9870+-0.1654        
   Int16Array-alloc-long-lived                       45.6920+-1.1620           45.3901+-1.0210        
   Int16Array-bubble-sort-with-byteLength            17.6686+-0.3675           17.6182+-0.5017        
   Int16Array-bubble-sort                            17.1415+-0.1852     ?     17.1865+-0.2930        ?
   Int16Array-load-int-mul                            1.4357+-0.0683     ?      1.4499+-0.1016        ?
   Int16Array-to-Int32Array-set                      50.6220+-12.4769          43.5085+-0.7382          might be 1.1635x faster
   Int32Array-alloc-large                            12.4779+-1.2624           12.1513+-1.2193          might be 1.0269x faster
   Int32Array-alloc-long-lived                       54.4000+-1.5313           54.1312+-1.5420        
   Int32Array-alloc                                   3.0352+-0.4627            2.9090+-0.2720          might be 1.0434x faster
   Int32Array-Int8Array-view-alloc                    5.7556+-0.1449     ?      5.8423+-0.1958        ? might be 1.0151x slower
   int52-spill                                        4.6087+-0.2536            4.4922+-0.1018          might be 1.0260x faster
   Int8Array-alloc-long-lived                        41.1161+-1.2832           40.6923+-0.8692          might be 1.0104x faster
   Int8Array-load-with-byteLength                     3.3266+-0.0365     ?      3.3863+-0.1169        ? might be 1.0179x slower
   Int8Array-load                                     3.4375+-0.2055            3.3525+-0.0652          might be 1.0254x faster
   integer-divide                                    10.7954+-0.6818           10.2606+-0.1274          might be 1.0521x faster
   integer-modulo                                     1.5630+-0.0755            1.5480+-0.0510        
   is-boolean-fold-tricky                             3.6224+-0.1062     ?      3.7165+-0.1661        ? might be 1.0260x slower
   is-boolean-fold                                    2.6616+-0.1475            2.6122+-0.0682          might be 1.0189x faster
   is-function-fold-tricky-internal-function   
                                                      9.5793+-0.1668            9.3134+-0.1321          might be 1.0286x faster
   is-function-fold-tricky                            3.8374+-0.2645            3.7154+-0.1403          might be 1.0328x faster
   is-function-fold                                   2.6512+-0.0653     ?      2.6809+-0.1608        ? might be 1.0112x slower
   is-number-fold-tricky                              3.8241+-0.2321            3.6876+-0.1227          might be 1.0370x faster
   is-number-fold                                     2.5970+-0.0440     ?      2.6640+-0.0843        ? might be 1.0258x slower
   is-object-or-null-fold-functions                   2.6386+-0.0605     ?      2.6454+-0.0457        ?
   is-object-or-null-fold-less-tricky                 3.7747+-0.2259            3.7179+-0.0557          might be 1.0153x faster
   is-object-or-null-fold-tricky                      4.5104+-0.0914     ?      4.5293+-0.1082        ?
   is-object-or-null-fold                             2.8333+-0.4589            2.6258+-0.0328          might be 1.0790x faster
   is-object-or-null-trickier-function                3.7187+-0.0719     ?      3.8453+-0.2567        ? might be 1.0340x slower
   is-object-or-null-trickier-internal-function   
                                                      9.6839+-0.2076     ?      9.6940+-0.1389        ?
   is-object-or-null-tricky-function                  3.7452+-0.0801     ?      3.7516+-0.0939        ?
   is-object-or-null-tricky-internal-function   
                                                      7.1822+-0.1116            7.1157+-0.1481        
   is-string-fold-tricky                              3.6486+-0.0718            3.5973+-0.0481          might be 1.0143x faster
   is-string-fold                                     2.6184+-0.0618     ?      2.6796+-0.0897        ? might be 1.0234x slower
   is-undefined-fold-tricky                           2.9072+-0.1598            2.8615+-0.1107          might be 1.0159x faster
   is-undefined-fold                                  2.6366+-0.0754            2.5746+-0.0209          might be 1.0241x faster
   JSONP-negative-0                                   0.2380+-0.0040     ?      0.3056+-0.1067        ? might be 1.2843x slower
   large-int-captured                                 4.1045+-0.9727            3.7734+-0.1155          might be 1.0877x faster
   large-int-neg                                     13.9702+-0.1796     ?     14.1418+-0.7259        ? might be 1.0123x slower
   large-int                                         12.8852+-0.3242     ?     12.9666+-0.2748        ?
   load-varargs-elimination                          20.3480+-0.6112     ?     20.7635+-0.3261        ? might be 1.0204x slower
   logical-not-weird-types                            2.7179+-0.0479     ?      2.7510+-0.0951        ? might be 1.0122x slower
   logical-not                                        3.8920+-0.0547     ?      4.0002+-0.2939        ? might be 1.0278x slower
   lots-of-fields                                     9.3494+-0.1274     ?     10.3649+-1.7395        ? might be 1.1086x slower
   make-indexed-storage                               2.8821+-0.1525            2.8536+-0.4239        
   make-rope-cse                                      3.6508+-0.2403            3.5075+-0.0674          might be 1.0409x faster
   marsaglia-larger-ints                             31.9343+-1.3760     ?     31.9791+-1.0809        ?
   marsaglia-osr-entry                               22.1472+-1.0943     ?     22.4791+-3.0135        ? might be 1.0150x slower
   math-with-out-of-bounds-array-values              21.8161+-0.8167     ?     21.8749+-0.9444        ?
   max-boolean                                        2.7807+-0.3808            2.6505+-0.0480          might be 1.0491x faster
   method-on-number                                  17.2164+-2.2094           15.4277+-0.2691          might be 1.1159x faster
   min-boolean                                        2.7562+-0.2577            2.5584+-0.0340          might be 1.0773x faster
   minus-boolean-double                               3.0160+-0.0189     ?      3.0590+-0.0427        ? might be 1.0142x slower
   minus-boolean                                      2.2678+-0.0298     ?      2.2952+-0.0387        ? might be 1.0121x slower
   misc-strict-eq                                    28.4737+-1.7722     ?     28.6067+-1.3041        ?
   mod-boolean-double                                11.0491+-0.1602           10.9573+-0.1229        
   mod-boolean                                        8.2972+-0.1113     ?      8.3018+-0.0891        ?
   mul-boolean-double                                 3.5985+-0.0498     ?      3.6270+-0.1214        ?
   mul-boolean                                        2.8008+-0.0666            2.7683+-0.0436          might be 1.0117x faster
   neg-boolean                                        3.1441+-0.1944            3.1008+-0.0539          might be 1.0140x faster
   negative-zero-divide                               0.3523+-0.0353     ?      0.3549+-0.0228        ?
   negative-zero-modulo                               0.4113+-0.1240            0.3493+-0.0337          might be 1.1776x faster
   negative-zero-negate                               0.3415+-0.0449            0.3288+-0.0261          might be 1.0386x faster
   nested-function-parsing                           44.3345+-0.8263     ?     45.5682+-1.1106        ? might be 1.0278x slower
   new-array-buffer-dead                             87.7375+-0.8206           87.2340+-1.0464        
   new-array-buffer-push                              6.1875+-0.3809     ?      6.3391+-0.9277        ? might be 1.0245x slower
   new-array-dead                                    14.8191+-0.8110     ?     14.8205+-0.7386        ?
   new-array-push                                     3.4410+-0.1590     ?      3.4770+-0.2104        ? might be 1.0105x slower
   no-inline-constructor                             31.7367+-0.4626     ?     32.4794+-1.0435        ? might be 1.0234x slower
   number-test                                        2.8553+-0.1065     ?      3.0160+-0.3782        ? might be 1.0563x slower
   object-closure-call                                5.0945+-0.0563     ?      5.2056+-0.1795        ? might be 1.0218x slower
   object-get-own-property-symbols-on-large-array   
                                                      4.5193+-0.6527            4.0438+-0.3824          might be 1.1176x faster
   object-test                                        2.6530+-0.0581     ?      2.6895+-0.0622        ? might be 1.0138x slower
   obvious-sink-pathology-taken                      98.3307+-1.5084     ?     98.6554+-1.1401        ?
   obvious-sink-pathology                            93.8503+-1.1103           92.8861+-0.5569          might be 1.0104x faster
   obviously-elidable-new-object                     29.2933+-0.9432           28.4508+-0.7370          might be 1.0296x faster
   plus-boolean-arith                                 2.4329+-0.1650            2.3434+-0.0209          might be 1.0382x faster
   plus-boolean-double                                3.1344+-0.1270     ?      3.2020+-0.2899        ? might be 1.0216x slower
   plus-boolean                                       2.5030+-0.0538            2.5013+-0.0654        
   poly-chain-access-different-prototypes-simple   
                                                      3.3664+-0.2717            3.3345+-0.2798        
   poly-chain-access-different-prototypes             3.2012+-0.0295     ?      3.2585+-0.0983        ? might be 1.0179x slower
   poly-chain-access-simpler                          3.2217+-0.1246            3.1535+-0.0310          might be 1.0216x faster
   poly-chain-access                                  3.3464+-0.2609            3.2619+-0.1610          might be 1.0259x faster
   poly-stricteq                                     50.1261+-0.8206     ?     50.3582+-0.5919        ?
   polymorphic-array-call                             1.2453+-0.1595            1.2164+-0.0800          might be 1.0238x faster
   polymorphic-get-by-id                              2.7491+-0.0449     ?      2.8780+-0.1845        ? might be 1.0469x slower
   polymorphic-put-by-id                             24.6327+-0.2289     ?     24.8433+-1.2012        ?
   polymorphic-put-by-val-with-string                25.7642+-1.4507           25.6039+-1.0167        
   polymorphic-put-by-val-with-symbol                25.2238+-0.5645     ?     25.3792+-1.0865        ?
   polymorphic-structure                             13.4286+-0.6397           13.2437+-0.6444          might be 1.0140x faster
   polyvariant-monomorphic-get-by-id                  6.6642+-0.9352     ?      6.7480+-1.0824        ? might be 1.0126x slower
   proto-getter-access                                8.1956+-0.1779     ?      8.4639+-0.2608        ? might be 1.0327x slower
   prototype-access-with-mutating-prototype           5.4463+-0.2250     ?      5.4849+-0.1424        ?
   put-by-id-replace-and-transition                   8.3470+-0.6431     ?      8.4067+-1.4253        ?
   put-by-id-slightly-polymorphic                     2.6134+-0.0779            2.5991+-0.0488        
   put-by-id                                          9.9897+-1.1121     ?     10.1182+-0.6661        ? might be 1.0129x slower
   put-by-val-direct                                  0.3370+-0.0394            0.3352+-0.0228        
   put-by-val-large-index-blank-indexing-type   
                                                      5.9132+-0.8146            5.1871+-0.2023          might be 1.1400x faster
   put-by-val-machine-int                             2.3630+-0.2355            2.3077+-0.0829          might be 1.0240x faster
   put-by-val-with-string-replace-and-transition   
                                                     10.0197+-0.3254     ?     10.1697+-0.6714        ? might be 1.0150x slower
   put-by-val-with-string-slightly-polymorphic   
                                                      2.8242+-0.0405     ?      2.8911+-0.0693        ? might be 1.0237x slower
   put-by-val-with-string                            10.2750+-0.4799           10.1710+-0.5203          might be 1.0102x faster
   put-by-val-with-symbol-replace-and-transition   
                                                     12.2489+-0.8344           11.7116+-0.4374          might be 1.0459x faster
   put-by-val-with-symbol-slightly-polymorphic   
                                                      3.1060+-0.0587     ?      3.4219+-0.7583        ? might be 1.1017x slower
   put-by-val-with-symbol                            10.2694+-0.4185     ?     10.4487+-0.4112        ? might be 1.0175x slower
   rare-osr-exit-on-local                            13.5717+-0.3632     ?     13.7021+-0.3261        ?
   register-pressure-from-osr                        16.2939+-0.4390     ?     17.2846+-1.7085        ? might be 1.0608x slower
   repeat-multi-get-by-offset                        21.6574+-1.1838           21.0075+-0.3269          might be 1.0309x faster
   setter-prototype                                   7.6958+-0.2260            7.5585+-0.1461          might be 1.0182x faster
   setter                                             5.7505+-0.7239            5.5753+-0.4994          might be 1.0314x faster
   simple-activation-demo                            23.9023+-0.4441     ?     24.2215+-0.5743        ? might be 1.0134x slower
   simple-getter-access                              10.7457+-0.3137           10.5964+-0.2586          might be 1.0141x faster
   simple-poly-call-nested                            8.9685+-1.3059            8.7814+-0.8480          might be 1.0213x faster
   simple-poly-call                                   1.1389+-0.0453            1.1166+-0.0328          might be 1.0200x faster
   sin-boolean                                       21.7480+-1.2674           20.3142+-1.3501          might be 1.0706x faster
   singleton-scope                                   55.1099+-0.8382           54.9195+-0.6087        
   sink-function                                     10.1716+-0.5670           10.1632+-0.3951        
   sink-huge-activation                              15.9024+-0.7131     ?     16.1247+-0.6395        ? might be 1.0140x slower
   sinkable-new-object-dag                           54.2794+-1.3855     ?     54.3561+-1.2753        ?
   sinkable-new-object-taken                         43.7048+-1.0954     ?     43.7879+-1.2932        ?
   sinkable-new-object                               30.0263+-0.8088           29.7226+-0.4836          might be 1.0102x faster
   slow-array-profile-convergence                     2.3774+-0.0806     ?      2.6172+-0.4518        ? might be 1.1008x slower
   slow-convergence                                   2.2733+-0.0412            2.2718+-0.0631        
   slow-ternaries                                    18.4531+-1.9379           17.4775+-0.6061          might be 1.0558x faster
   sorting-benchmark                                 16.5804+-0.4327           16.4934+-0.3867        
   sparse-conditional                                 1.1826+-0.0826            1.1149+-0.0164          might be 1.0608x faster
   splice-to-remove                                  11.9371+-0.3655     ?     12.1714+-0.3821        ? might be 1.0196x slower
   string-char-code-at                               13.8755+-2.8630           12.8182+-0.2922          might be 1.0825x faster
   string-concat-object                               2.0398+-0.0802     ?      2.3593+-0.3571        ? might be 1.1566x slower
   string-concat-pair-object                          2.1407+-0.2056            2.0580+-0.1123          might be 1.0402x faster
   string-concat-pair-simple                          9.2674+-0.4857     ?      9.4358+-0.7215        ? might be 1.0182x slower
   string-concat-simple                               9.1733+-0.2774     ?      9.6783+-0.6220        ? might be 1.0550x slower
   string-cons-repeat                                 6.5412+-0.4303            6.4195+-0.3278          might be 1.0190x faster
   string-cons-tower                                  6.4439+-0.3132     ?      6.6282+-0.5196        ? might be 1.0286x slower
   string-equality                                   16.1851+-0.6499           15.7958+-0.1130          might be 1.0246x faster
   string-get-by-val-big-char                         6.8514+-0.4912            6.4098+-0.1255          might be 1.0689x faster
   string-get-by-val-out-of-bounds-insane             3.1483+-0.2861            3.1373+-0.2134        
   string-get-by-val-out-of-bounds                    3.9964+-0.1935            3.9848+-0.1630        
   string-get-by-val                                  2.7995+-0.0781            2.7870+-0.0344        
   string-hash                                        1.7771+-0.0226     ?      1.8603+-0.2046        ? might be 1.0468x slower
   string-long-ident-equality                        13.2354+-0.3478     ?     13.7582+-1.0854        ? might be 1.0395x slower
   string-out-of-bounds                              10.0214+-0.2503            9.9827+-0.4171        
   string-repeat-arith                               27.3039+-0.7036           26.9096+-1.4117          might be 1.0147x faster
   string-sub                                        53.6321+-1.1090     ?     53.9219+-1.9462        ?
   string-test                                        2.7948+-0.1274            2.6911+-0.0332          might be 1.0385x faster
   string-var-equality                               25.2072+-0.8543     ?     26.3851+-2.4297        ? might be 1.0467x slower
   structure-hoist-over-transitions                   2.4009+-0.0658     ?      2.4189+-0.1928        ?
   substring-concat-weird                            36.0738+-1.2031     ?     36.3018+-1.3822        ?
   substring-concat                                  40.0097+-2.0765           38.9571+-0.7037          might be 1.0270x faster
   substring                                         44.1476+-0.4309     ?     45.7411+-1.4203        ? might be 1.0361x slower
   switch-char-constant                               2.6172+-0.0661     ?      2.7012+-0.0975        ? might be 1.0321x slower
   switch-char                                        5.6482+-0.8699     ?      6.5563+-0.6682        ? might be 1.1608x slower
   switch-constant                                    8.7357+-1.2588            8.6404+-1.2730          might be 1.0110x faster
   switch-string-basic-big-var                       13.3171+-0.1142     ?     13.4101+-0.3736        ?
   switch-string-basic-big                           13.5023+-0.2411     ?     13.8960+-0.8392        ? might be 1.0292x slower
   switch-string-basic-var                           12.8708+-0.2712           12.7399+-0.2541          might be 1.0103x faster
   switch-string-basic                               12.4057+-0.1252           12.3356+-0.1669        
   switch-string-big-length-tower-var                18.3257+-0.5378           17.5830+-0.2554          might be 1.0422x faster
   switch-string-length-tower-var                    13.0743+-0.2756     ?     13.1812+-0.1985        ?
   switch-string-length-tower                        11.5832+-0.1363     ?     11.8043+-0.3853        ? might be 1.0191x slower
   switch-string-short                               12.0515+-0.4165           11.5815+-0.1401          might be 1.0406x faster
   switch                                            11.0510+-0.8841     ?     11.4981+-0.4440        ? might be 1.0405x slower
   tear-off-arguments-simple                          3.0772+-0.2398            2.9292+-0.0957          might be 1.0505x faster
   tear-off-arguments                                 3.8278+-0.1129     ?      3.9418+-0.1264        ? might be 1.0298x slower
   temporal-structure                                11.8443+-0.3279     ?     11.9132+-0.5497        ?
   to-int32-boolean                                  12.5741+-0.2013     ?     12.6585+-0.2949        ?
   try-catch-get-by-val-cloned-arguments             13.6839+-0.5082     ?     13.9601+-0.9697        ? might be 1.0202x slower
   try-catch-get-by-val-direct-arguments              6.1542+-0.2616     ?      6.2585+-0.1264        ? might be 1.0169x slower
   try-catch-get-by-val-scoped-arguments              7.6532+-0.5057            7.6352+-0.2034        
   typed-array-get-set-by-val-profiling              26.9847+-0.3928           26.8849+-0.3476        
   undefined-property-access                        225.5723+-3.0227          224.2493+-0.4558        
   undefined-test                                     2.8291+-0.0324     ?      2.9000+-0.0929        ? might be 1.0250x slower
   unprofiled-licm                                   13.7433+-0.3378     ?     13.9528+-0.5580        ? might be 1.0152x slower
   varargs-call                                      12.7847+-0.7211           12.3330+-0.2728          might be 1.0366x faster
   varargs-construct-inline                          21.5039+-0.5106           21.1734+-0.2770          might be 1.0156x faster
   varargs-construct                                 19.1659+-0.5693     ?     21.1384+-3.5898        ? might be 1.1029x slower
   varargs-inline                                     7.9114+-0.2007     ?      7.9919+-0.2497        ? might be 1.0102x slower
   varargs-strict-mode                                8.9602+-0.2506            8.9019+-0.2668        
   varargs                                            8.7968+-0.1456     ?      8.9271+-0.6168        ? might be 1.0148x slower
   weird-inlining-const-prop                          1.9386+-0.1159            1.9189+-0.0887          might be 1.0102x faster

   <geometric>                                        7.7543+-0.0288            7.7523+-0.0263          might be 1.0003x faster

                                                        TipOfTree                NoStubInStub                                   
AsmBench:
   bigfib.cpp                                       454.1935+-6.4864          452.8967+-6.4647        
   cray.c                                           398.2944+-2.2690     ?    402.0842+-4.5037        ?
   dry.c                                            420.7325+-7.3774          417.3525+-6.7837        
   FloatMM.c                                        705.9966+-59.9653         681.8494+-1.7858          might be 1.0354x faster
   gcc-loops.cpp                                   3423.7545+-19.1061        3422.4970+-11.8776       
   n-body.c                                         821.5052+-1.4668     ?    827.5035+-14.0945       ?
   Quicksort.c                                      406.5280+-2.5285     ?    407.4174+-3.1800        ?
   stepanov_container.cpp                          3547.8995+-33.0294    ?   3571.2049+-42.5410       ?
   Towers.c                                         234.1122+-2.3480     ?    235.4392+-1.4346        ?

   <geometric>                                      718.2303+-5.4128          717.2642+-1.2833          might be 1.0013x faster

                                                        TipOfTree                NoStubInStub                                   
CompressionBench:
   huffman                                           58.6598+-0.9493     ?     58.8304+-0.6572        ?
   arithmetic-simple                                273.9241+-3.9503          271.8717+-2.0837        
   arithmetic-precise                               246.1349+-2.2732     ?    248.0147+-9.5232        ?
   arithmetic-complex-precise                       241.7490+-1.5686     ?    242.3736+-4.2951        ?
   arithmetic-precise-order-0                       282.8118+-3.6383     ?    305.7766+-61.7634       ? might be 1.0812x slower
   arithmetic-precise-order-1                       306.8177+-3.8570          303.2917+-1.6130          might be 1.0116x faster
   arithmetic-precise-order-2                       353.7976+-3.7365          353.7888+-2.3924        
   arithmetic-simple-order-1                        328.5646+-2.6661          327.4148+-1.4363        
   arithmetic-simple-order-2                        389.5813+-7.8463          387.2141+-8.1394        
   lz-string                                        316.1637+-5.1090          309.2635+-1.9350          might be 1.0223x faster

   <geometric>                                      255.5304+-1.0285     ?    256.1746+-4.6340        ? might be 1.0025x slower

                                                        TipOfTree                NoStubInStub                                   
Geomean of preferred means:
   <scaled-result>                                   51.0399+-0.2206     ?     51.0427+-0.1813        ? might be 1.0001x slower
Comment 2 Filip Pizlo 2015-09-06 14:28:22 PDT
Created attachment 260718 [details]
the patch
Comment 3 Mark Lam 2015-09-08 10:01:59 PDT
Comment on attachment 260718 [details]
the patch

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

r=me

> Source/JavaScriptCore/tests/stress/poly-call-stub-in-getter-stub.js:37
> +var o = Object.create(p);
> +o.__defineGetter__("f", makeGetter());
> +doBadThings = true;
> +var result = foo(o);
> +if (result != 43)
> +    throw "Error: bad result at end: " + result;

Do these need to be exercised on the the baseline JIT and LLINT?
Comment 4 Filip Pizlo 2015-09-08 10:24:05 PDT
(In reply to comment #3)
> Comment on attachment 260718 [details]
> the patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=260718&action=review
> 
> r=me
> 
> > Source/JavaScriptCore/tests/stress/poly-call-stub-in-getter-stub.js:37
> > +var o = Object.create(p);
> > +o.__defineGetter__("f", makeGetter());
> > +doBadThings = true;
> > +var result = foo(o);
> > +if (result != 43)
> > +    throw "Error: bad result at end: " + result;
> 
> Do these need to be exercised on the the baseline JIT and LLINT?

Definitely not in the LLInt since the LLInt doesn't use these inline caches.  As for the baseline JIT, the behavior is the same as in the DFG/FTL, so it doesn't matter if the test runs in baseline or not.
Comment 5 Filip Pizlo 2015-09-08 10:26:02 PDT
Landed in http://trac.webkit.org/changeset/189493
Comment 6 Filip Pizlo 2015-09-08 11:17:38 PDT
Follow-up fix in http://trac.webkit.org/changeset/189496