Bug 148288 - Create ById IC for ByVal operation only when the specific Id comes more than once
Summary: Create ById IC for ByVal operation only when the specific Id comes more than ...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Yusuke Suzuki
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-08-20 21:30 PDT by Yusuke Suzuki
Modified: 2015-08-24 13:26 PDT (History)
5 users (show)

See Also:


Attachments
Patch (16.64 KB, patch)
2015-08-24 10:43 PDT, Yusuke Suzuki
ggaren: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yusuke Suzuki 2015-08-20 21:30:09 PDT
After introducing byId ICs into byVal ops, byVal ops creates much ICs than before.

https://bugs.webkit.org/show_bug.cgi?id=148273
The failure figures out these ICs are created even if this op is executed only once.

The situation is the following;
In the current code, when byVal op is executed with the Id, we immediately set up the byId IC for that byVal op.
But setting up JITGetByIdGenerator generates the fast path IC code and consumes executable memory.
As a result, if we call eval("contains byVal ops") with the different strings repeatedly under no-llint environment, each eval call creates byId IC for byVal and consumes executable memory.

To solve it, we will add "seen" flag to ByValInfo.
And we will create the IC on the second byVal op call with the same Id.

The rough design is the following,

if (!byValInfo->seen) {
    byValInfo->seen = true;
    byValInfo->cachedId = givenId;
} else if (byValInfo->cachedId == givenId)
    Generate IC!
else
    Make the call site generic.
Comment 1 Yusuke Suzuki 2015-08-20 22:20:59 PDT
Once getting the patch into shape, we need to drop the skip in https://bugs.webkit.org/show_bug.cgi?id=148273
Comment 2 Yusuke Suzuki 2015-08-24 10:43:12 PDT
Created attachment 259757 [details]
Patch
Comment 3 Yusuke Suzuki 2015-08-24 10:44:54 PDT
Benchmark results.

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

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

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

                                                          master                      ic                                        
SunSpider:
   3d-cube                                            4.8950+-0.1237     ^      4.4082+-0.0484        ^ definitely 1.1104x faster
   3d-morph                                           5.5245+-0.7775            5.2208+-0.0188          might be 1.0582x faster
   3d-raytrace                                        5.1266+-0.1239     ?      5.2955+-0.2978        ? might be 1.0329x slower
   access-binary-trees                                1.9720+-0.1269     ?      2.0294+-0.0276        ? might be 1.0291x slower
   access-fannkuch                                    5.2841+-0.0388     ?      5.3985+-0.1370        ? might be 1.0217x slower
   access-nbody                                       2.4684+-0.1640     ?      2.4731+-0.1834        ?
   access-nsieve                                      3.0925+-0.2057            3.0574+-0.1677          might be 1.0115x faster
   bitops-3bit-bits-in-byte                           1.5672+-0.2066            1.4465+-0.0167          might be 1.0835x faster
   bitops-bits-in-byte                                3.3809+-0.2352            3.2858+-0.0191          might be 1.0289x faster
   bitops-bitwise-and                                 1.9889+-0.0968     ?      1.9914+-0.0396        ?
   bitops-nsieve-bits                                 2.9876+-0.0164     ?      3.0338+-0.1690        ? might be 1.0154x slower
   controlflow-recursive                              2.0355+-0.1398            1.9357+-0.0834          might be 1.0516x faster
   crypto-aes                                         3.8264+-0.2044            3.8166+-0.0641        
   crypto-md5                                         2.4739+-0.3817            2.3403+-0.0256          might be 1.0571x faster
   crypto-sha1                                        2.5663+-0.3692            2.3836+-0.2679          might be 1.0766x faster
   date-format-tofte                                  6.7745+-0.3135            6.7235+-0.1192        
   date-format-xparb                                  4.9304+-0.5542            4.7330+-0.3545          might be 1.0417x faster
   math-cordic                                        2.8828+-0.2677            2.7490+-0.0661          might be 1.0487x faster
   math-partial-sums                                  5.1415+-0.0567     ?      5.1788+-0.2729        ?
   math-spectral-norm                                 1.7795+-0.0444     ?      1.8533+-0.0759        ? might be 1.0415x slower
   regexp-dna                                         6.5806+-0.2016            6.4329+-0.1036          might be 1.0230x faster
   string-base64                                      4.4734+-0.3616            4.3055+-0.1398          might be 1.0390x faster
   string-fasta                                       5.8469+-0.1348            5.7702+-0.1275          might be 1.0133x faster
   string-tagcloud                                    8.1245+-0.0813            8.0292+-0.0949          might be 1.0119x faster
   string-unpack-code                                20.5140+-2.4691           19.4479+-1.7026          might be 1.0548x faster
   string-validate-input                              4.6157+-0.2543     ?      4.6782+-0.4178        ? might be 1.0135x slower

   <arithmetic>                                       4.6482+-0.1122            4.5392+-0.0631          might be 1.0240x faster

                                                          master                      ic                                        
LongSpider:
   3d-cube                                          834.9989+-14.3271    ?    838.7601+-22.0063       ?
   3d-morph                                        1542.4050+-23.6740    ?   1548.9382+-37.5757       ?
   3d-raytrace                                      625.3683+-10.0351         620.1567+-7.4127        
   access-binary-trees                              812.1281+-16.5889    ?    829.5452+-13.3014       ? might be 1.0214x slower
   access-fannkuch                                  288.7075+-13.3416         285.6575+-6.2635          might be 1.0107x faster
   access-nbody                                     522.8333+-8.2151          522.0870+-3.4390        
   access-nsieve                                    368.9378+-21.6602         360.1088+-18.2949         might be 1.0245x faster
   bitops-3bit-bits-in-byte                          39.8757+-2.8274           38.9567+-0.9192          might be 1.0236x faster
   bitops-bits-in-byte                               76.4435+-0.6506     ?     76.8669+-2.9014        ?
   bitops-nsieve-bits                               417.9351+-5.9119     ?    423.9992+-10.2671       ? might be 1.0145x slower
   controlflow-recursive                            458.6976+-15.3114    ?    467.2002+-29.5969       ? might be 1.0185x slower
   crypto-aes                                       590.9203+-6.3986          586.2678+-20.6003       
   crypto-md5                                       506.0730+-14.1717    ?    508.7957+-11.1478       ?
   crypto-sha1                                      639.4576+-19.1304         633.2165+-16.9996       
   date-format-tofte                                521.1271+-10.7640         511.8284+-3.0682          might be 1.0182x faster
   date-format-xparb                                683.6581+-12.6768    !    717.0543+-14.3318       ! definitely 1.0488x slower
   hash-map                                         158.3597+-3.2474          153.3233+-3.6711          might be 1.0328x faster
   math-cordic                                      499.6251+-4.0220     ?    502.0118+-19.4527       ?
   math-partial-sums                                484.6980+-8.0056          479.9955+-1.7999        
   math-spectral-norm                               571.4684+-10.2683         569.0518+-13.0031       
   string-base64                                    352.6993+-11.7840         349.8032+-8.7139        
   string-fasta                                     374.6824+-2.7157     ?    379.2657+-4.8389        ? might be 1.0122x slower
   string-tagcloud                                  182.2364+-3.2024     ?    186.6809+-7.0021        ? might be 1.0244x slower

   <geometric>                                      401.4190+-2.2804     ?    401.4886+-1.6300        ? might be 1.0002x slower

                                                          master                      ic                                        
V8Spider:
   crypto                                            48.5731+-1.7374     ?     49.5720+-1.1053        ? might be 1.0206x slower
   deltablue                                         87.1987+-4.4169           86.7971+-8.5308        
   earley-boyer                                      41.5285+-3.2256           40.5745+-0.7233          might be 1.0235x faster
   raytrace                                          31.7237+-2.5370           31.0477+-2.3190          might be 1.0218x faster
   regexp                                            62.9616+-0.4965     ?     63.3495+-0.9610        ?
   richards                                          65.6168+-2.8144     ?     66.2745+-1.9340        ? might be 1.0100x slower
   splay                                             37.0652+-3.3255           34.4015+-7.0583          might be 1.0774x faster

   <geometric>                                       50.6183+-0.9148           49.9637+-1.9877          might be 1.0131x faster

                                                          master                      ic                                        
Octane:
   encrypt                                           0.17049+-0.01028    ?     0.17455+-0.00094       ? might be 1.0238x slower
   decrypt                                           3.41426+-0.05678          3.37818+-0.05413         might be 1.0107x faster
   deltablue                                x2       0.16250+-0.00451          0.16098+-0.00364       
   earley                                            0.28154+-0.00575    ?     0.28243+-0.00408       ?
   boyer                                             4.30470+-0.08769    ?     4.42376+-0.32720       ? might be 1.0277x slower
   navier-stokes                            x2       4.98274+-0.04305    ?     4.99842+-0.09226       ?
   raytrace                                 x2       1.04741+-0.13765          1.02645+-0.12160         might be 1.0204x faster
   richards                                 x2       0.11442+-0.00529          0.11337+-0.00105       
   splay                                    x2       0.34131+-0.01083          0.33655+-0.00896         might be 1.0142x faster
   regexp                                   x2      25.21667+-0.30216         25.03787+-0.35599       
   pdfjs                                    x2      37.80714+-0.35772    ?    37.86931+-0.31105       ?
   mandreel                                 x2      46.69843+-0.69445    ^    44.84475+-0.89287       ^ definitely 1.0413x faster
   gbemu                                    x2      34.88492+-0.16671         34.53472+-0.99010         might be 1.0101x faster
   closure                                           0.57865+-0.01483          0.57655+-0.00430       
   jquery                                            7.33573+-0.18689          7.30656+-0.12705       
   box2d                                    x2      10.16154+-0.28041         10.15637+-0.15428       
   zlib                                     x2     383.61766+-10.28099   ?   393.39746+-8.15394       ? might be 1.0255x slower
   typescript                               x2     656.22577+-25.01901       650.64197+-6.27099       

   <geometric>                                       5.71541+-0.05831          5.68845+-0.04739         might be 1.0047x faster

                                                          master                      ic                                        
Kraken:
   ai-astar                                          228.913+-5.311      ?     231.935+-14.226        ? might be 1.0132x slower
   audio-beat-detection                               50.493+-0.338      ?      50.536+-0.703         ?
   audio-dft                                          98.184+-4.139      ?      99.560+-4.044         ? might be 1.0140x slower
   audio-fft                                          36.033+-1.748      ?      36.038+-1.532         ?
   audio-oscillator                                   61.721+-1.650             60.102+-0.206           might be 1.0269x faster
   imaging-darkroom                                   62.508+-0.619             62.263+-0.444         
   imaging-desaturate                                 50.657+-0.508             50.479+-1.064         
   imaging-gaussian-blur                              85.809+-0.711             85.551+-0.298         
   json-parse-financial                               40.069+-1.572             39.584+-0.848           might be 1.0122x faster
   json-stringify-tinderbox                           22.964+-1.046      ?      23.209+-2.626         ? might be 1.0107x slower
   stanford-crypto-aes                                40.803+-0.360      ?      41.672+-2.089         ? might be 1.0213x slower
   stanford-crypto-ccm                                36.229+-3.330             35.187+-1.727           might be 1.0296x faster
   stanford-crypto-pbkdf2                             96.209+-0.313      ?      97.294+-3.192         ? might be 1.0113x slower
   stanford-crypto-sha256-iterative                   37.438+-2.183             37.333+-0.541         

   <arithmetic>                                       67.716+-0.577      ?      67.910+-1.288         ? might be 1.0029x slower

                                                          master                      ic                                        
JSRegress:
   abc-forward-loop-equal                            29.8595+-0.7297     ?     30.3467+-1.4902        ? might be 1.0163x slower
   abc-postfix-backward-loop                         30.4935+-0.9854           29.7267+-0.4203          might be 1.0258x faster
   abc-simple-backward-loop                          29.4898+-0.4402     ?     29.8400+-0.7036        ? might be 1.0119x slower
   abc-simple-forward-loop                           30.9755+-3.1297           30.4270+-2.0284          might be 1.0180x faster
   abc-skippy-loop                                   21.9113+-0.9080     ?     22.4575+-3.0962        ? might be 1.0249x slower
   abs-boolean                                        2.4988+-0.1626            2.4568+-0.0284          might be 1.0171x faster
   adapt-to-double-divide                            16.4841+-0.4656     ?     16.9908+-0.2320        ? might be 1.0307x slower
   aliased-arguments-getbyval                         1.0909+-0.0355     ?      1.1826+-0.1496        ? might be 1.0840x slower
   allocate-big-object                                2.5242+-0.5127     ?      2.5753+-0.5468        ? might be 1.0202x slower
   arguments-named-and-reflective                    11.4116+-0.4350           11.1919+-0.2104          might be 1.0196x faster
   arguments-out-of-bounds                            9.1530+-0.1378     ?      9.2842+-0.2499        ? might be 1.0143x slower
   arguments-strict-mode                             10.1381+-0.7049            9.9100+-0.5031          might be 1.0230x faster
   arguments                                          8.5581+-0.0894     ?      8.6145+-0.3134        ?
   arity-mismatch-inlining                            0.8025+-0.1001            0.7802+-0.0054          might be 1.0286x faster
   array-access-polymorphic-structure                 6.2133+-0.5647            5.8093+-0.1150          might be 1.0695x faster
   array-nonarray-polymorhpic-access                 25.2977+-0.9252     ?     25.8604+-1.6085        ? might be 1.0222x slower
   array-prototype-every                             76.8730+-0.5969     ^     75.8251+-0.2037        ^ definitely 1.0138x faster
   array-prototype-forEach                           76.1814+-2.0485           74.7393+-0.1150          might be 1.0193x faster
   array-prototype-map                               82.7990+-1.0863     ?     82.8018+-1.8119        ?
   array-prototype-reduce                            76.0932+-9.7637           71.7655+-0.5369          might be 1.0603x faster
   array-prototype-reduceRight                       73.4560+-3.1455           70.8948+-0.3995          might be 1.0361x faster
   array-prototype-some                              76.9339+-0.8111           76.0162+-0.5338          might be 1.0121x faster
   array-splice-contiguous                           21.1316+-0.8088           20.7238+-0.7087          might be 1.0197x faster
   array-with-double-add                              3.4008+-0.0577     ?      3.4280+-0.0602        ?
   array-with-double-increment                        3.0478+-0.0401     ?      3.1226+-0.0818        ? might be 1.0245x slower
   array-with-double-mul-add                          4.2631+-0.1845     ?      4.3263+-0.4530        ? might be 1.0148x slower
   array-with-double-sum                              3.1741+-0.0574     ?      3.2684+-0.1079        ? might be 1.0297x slower
   array-with-int32-add-sub                           6.0027+-0.3666     ?      6.0318+-0.3860        ?
   array-with-int32-or-double-sum                     3.3506+-0.1358            3.2935+-0.1823          might be 1.0173x faster
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     27.1061+-0.3800           26.8340+-0.9249          might be 1.0101x faster
   ArrayBuffer-DataView-alloc-long-lived             12.7910+-0.4169     ?     12.9314+-1.5583        ? might be 1.0110x slower
   ArrayBuffer-Int32Array-byteOffset                  3.6448+-0.1867     ?      3.7703+-0.2439        ? might be 1.0344x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     27.3103+-0.9297           26.9379+-0.3566          might be 1.0138x faster
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     20.5690+-0.9768           20.3438+-0.3516          might be 1.0111x faster
   ArrayBuffer-Int8Array-alloc-long-lived            12.4053+-1.4617           11.9770+-0.2646          might be 1.0358x faster
   ArrayBuffer-Int8Array-alloc                       10.3818+-0.3362           10.2670+-0.2096          might be 1.0112x faster
   arrowfunction-call                                11.0336+-0.3947           10.8059+-0.2675          might be 1.0211x faster
   asmjs_bool_bug                                     7.0331+-0.2693            6.9392+-0.0903          might be 1.0135x faster
   assign-custom-setter-polymorphic                   2.4085+-0.0676            2.3884+-0.0429        
   assign-custom-setter                               3.3239+-0.3104            3.2825+-0.1273          might be 1.0126x faster
   basic-set                                          7.5746+-0.1816            7.4528+-0.1129          might be 1.0163x faster
   big-int-mul                                        3.5036+-0.1081     ?      3.5056+-0.1281        ?
   boolean-test                                       3.0070+-0.1343     ?      3.0465+-0.2660        ? might be 1.0131x slower
   branch-fold                                        3.6291+-0.0241     ?      3.6296+-0.0535        ?
   branch-on-string-as-boolean                       16.5719+-0.2635     ?     17.5350+-1.3162        ? might be 1.0581x slower
   by-val-generic                                     2.4099+-0.1915            2.3078+-0.0660          might be 1.0442x faster
   call-spread-apply                                 26.1016+-0.4388     ?     26.3210+-1.3901        ?
   call-spread-call                                  22.5133+-4.0671           22.3873+-1.6941        
   captured-assignments                               0.4208+-0.0057     ?      0.4286+-0.0455        ? might be 1.0187x slower
   cast-int-to-double                                 5.2396+-0.2164            5.2356+-0.1769        
   cell-argument                                      6.3983+-0.1498            6.2240+-0.2727          might be 1.0280x faster
   cfg-simplify                                       2.6733+-0.1116     ?      2.6992+-0.1046        ?
   chain-getter-access                                8.2831+-0.0707            8.2705+-0.1552        
   cmpeq-obj-to-obj-other                            11.7294+-1.3279     ?     12.1580+-1.9574        ? might be 1.0365x slower
   constant-test                                      4.8545+-0.0543            4.8096+-0.0332        
   create-lots-of-functions                           9.5565+-0.5683            9.0632+-0.4105          might be 1.0544x faster
   cse-new-array-buffer                               2.1256+-0.2297     ?      2.1523+-0.2898        ? might be 1.0125x slower
   cse-new-array                                      2.2620+-0.1203            2.2200+-0.2428          might be 1.0189x faster
   DataView-custom-properties                        32.0752+-0.6685           31.8375+-0.3639        
   delay-tear-off-arguments-strictmode               12.5389+-0.0694           12.4146+-0.2743          might be 1.0100x faster
   deltablue-varargs                                157.2288+-3.4997          155.3830+-6.2472          might be 1.0119x faster
   destructuring-arguments                          163.8407+-2.4533     ?    165.7385+-7.3056        ? might be 1.0116x slower
   destructuring-parameters-overridden-by-function   
                                                      0.4651+-0.0755     ?      0.5261+-0.2979        ? might be 1.1311x slower
   destructuring-swap                                 4.7777+-0.1657            4.7100+-0.0590          might be 1.0144x faster
   direct-arguments-getbyval                          1.1246+-0.1080     ?      1.1695+-0.1100        ? might be 1.0399x slower
   div-boolean-double                                 5.4355+-0.1137     ?      6.1593+-2.2676        ? might be 1.1332x slower
   div-boolean                                        8.4579+-0.3552            8.2567+-0.2389          might be 1.0244x faster
   double-get-by-val-out-of-bounds                    4.1487+-0.0757     ?      4.2742+-0.1059        ? might be 1.0302x slower
   double-pollution-getbyval                          8.8266+-0.1263     ?      8.9526+-0.2625        ? might be 1.0143x slower
   double-pollution-putbyoffset                       3.7956+-0.5411            3.7083+-0.0645          might be 1.0235x faster
   double-real-use                                   24.6331+-0.4881           24.4310+-1.4050        
   double-to-int32-typed-array-no-inline              1.9970+-0.0762     ?      2.0125+-0.0651        ?
   double-to-int32-typed-array                        1.7657+-0.1482            1.7280+-0.0225          might be 1.0218x faster
   double-to-uint32-typed-array-no-inline             1.9799+-0.0978     ?      2.1161+-0.2628        ? might be 1.0688x slower
   double-to-uint32-typed-array                       1.8338+-0.0972     ?      1.8915+-0.1200        ? might be 1.0315x slower
   elidable-new-object-dag                           34.0840+-0.7215           33.7549+-0.9851        
   elidable-new-object-roflcopter                    33.4189+-0.8327     ?     33.7923+-2.0537        ? might be 1.0112x slower
   elidable-new-object-then-call                     32.1600+-1.4739           31.5402+-0.2576          might be 1.0196x faster
   elidable-new-object-tree                          37.0881+-0.9939     ?     37.1515+-0.7734        ?
   empty-string-plus-int                              4.9228+-0.1352     ?      5.0630+-0.1889        ? might be 1.0285x slower
   emscripten-cube2hash                              26.0952+-2.6913           25.7183+-2.3421          might be 1.0147x faster
   exit-length-on-plain-object                       12.9370+-1.4071     ?     13.2047+-1.7485        ? might be 1.0207x slower
   external-arguments-getbyval                        1.1230+-0.0871     ?      1.1346+-0.0149        ? might be 1.0104x slower
   external-arguments-putbyval                        2.1518+-0.0730            2.0323+-0.0596          might be 1.0588x faster
   fixed-typed-array-storage-var-index                1.1478+-0.0705            1.1198+-0.0284          might be 1.0250x faster
   fixed-typed-array-storage                          0.8663+-0.0956            0.8329+-0.0166          might be 1.0402x faster
   Float32Array-matrix-mult                           3.8990+-0.2635            3.7900+-0.0208          might be 1.0288x faster
   Float32Array-to-Float64Array-set                  46.1259+-0.8944           45.9468+-0.6212        
   Float64Array-alloc-long-lived                     56.7482+-0.7941     ?     57.6157+-2.1011        ? might be 1.0153x slower
   Float64Array-to-Int16Array-set                    57.3625+-2.6708           55.9687+-0.7054          might be 1.0249x faster
   fold-double-to-int                                12.7402+-1.7053           12.3546+-0.7229          might be 1.0312x faster
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     10.7925+-2.4531     ?     11.5863+-1.8796        ? might be 1.0735x slower
   fold-get-by-id-to-multi-get-by-offset             10.8633+-3.5888           10.2806+-1.0208          might be 1.0567x faster
   fold-multi-get-by-offset-to-get-by-offset   
                                                      8.6937+-0.8856            7.6913+-2.9715          might be 1.1303x faster
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      8.0280+-0.4111     ?      8.1999+-1.4194        ? might be 1.0214x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      8.7241+-2.1186            8.2817+-1.5226          might be 1.0534x faster
   fold-multi-put-by-offset-to-put-by-offset   
                                                      6.3060+-3.0903     ?      6.6070+-1.7516        ? might be 1.0477x slower
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                      8.0148+-0.2526     ?      8.0930+-0.4485        ?
   fold-put-by-id-to-multi-put-by-offset             11.3260+-3.0555            9.6570+-1.1946          might be 1.1728x faster
   fold-put-by-val-with-string-to-multi-put-by-offset   
                                                      9.6727+-1.4171     ?     11.5368+-2.4112        ? might be 1.1927x slower
   fold-put-by-val-with-symbol-to-multi-put-by-offset   
                                                     10.7723+-2.2721           10.7657+-1.8728        
   fold-put-structure                                 6.0835+-1.3030            5.9879+-1.8007          might be 1.0160x faster
   for-of-iterate-array-entries                      11.1656+-0.1600     ?     11.2230+-0.2368        ?
   for-of-iterate-array-keys                          3.5482+-0.5597            3.3846+-0.2923          might be 1.0483x faster
   for-of-iterate-array-values                        3.2512+-0.2528            3.2095+-0.1168          might be 1.0130x faster
   fround                                            18.0048+-0.3863           17.9282+-0.4280        
   ftl-library-inlining-dataview                     56.5247+-0.5651     ?     57.0070+-1.9220        ?
   ftl-library-inlining                              88.5607+-4.2671     ?     92.1458+-7.7512        ? might be 1.0405x slower
   function-call                                     10.6230+-0.1857     ?     10.7385+-0.2380        ? might be 1.0109x slower
   function-dot-apply                                 1.7810+-0.0357     ?      1.8659+-0.1666        ? might be 1.0477x slower
   function-test                                      2.7573+-0.0614     ?      2.7816+-0.0389        ?
   function-with-eval                               106.2371+-1.4698          104.9832+-6.3696          might be 1.0119x faster
   gcse-poly-get-less-obvious                        14.5601+-0.2089           14.5359+-0.4296        
   gcse-poly-get                                     16.1840+-0.2824     ?     16.2252+-0.4798        ?
   gcse                                               3.8709+-0.0906     ?      4.1512+-0.9831        ? might be 1.0724x slower
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.6221+-0.0218     ?      2.6815+-0.1218        ? might be 1.0227x slower
   get-by-id-bimorphic-check-structure-elimination   
                                                      5.7979+-0.0929     ?      5.8700+-0.2118        ? might be 1.0124x slower
   get-by-id-chain-from-try-block                     5.5823+-0.4524            5.5805+-0.2151        
   get-by-id-check-structure-elimination              4.3612+-0.0537     ?      4.5378+-0.1993        ? might be 1.0405x slower
   get-by-id-proto-or-self                           14.7100+-0.6991     ?     14.7985+-0.5740        ?
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      2.9917+-0.2217            2.9033+-0.1003          might be 1.0304x faster
   get-by-id-self-or-proto                           15.2495+-1.1265     ?     16.1349+-1.6869        ? might be 1.0581x slower
   get-by-val-out-of-bounds                           3.8292+-0.2710            3.7325+-0.2053          might be 1.0259x faster
   get-by-val-with-string-bimorphic-check-structure-elimination-simple   
                                                      2.8304+-0.0209            2.7816+-0.0550          might be 1.0176x faster
   get-by-val-with-string-bimorphic-check-structure-elimination   
                                                      6.0577+-0.1007            5.9914+-0.0507          might be 1.0111x faster
   get-by-val-with-string-chain-from-try-block   
                                                      5.6625+-0.2226     ?      5.6917+-0.3084        ?
   get-by-val-with-string-check-structure-elimination   
                                                      5.2808+-0.0878     ^      5.1152+-0.0656        ^ definitely 1.0324x faster
   get-by-val-with-string-proto-or-self              15.2231+-1.3060     ?     15.4296+-0.4679        ? might be 1.0136x slower
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple   
                                                      3.2448+-0.1090            3.1426+-0.0549          might be 1.0325x faster
   get-by-val-with-string-self-or-proto              15.2403+-1.2300     ?     15.4368+-0.3428        ? might be 1.0129x slower
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple   
                                                      3.0792+-0.1326            3.0345+-0.0412          might be 1.0147x faster
   get-by-val-with-symbol-bimorphic-check-structure-elimination   
                                                     12.5380+-0.1988     ?     12.9760+-0.9895        ? might be 1.0349x slower
   get-by-val-with-symbol-chain-from-try-block   
                                                      5.6661+-0.0657            5.6600+-0.2204        
   get-by-val-with-symbol-check-structure-elimination   
                                                     11.3857+-0.4118           11.3061+-0.1538        
   get-by-val-with-symbol-proto-or-self              15.0023+-0.3338     ?     15.4300+-0.3824        ? might be 1.0285x slower
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple   
                                                      3.9248+-0.1546     ?      3.9620+-0.0974        ?
   get-by-val-with-symbol-self-or-proto              15.9385+-1.8642           15.8679+-1.3356        
   get_callee_monomorphic                             2.1970+-0.4615     ?      2.2095+-0.2650        ?
   get_callee_polymorphic                             3.2006+-0.1882     ?      3.2177+-0.2738        ?
   getter-no-activation                               4.9707+-0.6498            4.9581+-0.2819        
   getter-prototype                                   9.1134+-0.3425            8.9020+-0.2575          might be 1.0237x faster
   getter-richards                                  121.8536+-1.5967          121.4000+-13.1129       
   getter                                             5.7363+-1.1464     ?      5.7505+-1.1965        ?
   global-object-access-with-mutating-structure   
                                                      5.9109+-0.4967            5.6653+-0.1563          might be 1.0434x faster
   global-var-const-infer-fire-from-opt               0.7849+-0.1236     ?      0.7891+-0.0604        ?
   global-var-const-infer                             0.5965+-0.0410            0.5855+-0.0172          might be 1.0188x faster
   hard-overflow-check-equal                         33.1633+-0.3162     ?     33.7616+-0.6005        ? might be 1.0180x slower
   hard-overflow-check                               33.7747+-1.1612           33.5032+-0.7842        
   HashMap-put-get-iterate-keys                      24.5500+-2.5442     ?     25.5380+-1.6537        ? might be 1.0402x slower
   HashMap-put-get-iterate                           28.0864+-1.5715     ?     28.7688+-0.8076        ? might be 1.0243x slower
   HashMap-string-put-get-iterate                    24.9203+-1.2797     ?     25.0547+-2.5213        ?
   hoist-make-rope                                    9.0181+-1.0342            8.7068+-1.1349          might be 1.0358x faster
   hoist-poly-check-structure-effectful-loop   
                                                      4.2309+-0.1333            4.1293+-0.1266          might be 1.0246x faster
   hoist-poly-check-structure                         3.3557+-0.0671            3.3110+-0.1063          might be 1.0135x faster
   imul-double-only                                   7.8038+-0.2698            7.5412+-0.1495          might be 1.0348x faster
   imul-int-only                                      8.8829+-1.5250            8.3496+-1.2906          might be 1.0639x faster
   imul-mixed                                         7.0240+-0.3030            6.4846+-0.5118          might be 1.0832x faster
   in-four-cases                                     17.2755+-0.4816     ?     17.5363+-0.5430        ? might be 1.0151x slower
   in-one-case-false                                  9.4630+-0.1430     ?      9.5732+-0.6543        ? might be 1.0116x slower
   in-one-case-true                                   9.4034+-0.0591     ?      9.6580+-0.7539        ? might be 1.0271x slower
   in-two-cases                                      10.0729+-0.1567           10.0198+-0.4635        
   indexed-properties-in-objects                      2.9058+-0.2877            2.8453+-0.0517          might be 1.0213x faster
   infer-closure-const-then-mov-no-inline             3.0150+-0.0524     ?      3.0666+-0.1359        ? might be 1.0171x slower
   infer-closure-const-then-mov                      18.2485+-0.6513     ?     18.6837+-0.5439        ? might be 1.0239x slower
   infer-closure-const-then-put-to-scope-no-inline   
                                                     10.6857+-0.1239           10.5746+-0.1796          might be 1.0105x faster
   infer-closure-const-then-put-to-scope             22.3870+-0.1555     ?     22.4141+-1.0093        ?
   infer-closure-const-then-reenter-no-inline   
                                                     50.0638+-2.1530     ?     50.6323+-0.4296        ? might be 1.0114x slower
   infer-closure-const-then-reenter                  22.7377+-1.7264           22.6592+-0.9931        
   infer-constant-global-property                     3.4305+-0.0586            3.4190+-0.0594        
   infer-constant-property                            2.6453+-0.0982            2.6198+-0.0151        
   infer-one-time-closure-ten-vars                    8.0192+-1.3151            7.9390+-0.5926          might be 1.0101x faster
   infer-one-time-closure-two-vars                    7.5959+-0.5960            7.4789+-0.1308          might be 1.0156x faster
   infer-one-time-closure                             7.3837+-0.4044     ?      7.5453+-0.4461        ? might be 1.0219x slower
   infer-one-time-deep-closure                       11.0098+-0.6171           10.8545+-0.4641          might be 1.0143x faster
   inline-arguments-access                            3.7162+-0.3650            3.6309+-0.4785          might be 1.0235x faster
   inline-arguments-aliased-access                    3.4761+-0.1216     ?      3.5188+-0.1812        ? might be 1.0123x slower
   inline-arguments-local-escape                      3.7236+-0.4132            3.5103+-0.1033          might be 1.0608x faster
   inline-get-scoped-var                              4.6288+-0.3872     ?      4.7238+-0.4024        ? might be 1.0205x slower
   inlined-put-by-id-transition                       9.2322+-0.8125     ?      9.8571+-0.5359        ? might be 1.0677x slower
   inlined-put-by-val-with-string-transition   
                                                     74.2982+-1.5676           73.0778+-3.1577          might be 1.0167x faster
   inlined-put-by-val-with-symbol-transition   
                                                     73.6242+-4.7703           72.9174+-5.3258        
   int-or-other-abs-then-get-by-val                   4.8758+-0.0661     ?      4.8940+-0.1318        ?
   int-or-other-abs-zero-then-get-by-val             16.3628+-0.6860     ?     16.4833+-0.1655        ?
   int-or-other-add-then-get-by-val                   4.0894+-0.1002     ?      4.2795+-0.4265        ? might be 1.0465x slower
   int-or-other-add                                   4.9225+-0.1076     ?      4.9460+-0.1669        ?
   int-or-other-div-then-get-by-val                   3.8594+-0.1243     ?      3.9260+-0.2372        ? might be 1.0172x slower
   int-or-other-max-then-get-by-val                   3.9117+-0.2108     ?      3.9583+-0.0523        ? might be 1.0119x slower
   int-or-other-min-then-get-by-val                   4.0477+-0.1788     ?      4.1005+-0.1164        ? might be 1.0131x slower
   int-or-other-mod-then-get-by-val                   3.5281+-0.0583     ?      3.5896+-0.1923        ? might be 1.0174x slower
   int-or-other-mul-then-get-by-val                   3.6618+-0.0333            3.6617+-0.0761        
   int-or-other-neg-then-get-by-val                   4.7662+-0.5264            4.4993+-0.0748          might be 1.0593x faster
   int-or-other-neg-zero-then-get-by-val             15.8652+-0.4588     ?     16.6387+-0.4271        ? might be 1.0488x slower
   int-or-other-sub-then-get-by-val                   4.2489+-0.4719            4.1135+-0.0376          might be 1.0329x faster
   int-or-other-sub                                   3.5066+-0.3145            3.3619+-0.0693          might be 1.0430x faster
   int-overflow-local                                 4.2388+-0.0771     ?      4.3074+-0.0565        ? might be 1.0162x slower
   Int16Array-alloc-long-lived                       41.8030+-0.9500           41.6678+-0.9136        
   Int16Array-bubble-sort-with-byteLength            18.1948+-1.6207           17.9051+-0.4010          might be 1.0162x faster
   Int16Array-bubble-sort                            17.7326+-0.4540     ?     17.7626+-0.7975        ?
   Int16Array-load-int-mul                            1.4246+-0.0763     ?      1.5241+-0.1759        ? might be 1.0699x slower
   Int16Array-to-Int32Array-set                      43.5377+-0.4511     ?     43.6970+-1.4693        ?
   Int32Array-alloc-large                            12.6503+-0.7549           12.5895+-0.5526        
   Int32Array-alloc-long-lived                       47.0074+-0.9142     ?     47.0518+-1.2839        ?
   Int32Array-alloc                                   2.7180+-0.1741            2.6770+-0.3051          might be 1.0153x faster
   Int32Array-Int8Array-view-alloc                    6.1983+-0.1834     ?      6.2695+-0.1333        ? might be 1.0115x slower
   int52-spill                                        4.6816+-0.1467     ?      4.7322+-0.1429        ? might be 1.0108x slower
   Int8Array-alloc-long-lived                        37.9771+-1.0245           37.8018+-1.3227        
   Int8Array-load-with-byteLength                     3.3795+-0.0177     ?      3.4133+-0.0317        ?
   Int8Array-load                                     3.4643+-0.1781     ?      3.4645+-0.1111        ?
   integer-divide                                    10.2011+-0.1334     ?     10.3015+-0.3847        ?
   integer-modulo                                     1.5140+-0.0374     ?      1.5223+-0.0304        ?
   is-boolean-fold-tricky                             3.8115+-0.0582     ?      3.8665+-0.2901        ? might be 1.0144x slower
   is-boolean-fold                                    2.6703+-0.1191            2.6487+-0.0348        
   is-function-fold-tricky-internal-function   
                                                     10.7545+-1.1558           10.4650+-0.4100          might be 1.0277x faster
   is-function-fold-tricky                            4.1351+-0.0730     ?      4.2383+-0.3451        ? might be 1.0250x slower
   is-function-fold                                   2.7321+-0.1270     ?      2.8052+-0.2724        ? might be 1.0268x slower
   is-number-fold-tricky                              4.0364+-0.0408     ?      4.1665+-0.2142        ? might be 1.0322x slower
   is-number-fold                                     2.6550+-0.1003            2.5937+-0.0282          might be 1.0236x faster
   is-object-or-null-fold-functions                   2.7165+-0.1399            2.6998+-0.0848        
   is-object-or-null-fold-less-tricky                 4.1103+-0.0707     ?      4.1295+-0.1064        ?
   is-object-or-null-fold-tricky                      5.3396+-0.2152     ?      5.4630+-0.2709        ? might be 1.0231x slower
   is-object-or-null-fold                             2.6954+-0.1040     ?      2.7151+-0.0814        ?
   is-object-or-null-trickier-function                4.1752+-0.1299     ?      4.2006+-0.2605        ?
   is-object-or-null-trickier-internal-function   
                                                     11.1157+-0.3756           11.1145+-0.5175        
   is-object-or-null-tricky-function                  4.2040+-0.2032     ?      4.4085+-0.8306        ? might be 1.0487x slower
   is-object-or-null-tricky-internal-function   
                                                      7.8646+-0.0261            7.8260+-0.2548        
   is-string-fold-tricky                              4.2056+-0.3948     ?      4.2700+-0.4323        ? might be 1.0153x slower
   is-string-fold                                     2.6758+-0.1156            2.6705+-0.0802        
   is-undefined-fold-tricky                           3.4949+-0.3506            3.3853+-0.2625          might be 1.0324x faster
   is-undefined-fold                                  2.6564+-0.0548     ?      2.6770+-0.0600        ?
   JSONP-negative-0                                   0.2738+-0.0603            0.2495+-0.0181          might be 1.0974x faster
   large-int-captured                                 3.9795+-0.4921     ?      4.1501+-0.6562        ? might be 1.0429x slower
   large-int-neg                                     13.8777+-0.3828     !     14.4685+-0.1778        ! definitely 1.0426x slower
   large-int                                         12.8430+-0.1558           12.8150+-0.5884        
   load-varargs-elimination                          21.3097+-0.7692     ?     21.8483+-1.6914        ? might be 1.0253x slower
   logical-not-weird-types                            2.8102+-0.0451     ?      2.8473+-0.0397        ? might be 1.0132x slower
   logical-not                                        4.2790+-0.0876     ?      4.3753+-0.1466        ? might be 1.0225x slower
   lots-of-fields                                     9.4100+-0.2096            9.2604+-0.4021          might be 1.0161x faster
   make-indexed-storage                               2.8793+-0.1856            2.7849+-0.0528          might be 1.0339x faster
   make-rope-cse                                      3.7170+-0.1305            3.6479+-0.1936          might be 1.0189x faster
   marsaglia-larger-ints                             32.5799+-0.9843     ?     33.0995+-3.4805        ? might be 1.0159x slower
   marsaglia-osr-entry                               22.1675+-1.6771           21.6620+-1.1644          might be 1.0233x faster
   math-with-out-of-bounds-array-values              22.5804+-1.9985           21.7222+-0.8605          might be 1.0395x faster
   max-boolean                                        2.7355+-0.1517            2.7045+-0.0929          might be 1.0115x faster
   method-on-number                                  16.2837+-0.2479     ?     16.3297+-0.9759        ?
   min-boolean                                        2.7079+-0.0776            2.6533+-0.0139          might be 1.0206x faster
   minus-boolean-double                               3.1587+-0.1517            3.0910+-0.0271          might be 1.0219x faster
   minus-boolean                                      2.4570+-0.0784            2.3641+-0.1038          might be 1.0393x faster
   misc-strict-eq                                    29.6487+-1.9028           29.0220+-1.6698          might be 1.0216x faster
   mod-boolean-double                                11.2670+-0.2916     ?     11.3707+-0.5519        ?
   mod-boolean                                        8.5316+-0.4079            8.4761+-0.2221        
   mul-boolean-double                                 3.8253+-0.6636            3.6747+-0.1802          might be 1.0410x faster
   mul-boolean                                        2.7743+-0.0311     ?      2.8549+-0.0798        ? might be 1.0290x slower
   neg-boolean                                        3.0958+-0.0370     ?      3.2518+-0.2714        ? might be 1.0504x slower
   negative-zero-divide                               0.3384+-0.0458            0.3323+-0.0120          might be 1.0184x faster
   negative-zero-modulo                               0.3282+-0.0255     ?      0.3496+-0.0582        ? might be 1.0653x slower
   negative-zero-negate                               0.3328+-0.0643            0.3204+-0.0431          might be 1.0387x faster
   nested-function-parsing                           43.7238+-1.2252           43.6808+-1.8066        
   new-array-buffer-dead                             88.1812+-0.8185     ?     88.4558+-2.2062        ?
   new-array-buffer-push                              6.0616+-0.4634            5.9085+-0.3618          might be 1.0259x faster
   new-array-dead                                    14.2520+-1.0183           14.1730+-1.1884        
   new-array-push                                     3.3697+-0.2466     ?      3.3990+-0.5187        ?
   no-inline-constructor                             31.4152+-0.3353           30.9752+-0.3689          might be 1.0142x faster
   number-test                                        2.8688+-0.0562     ?      2.9843+-0.2171        ? might be 1.0403x slower
   object-closure-call                                4.7980+-0.0666     ?      4.8828+-0.2007        ? might be 1.0177x slower
   object-get-own-property-symbols-on-large-array   
                                                      3.8921+-0.4617            3.8208+-0.2094          might be 1.0187x faster
   object-test                                        2.6859+-0.0219     ?      2.7470+-0.1606        ? might be 1.0227x slower
   obvious-sink-pathology-taken                     100.4803+-0.9445     ?    102.3992+-4.4146        ? might be 1.0191x slower
   obvious-sink-pathology                            95.6542+-3.7173     ?     97.4943+-4.1099        ? might be 1.0192x slower
   obviously-elidable-new-object                     29.6540+-1.7499           28.8183+-0.9666          might be 1.0290x faster
   plus-boolean-arith                                 2.4147+-0.0739            2.3815+-0.0326          might be 1.0140x faster
   plus-boolean-double                                3.1518+-0.1955     ?      3.1730+-0.2041        ?
   plus-boolean                                       2.5930+-0.0467            2.5906+-0.1468        
   poly-chain-access-different-prototypes-simple   
                                                      3.2790+-0.1050            3.2437+-0.1120          might be 1.0109x faster
   poly-chain-access-different-prototypes             2.8547+-0.0341     ?      2.9502+-0.1692        ? might be 1.0334x slower
   poly-chain-access-simpler                          3.2599+-0.0990            3.2086+-0.0691          might be 1.0160x faster
   poly-chain-access                                  3.3028+-0.2138     ?      3.3071+-0.1569        ?
   poly-stricteq                                     49.3000+-1.2059     ?     49.7143+-4.0754        ?
   polymorphic-array-call                             1.1692+-0.0422            1.1622+-0.1316        
   polymorphic-get-by-id                              2.8282+-0.0693     ?      2.9143+-0.1753        ? might be 1.0305x slower
   polymorphic-put-by-id                             24.5225+-0.9868     ?     25.2138+-0.6557        ? might be 1.0282x slower
   polymorphic-put-by-val-with-string                25.5485+-1.0072     ?     25.8920+-0.5061        ? might be 1.0134x slower
   polymorphic-put-by-val-with-symbol                26.9161+-3.1024           25.8444+-0.9545          might be 1.0415x faster
   polymorphic-structure                             13.7256+-0.2925     ?     13.9382+-0.6701        ? might be 1.0155x slower
   polyvariant-monomorphic-get-by-id                  6.4048+-0.8124     ?      6.8221+-1.6161        ? might be 1.0651x slower
   proto-getter-access                                8.3434+-0.1927     ?      8.7647+-0.6950        ? might be 1.0505x slower
   prototype-access-with-mutating-prototype           5.5140+-0.2439     ?      5.5255+-0.3280        ?
   put-by-id-replace-and-transition                   7.4097+-0.3363     ?      7.5705+-0.2344        ? might be 1.0217x slower
   put-by-id-slightly-polymorphic                     2.6052+-0.0367     ?      2.6405+-0.0432        ? might be 1.0135x slower
   put-by-id                                          9.8137+-0.6639            9.6863+-0.5898          might be 1.0132x faster
   put-by-val-direct                                  0.3308+-0.0061     ?      0.3314+-0.0220        ?
   put-by-val-large-index-blank-indexing-type   
                                                      5.3942+-0.5202            5.3632+-0.5994        
   put-by-val-machine-int                             2.2728+-0.1572     ?      2.2760+-0.2796        ?
   put-by-val-with-string-replace-and-transition   
                                                      9.9028+-0.2141            9.7835+-0.1142          might be 1.0122x faster
   put-by-val-with-string-slightly-polymorphic   
                                                      2.9301+-0.2435            2.8995+-0.0922          might be 1.0105x faster
   put-by-val-with-string                             9.9100+-0.1848     ?     10.0553+-0.2667        ? might be 1.0147x slower
   put-by-val-with-symbol-replace-and-transition   
                                                     11.3708+-0.6768     ?     11.4318+-0.2460        ?
   put-by-val-with-symbol-slightly-polymorphic   
                                                      3.1978+-0.2464            3.1544+-0.0269          might be 1.0138x faster
   put-by-val-with-symbol                             9.9905+-0.4642     ?     10.1990+-0.5719        ? might be 1.0209x slower
   rare-osr-exit-on-local                            14.8854+-0.4985     ?     14.9319+-0.0427        ?
   register-pressure-from-osr                        17.0052+-0.6850           16.8113+-0.2335          might be 1.0115x faster
   repeat-multi-get-by-offset                        22.1315+-0.4095           21.8903+-0.4884          might be 1.0110x faster
   setter-prototype                                   7.6112+-0.1311     ?      7.9045+-0.6543        ? might be 1.0385x slower
   setter                                             5.2043+-0.2915     ?      5.8081+-1.9893        ? might be 1.1160x slower
   simple-activation-demo                            25.2322+-1.1894           25.0563+-0.8716        
   simple-getter-access                              10.5020+-0.1085     ?     10.8397+-0.4613        ? might be 1.0322x slower
   simple-poly-call-nested                            8.4013+-0.5934     ?      8.6512+-0.7781        ? might be 1.0298x slower
   simple-poly-call                                   1.2472+-0.1697            1.1693+-0.0448          might be 1.0666x faster
   sin-boolean                                       18.7330+-0.6632     ?     19.5982+-2.6864        ? might be 1.0462x slower
   singleton-scope                                   56.2826+-1.3003           55.8004+-0.2202        
   sink-function                                      9.4662+-0.4476     ?      9.7155+-0.4840        ? might be 1.0263x slower
   sink-huge-activation                              16.6417+-1.0626     ?     17.1593+-1.1199        ? might be 1.0311x slower
   sinkable-new-object-dag                           54.4528+-1.5822           54.3275+-1.2257        
   sinkable-new-object-taken                         44.4813+-0.7230           44.1118+-1.3918        
   sinkable-new-object                               30.2390+-1.0944           29.7305+-0.7087          might be 1.0171x faster
   slow-array-profile-convergence                     2.5305+-0.2305            2.4818+-0.2254          might be 1.0197x faster
   slow-convergence                                   2.3052+-0.1725     ?      2.3788+-0.2427        ? might be 1.0319x slower
   slow-ternaries                                    17.7302+-0.6771     ?     18.7717+-2.9550        ? might be 1.0587x slower
   sorting-benchmark                                 17.1846+-0.6074     ?     17.2240+-0.5126        ?
   sparse-conditional                                 1.1235+-0.0976            1.1027+-0.0534          might be 1.0189x faster
   splice-to-remove                                  12.7888+-1.0544     ?     12.7957+-1.4742        ?
   string-char-code-at                               14.3842+-0.0882     ?     14.6514+-0.6229        ? might be 1.0186x slower
   string-concat-object                               2.2728+-0.3274            2.0866+-0.3451          might be 1.0892x faster
   string-concat-pair-object                          1.9673+-0.1521     ?      2.1064+-0.1825        ? might be 1.0707x slower
   string-concat-pair-simple                          9.3093+-0.4821            9.3093+-0.5101        
   string-concat-simple                               9.1638+-0.2796     ?      9.2353+-0.4552        ?
   string-cons-repeat                                 6.4625+-0.2712     ?      6.5366+-0.0532        ? might be 1.0115x slower
   string-cons-tower                                  6.6470+-0.2653     ?      6.7004+-0.2722        ?
   string-equality                                   15.5760+-0.2399     ?     16.4789+-2.9705        ? might be 1.0580x slower
   string-get-by-val-big-char                         6.8549+-0.3630            6.7303+-0.0759          might be 1.0185x faster
   string-get-by-val-out-of-bounds-insane             3.3106+-0.3256            3.2628+-0.2144          might be 1.0147x faster
   string-get-by-val-out-of-bounds                    4.1352+-0.1314            4.0615+-0.1919          might be 1.0181x faster
   string-get-by-val                                  2.8570+-0.1857            2.8516+-0.0865        
   string-hash                                        1.8170+-0.0291            1.8091+-0.0347        
   string-long-ident-equality                        14.0700+-0.8734     ^     12.5887+-0.3730        ^ definitely 1.1177x faster
   string-out-of-bounds                               9.8864+-0.2354     ?     10.4703+-0.5968        ? might be 1.0591x slower
   string-repeat-arith                               27.1256+-0.3945     ?     27.6539+-0.7851        ? might be 1.0195x slower
   string-sub                                        52.1514+-1.0280     ?     53.3043+-1.1536        ? might be 1.0221x slower
   string-test                                        2.8203+-0.0988            2.7872+-0.0740          might be 1.0119x faster
   string-var-equality                               27.3907+-2.0776           25.3070+-0.5394          might be 1.0823x faster
   structure-hoist-over-transitions                   2.3138+-0.1852     ?      2.4303+-0.1183        ? might be 1.0503x slower
   substring-concat-weird                            36.9525+-2.6178     ?     37.2427+-3.5895        ?
   substring-concat                                  40.2090+-1.4453           39.7189+-1.4179          might be 1.0123x faster
   substring                                         45.4710+-0.6038     ?     45.9222+-1.6579        ?
   switch-char-constant                               2.6689+-0.0318     ?      2.6865+-0.1020        ?
   switch-char                                        5.3908+-0.3552     ?      6.5712+-1.2822        ? might be 1.2190x slower
   switch-constant                                    7.0085+-0.7191     ?      7.4216+-0.1992        ? might be 1.0589x slower
   switch-string-basic-big-var                       14.7617+-1.9152           14.2913+-0.2913          might be 1.0329x faster
   switch-string-basic-big                           14.6921+-0.3795     ?     15.2847+-1.4608        ? might be 1.0403x slower
   switch-string-basic-var                           13.6546+-0.8759     ?     13.7850+-1.1219        ?
   switch-string-basic                               12.7780+-0.5445     ?     12.8995+-0.4015        ?
   switch-string-big-length-tower-var                18.7791+-2.2050           17.9701+-0.3237          might be 1.0450x faster
   switch-string-length-tower-var                    13.3517+-0.3410     ?     13.5579+-0.3187        ? might be 1.0154x slower
   switch-string-length-tower                        12.2167+-0.3505           12.2010+-0.3850        
   switch-string-short                               12.2465+-0.3509     ?     12.5642+-1.5012        ? might be 1.0259x slower
   switch                                            10.9247+-0.7051           10.9243+-1.0789        
   tear-off-arguments-simple                          3.0260+-0.1670     ?      3.1101+-0.2674        ? might be 1.0278x slower
   tear-off-arguments                                 4.0435+-0.0686     ?      4.1039+-0.2575        ? might be 1.0149x slower
   temporal-structure                                12.1691+-0.4488           12.0963+-0.3884        
   to-int32-boolean                                  12.9985+-0.5109           12.7478+-0.2835          might be 1.0197x faster
   try-catch-get-by-val-cloned-arguments             14.0524+-0.5049           14.0135+-0.3976        
   try-catch-get-by-val-direct-arguments              6.2744+-0.1099     ?      6.3130+-0.1435        ?
   try-catch-get-by-val-scoped-arguments              7.3967+-0.2766     ?      8.1035+-1.1185        ? might be 1.0956x slower
   typed-array-get-set-by-val-profiling              28.7735+-3.8192           27.6875+-2.2169          might be 1.0392x faster
   undefined-property-access                        232.7134+-4.7083          230.1381+-2.8006          might be 1.0112x faster
   undefined-test                                     2.9395+-0.1248            2.8791+-0.0534          might be 1.0210x faster
   unprofiled-licm                                   14.5088+-0.6339           13.9561+-0.8632          might be 1.0396x faster
   varargs-call                                      14.0327+-1.4022           13.8377+-0.8318          might be 1.0141x faster
   varargs-construct-inline                          22.8644+-3.0339           22.2543+-1.9204          might be 1.0274x faster
   varargs-construct                                 20.1953+-0.4762     ?     20.3165+-0.6016        ?
   varargs-inline                                     8.6763+-0.4067            8.6213+-0.1612        
   varargs-strict-mode                                9.0448+-0.3472     ?      9.1063+-0.4895        ?
   varargs                                            9.0218+-0.1773     ?      9.2488+-0.4557        ? might be 1.0252x slower
   weird-inlining-const-prop                          2.0393+-0.2165            1.9443+-0.1024          might be 1.0489x faster

   <geometric>                                        7.8545+-0.0064     ?      7.8669+-0.0670        ? might be 1.0016x slower

                                                          master                      ic                                        
Geomean of preferred means:
   <scaled-result>                                   25.6843+-0.2093           25.5263+-0.2422          might be 1.0062x faster
Comment 4 Geoffrey Garen 2015-08-24 11:08:02 PDT
Comment on attachment 259757 [details]
Patch

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

r=me

> Source/JavaScriptCore/jit/JITOperations.cpp:614
> +                    // Seems generic property access site.

=> Seem like a

> Source/JavaScriptCore/jit/JITOperations.cpp:694
> +                    // Seems generic property access site.

=> Seems like a

> Source/JavaScriptCore/jit/JITOperations.cpp:1641
> +                    // Seems generic property access site.

=> Seems like a
Comment 5 Yusuke Suzuki 2015-08-24 11:09:33 PDT
Comment on attachment 259757 [details]
Patch

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

Thank you for your review!

>> Source/JavaScriptCore/jit/JITOperations.cpp:614
>> +                    // Seems generic property access site.
> 
> => Seem like a

Fixed.

>> Source/JavaScriptCore/jit/JITOperations.cpp:694
>> +                    // Seems generic property access site.
> 
> => Seems like a

Fixed.

>> Source/JavaScriptCore/jit/JITOperations.cpp:1641
>> +                    // Seems generic property access site.
> 
> => Seems like a

Fixed.
Comment 6 Yusuke Suzuki 2015-08-24 13:26:18 PDT
Committed r188878: <http://trac.webkit.org/changeset/188878>