Bug 149869

Summary: Inline caches should handle out-of-line offsets out-of-line
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, benjamin, ggaren, mark.lam, mhahnenb, msaboff, nrotem, oliver, saam, sam
Priority: P2    
Version: WebKit Nightly Build   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 149852    
Attachments:
Description Flags
possible patch
none
the patch saam: review+

Description Filip Pizlo 2015-10-06 21:53:57 PDT
Patch forthcoming.
Comment 1 Filip Pizlo 2015-10-06 21:54:21 PDT
This is needed for concurrent copying barriers.
Comment 2 Filip Pizlo 2015-10-06 21:54:50 PDT
Created attachment 262580 [details]
possible patch
Comment 3 Filip Pizlo 2015-10-06 23:25:53 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 (r190660)
"OutOfLineIC" at /Volumes/Data/quinary/OpenSource/WebKitBuild/Release/jsc (r190660)

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                OutOfLineIC                                    
SunSpider:
   3d-cube                                            4.5390+-0.0646            4.4420+-0.0660          might be 1.0218x faster
   3d-morph                                           5.5755+-0.5392            5.3552+-0.2561          might be 1.0412x faster
   3d-raytrace                                        5.3268+-0.5961            5.1105+-0.0534          might be 1.0423x faster
   access-binary-trees                                2.1119+-0.0308            2.1062+-0.0881        
   access-fannkuch                                    5.4828+-0.1308     ?      5.5351+-0.1814        ?
   access-nbody                                       2.6007+-0.2752            2.4902+-0.0483          might be 1.0444x faster
   access-nsieve                                      3.3925+-0.0475     ?      3.4744+-0.1595        ? might be 1.0241x slower
   bitops-3bit-bits-in-byte                           1.1332+-0.0246     ?      1.2150+-0.1686        ? might be 1.0722x slower
   bitops-bits-in-byte                                3.1769+-0.0694            3.1750+-0.0683        
   bitops-bitwise-and                                 2.1005+-0.1705     ?      2.1554+-0.3277        ? might be 1.0262x slower
   bitops-nsieve-bits                                 2.9323+-0.0627            2.9127+-0.0279        
   controlflow-recursive                              2.3813+-0.1176            2.3500+-0.0247          might be 1.0133x faster
   crypto-aes                                         4.0932+-0.5772            3.8949+-0.1148          might be 1.0509x faster
   crypto-md5                                         2.5316+-0.2239            2.4792+-0.1160          might be 1.0211x faster
   crypto-sha1                                        2.6788+-0.2713            2.5617+-0.1707          might be 1.0457x faster
   date-format-tofte                                  6.6470+-0.4011            6.5488+-0.2350          might be 1.0150x faster
   date-format-xparb                                  4.7227+-0.3049     ?      4.7735+-0.2112        ? might be 1.0108x slower
   math-cordic                                        2.7622+-0.0419     ?      2.8869+-0.1918        ? might be 1.0451x slower
   math-partial-sums                                  4.7966+-0.1220     ?      4.9047+-0.5326        ? might be 1.0225x slower
   math-spectral-norm                                 1.8702+-0.0327     ?      1.9177+-0.0404        ? might be 1.0254x slower
   regexp-dna                                         6.3750+-0.3830            6.2935+-0.5530          might be 1.0130x faster
   string-base64                                      4.4116+-0.3896            4.2530+-0.0517          might be 1.0373x faster
   string-fasta                                       5.9464+-0.3786            5.8175+-0.1964          might be 1.0222x faster
   string-tagcloud                                    7.9901+-0.3196     ?      8.1130+-0.3668        ? might be 1.0154x slower
   string-unpack-code                                18.3113+-0.7973           18.0604+-0.5295          might be 1.0139x faster
   string-validate-input                              4.5027+-0.2791            4.3618+-0.1672          might be 1.0323x faster

   <arithmetic>                                       4.5536+-0.0584            4.5072+-0.0318          might be 1.0103x faster

                                                        TipOfTree                OutOfLineIC                                    
LongSpider:
   3d-cube                                          793.4585+-7.4580     ?    794.0462+-4.8537        ?
   3d-morph                                        1483.0600+-2.4409     ?   1484.2594+-3.4710        ?
   3d-raytrace                                      592.4771+-5.9065          590.2113+-3.4067        
   access-binary-trees                              787.0282+-5.8523     ?    790.4316+-4.4118        ?
   access-fannkuch                                  275.5377+-4.7895          272.1432+-1.4825          might be 1.0125x faster
   access-nbody                                     509.9842+-1.1644     ?    511.9496+-3.3642        ?
   access-nsieve                                    371.4381+-10.4966    ?    381.1533+-13.1105       ? might be 1.0262x slower
   bitops-3bit-bits-in-byte                          33.9175+-0.7200     ?     34.8943+-1.0448        ? might be 1.0288x slower
   bitops-bits-in-byte                               75.5812+-1.7477           74.3073+-0.9517          might be 1.0171x faster
   bitops-nsieve-bits                               397.4914+-4.0656     ?    401.3551+-3.2687        ?
   controlflow-recursive                            432.4660+-7.6830          425.2578+-2.0113          might be 1.0169x faster
   crypto-aes                                       554.4919+-8.2885          552.0148+-11.1500       
   crypto-md5                                       432.3673+-3.1361     ?    434.6884+-3.0845        ?
   crypto-sha1                                      630.3032+-13.4139    ?    631.2011+-10.5702       ?
   date-format-tofte                                499.2385+-22.1611         485.7740+-8.4376          might be 1.0277x faster
   date-format-xparb                                676.3181+-45.1870         666.6192+-13.4273         might be 1.0145x faster
   hash-map                                         148.8115+-1.8575     ?    150.1648+-1.9634        ?
   math-cordic                                      474.8254+-1.0269          474.6429+-1.1248        
   math-partial-sums                                453.6596+-0.7608     ?    454.7040+-1.9402        ?
   math-spectral-norm                               551.4131+-5.7366          547.0429+-2.2230        
   string-base64                                    373.1177+-4.0207          372.9408+-2.7686        
   string-fasta                                     362.3982+-1.3134          359.5067+-1.9062        
   string-tagcloud                                  174.6594+-3.0076     ?    174.7985+-3.6202        ?

   <geometric>                                      383.5275+-1.6070          383.2290+-1.3357          might be 1.0008x faster

                                                        TipOfTree                OutOfLineIC                                    
V8Spider:
   crypto                                            47.9350+-0.9631     ?     48.6944+-0.9294        ? might be 1.0158x slower
   deltablue                                         79.6912+-3.7220           78.6995+-2.2604          might be 1.0126x faster
   earley-boyer                                      42.2707+-1.3736           41.9436+-1.0796        
   raytrace                                          31.5917+-2.1145           31.3845+-1.2088        
   regexp                                            61.1928+-1.7169     ?     61.3854+-1.5468        ?
   richards                                          53.6446+-1.0220     ?     54.3659+-0.9563        ? might be 1.0134x slower
   splay                                             36.7200+-1.1435           36.0715+-1.1073          might be 1.0180x faster

   <geometric>                                       48.2858+-0.4822           48.2182+-0.5837          might be 1.0014x faster

                                                        TipOfTree                OutOfLineIC                                    
Octane:
   encrypt                                           0.16434+-0.00113    ?     0.16677+-0.00262       ? might be 1.0148x slower
   decrypt                                           2.84670+-0.01148    ?     2.85432+-0.01264       ?
   deltablue                                x2       0.13741+-0.00414          0.13597+-0.00229         might be 1.0106x faster
   earley                                            0.30018+-0.00548          0.29831+-0.00435       
   boyer                                             4.32557+-0.04003          4.31622+-0.07464       
   navier-stokes                            x2       4.80735+-0.01297    ?     4.81321+-0.01519       ?
   raytrace                                 x2       0.86574+-0.01811          0.85677+-0.00477         might be 1.0105x faster
   richards                                 x2       0.08901+-0.00116          0.08865+-0.00063       
   splay                                    x2       0.36949+-0.06379          0.34270+-0.00122         might be 1.0782x faster
   regexp                                   x2      23.77335+-0.38504    ?    24.39184+-0.30312       ? might be 1.0260x slower
   pdfjs                                    x2      36.42668+-0.14141    ?    36.49166+-0.34184       ?
   mandreel                                 x2      42.17236+-0.26398    ?    42.23609+-0.39850       ?
   gbemu                                    x2      31.08877+-0.38114    ?    32.07040+-1.11966       ? might be 1.0316x slower
   closure                                           0.57250+-0.00285          0.57163+-0.00278       
   jquery                                            7.23145+-0.03829    ?     7.23245+-0.03072       ?
   box2d                                    x2       9.04915+-0.08085    ?     9.11059+-0.13026       ?
   zlib                                     x2     356.79491+-19.63554   ?   382.18461+-15.54557      ? might be 1.0712x slower
   typescript                               x2     655.76880+-8.58419    ?   659.94318+-10.49533      ?

   <geometric>                                       5.28788+-0.04521    ?     5.30877+-0.02507       ? might be 1.0040x slower

                                                        TipOfTree                OutOfLineIC                                    
Kraken:
   ai-astar                                          127.405+-2.239            125.884+-0.502           might be 1.0121x faster
   audio-beat-detection                               50.054+-0.256             49.979+-0.148         
   audio-dft                                          96.687+-2.388             95.117+-0.248           might be 1.0165x faster
   audio-fft                                          35.246+-0.360      ?      35.978+-1.296         ? might be 1.0208x slower
   audio-oscillator                                   56.943+-0.877             56.438+-1.348         
   imaging-darkroom                                   59.799+-0.438             59.678+-0.084         
   imaging-desaturate                                 48.566+-1.770             47.943+-0.221           might be 1.0130x faster
   imaging-gaussian-blur                              84.863+-0.279             84.770+-0.452         
   json-parse-financial                               36.727+-1.427      ?      38.364+-1.011         ? might be 1.0446x slower
   json-stringify-tinderbox                           22.706+-1.112             22.179+-0.382           might be 1.0237x faster
   stanford-crypto-aes                                40.419+-1.467      ?      40.524+-1.394         ?
   stanford-crypto-ccm                                36.054+-1.165             36.051+-1.535         
   stanford-crypto-pbkdf2                             94.479+-0.696      ?      94.935+-1.557         ?
   stanford-crypto-sha256-iterative                   35.730+-0.235      ?      36.268+-0.810         ? might be 1.0151x slower

   <arithmetic>                                       58.977+-0.276             58.865+-0.194           might be 1.0019x faster

                                                        TipOfTree                OutOfLineIC                                    
JSRegress:
   abc-forward-loop-equal                            30.2203+-0.7992     ?     30.2928+-1.4031        ?
   abc-postfix-backward-loop                         29.8451+-0.7825           29.3438+-0.4097          might be 1.0171x faster
   abc-simple-backward-loop                          30.1415+-0.9062           29.6168+-0.7774          might be 1.0177x faster
   abc-simple-forward-loop                           29.7114+-0.7176     ?     30.2882+-1.3014        ? might be 1.0194x slower
   abc-skippy-loop                                   21.2870+-0.3425           20.9957+-0.5564          might be 1.0139x faster
   abs-boolean                                        2.4356+-0.0399     ?      2.4448+-0.0332        ?
   adapt-to-double-divide                            16.3381+-0.5543     ?     16.3669+-0.5391        ?
   aliased-arguments-getbyval                         1.2261+-0.0445     ?      1.2741+-0.0730        ? might be 1.0391x slower
   allocate-big-object                                2.3632+-0.1300     ?      2.7561+-0.4657        ? might be 1.1662x slower
   arguments-named-and-reflective                    10.5826+-0.2240           10.5289+-0.3014        
   arguments-out-of-bounds                            9.2635+-0.2235     ?      9.5051+-0.2962        ? might be 1.0261x slower
   arguments-strict-mode                              9.4032+-0.2185     ?      9.4289+-0.4488        ?
   arguments                                          8.3862+-0.1959     ?      8.4795+-0.2136        ? might be 1.0111x slower
   arity-mismatch-inlining                            0.9373+-0.2108            0.8255+-0.0107          might be 1.1354x faster
   array-access-polymorphic-structure                 7.1168+-0.2356            7.0646+-0.1786        
   array-nonarray-polymorhpic-access                 23.8245+-0.5797           23.5292+-0.7836          might be 1.0126x faster
   array-prototype-every                             75.2871+-1.6994     ?     77.5055+-1.0662        ? might be 1.0295x slower
   array-prototype-forEach                           74.4639+-0.6974     !     76.9650+-0.5373        ! definitely 1.0336x slower
   array-prototype-map                               81.3217+-0.2745     !     87.0494+-4.0652        ! definitely 1.0704x slower
   array-prototype-reduce                            71.5601+-1.2807     ?     72.2036+-0.6512        ?
   array-prototype-reduceRight                       73.1896+-4.5222           71.9617+-0.9018          might be 1.0171x faster
   array-prototype-some                              74.9606+-1.2302     ?     76.8684+-1.8131        ? might be 1.0255x slower
   array-splice-contiguous                           21.4473+-0.6984           21.3135+-1.1499        
   array-with-double-add                              3.4393+-0.0585            3.4031+-0.0676          might be 1.0106x faster
   array-with-double-increment                        3.1117+-0.1209     ?      3.1815+-0.2422        ? might be 1.0224x slower
   array-with-double-mul-add                          4.5008+-0.4186            4.3066+-0.2025          might be 1.0451x faster
   array-with-double-sum                              3.1671+-0.0605     ?      3.2911+-0.2321        ? might be 1.0392x slower
   array-with-int32-add-sub                           5.6408+-0.1617     ?      5.7798+-0.1729        ? might be 1.0246x slower
   array-with-int32-or-double-sum                     3.2394+-0.0707            3.2371+-0.0703        
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     26.7330+-1.3070           26.5512+-1.5784        
   ArrayBuffer-DataView-alloc-long-lived             12.7379+-1.5117           11.9565+-0.2952          might be 1.0654x faster
   ArrayBuffer-Int32Array-byteOffset                  3.5465+-0.0843     ?      3.6222+-0.2191        ? might be 1.0213x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     26.1375+-0.9586           26.0472+-0.7900        
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     19.7537+-0.8094           19.5667+-0.8860        
   ArrayBuffer-Int8Array-alloc-long-lived            11.5557+-0.4230     ?     11.6683+-0.6474        ?
   ArrayBuffer-Int8Array-alloc                        9.5710+-0.3733     ?      9.7092+-0.4006        ? might be 1.0144x slower
   arrowfunction-call                                10.9296+-0.1764           10.8034+-0.1186          might be 1.0117x faster
   asmjs_bool_bug                                     7.4814+-0.1460     ?      7.4902+-0.1374        ?
   assign-custom-setter-polymorphic                   2.4407+-0.0415     ?      2.5598+-0.3029        ? might be 1.0488x slower
   assign-custom-setter                               3.3035+-0.0357     ?      3.3315+-0.3308        ?
   basic-set                                          7.5737+-0.4013            7.4421+-0.4707          might be 1.0177x faster
   big-int-mul                                        3.4983+-0.1203            3.4530+-0.0546          might be 1.0131x faster
   boolean-test                                       2.9154+-0.0288     !      3.1044+-0.1601        ! definitely 1.0648x slower
   branch-fold                                        3.5833+-0.0702     ?      3.5939+-0.0536        ?
   branch-on-string-as-boolean                       17.5216+-1.1747           16.5719+-0.5714          might be 1.0573x faster
   by-val-generic                                     2.4656+-0.0838     ?      2.5603+-0.4598        ? might be 1.0384x slower
   call-spread-apply                                 26.9176+-0.8655     ?     27.0088+-0.8799        ?
   call-spread-call                                  20.8888+-0.5490     ?     21.2547+-1.1803        ? might be 1.0175x slower
   captured-assignments                               0.4392+-0.0298            0.4155+-0.0132          might be 1.0571x faster
   cast-int-to-double                                 5.0993+-0.0741     ?      5.1625+-0.1885        ? might be 1.0124x slower
   cell-argument                                      5.8818+-0.2200            5.7501+-0.3113          might be 1.0229x faster
   cfg-simplify                                       2.8833+-0.0718            2.8336+-0.0567          might be 1.0176x faster
   chain-getter-access                                8.3848+-0.1640            8.2786+-0.1188          might be 1.0128x faster
   cmpeq-obj-to-obj-other                            13.2506+-1.1294           11.4497+-1.2459          might be 1.1573x faster
   constant-test                                      4.7566+-0.0689     ?      4.8950+-0.1098        ? might be 1.0291x slower
   create-lots-of-functions                           9.8690+-1.2046            9.5298+-0.7431          might be 1.0356x faster
   cse-new-array-buffer                               2.3370+-0.1904     ?      2.4799+-0.2541        ? might be 1.0611x slower
   cse-new-array                                      2.4316+-0.2112            2.3371+-0.0642          might be 1.0405x faster
   DataView-custom-properties                        31.6129+-1.2872           31.3340+-1.2907        
   delay-tear-off-arguments-strictmode               11.4114+-0.1897     !     12.1088+-0.3373        ! definitely 1.0611x slower
   deltablue-varargs                                171.5499+-8.0333     ?    172.8196+-7.2632        ?
   destructuring-arguments                          159.0995+-1.7215     ?    159.3901+-3.3997        ?
   destructuring-parameters-overridden-by-function   
                                                      0.4471+-0.0076     ?      0.4547+-0.0320        ? might be 1.0170x slower
   destructuring-swap                                 4.8054+-0.0826            4.7705+-0.1079        
   direct-arguments-getbyval                          1.3208+-0.2470            1.2627+-0.0688          might be 1.0461x faster
   div-boolean-double                                 5.2452+-0.1615     ?      5.3736+-0.1197        ? might be 1.0245x slower
   div-boolean                                        8.0969+-0.0557     ?      8.1350+-0.1739        ?
   double-get-by-val-out-of-bounds                    4.5144+-0.1349     ?      4.6560+-0.3286        ? might be 1.0314x slower
   double-pollution-getbyval                          8.6574+-0.0728     ?      8.6687+-0.1532        ?
   double-pollution-putbyoffset                       3.8228+-0.2779            3.6158+-0.1670          might be 1.0573x faster
   double-real-use                                   24.6549+-1.4272           23.7777+-0.4274          might be 1.0369x faster
   double-to-int32-typed-array-no-inline              2.2518+-0.2179            2.1866+-0.0884          might be 1.0299x faster
   double-to-int32-typed-array                        2.0724+-0.0352     ?      2.1298+-0.0708        ? might be 1.0277x slower
   double-to-uint32-typed-array-no-inline             2.2868+-0.0866     ?      2.2972+-0.0953        ?
   double-to-uint32-typed-array                       2.1559+-0.0995            2.0832+-0.0297          might be 1.0349x faster
   elidable-new-object-dag                           33.9655+-1.3682           33.8997+-0.9317        
   elidable-new-object-roflcopter                    32.8521+-0.8970     ?     33.1663+-1.5951        ?
   elidable-new-object-then-call                     32.2630+-1.6198           31.8987+-0.8876          might be 1.0114x faster
   elidable-new-object-tree                          38.8614+-1.6782           37.8675+-1.3479          might be 1.0262x faster
   empty-string-plus-int                              5.0845+-0.3526     ?      5.3718+-0.5781        ? might be 1.0565x slower
   emscripten-cube2hash                              28.1342+-1.9157           26.5404+-1.8505          might be 1.0601x faster
   exit-length-on-plain-object                       15.4148+-1.1923     ?     16.0857+-2.8083        ? might be 1.0435x slower
   external-arguments-getbyval                        1.2178+-0.0826     ?      1.2710+-0.0670        ? might be 1.0437x slower
   external-arguments-putbyval                        2.1676+-0.1431     ?      2.1963+-0.1221        ? might be 1.0132x slower
   fixed-typed-array-storage-var-index                1.4356+-0.3379            1.2164+-0.0332          might be 1.1801x faster
   fixed-typed-array-storage                          1.0195+-0.2865            0.9297+-0.0649          might be 1.0966x faster
   Float32Array-matrix-mult                           3.9732+-0.0742     ?      4.1572+-0.2086        ? might be 1.0463x slower
   Float32Array-to-Float64Array-set                  49.2870+-1.5137     ?     53.1206+-7.5639        ? might be 1.0778x slower
   Float64Array-alloc-long-lived                     59.6640+-1.8183     ?     63.8074+-8.6372        ? might be 1.0694x slower
   Float64Array-to-Int16Array-set                    60.8801+-1.8119           59.4241+-1.5426          might be 1.0245x faster
   fold-double-to-int                                13.6952+-3.8093           12.0133+-0.0991          might be 1.1400x faster
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     11.1332+-1.1075           11.0423+-1.4036        
   fold-get-by-id-to-multi-get-by-offset              9.9635+-0.9027     ?      9.9694+-0.7461        ?
   fold-multi-get-by-offset-to-get-by-offset   
                                                      9.2765+-0.7507            8.0145+-1.3422          might be 1.1575x faster
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      8.7679+-0.7137            8.0146+-0.4777          might be 1.0940x faster
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      9.6662+-0.7427            9.4217+-0.6766          might be 1.0260x faster
   fold-multi-put-by-offset-to-put-by-offset   
                                                      9.5672+-1.2354     ?     10.1363+-0.4971        ? might be 1.0595x slower
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                      9.8807+-0.6548     ?     10.8088+-1.4599        ? might be 1.0939x slower
   fold-put-by-id-to-multi-put-by-offset             12.6258+-1.2940           11.5731+-0.7811          might be 1.0910x faster
   fold-put-by-val-with-string-to-multi-put-by-offset   
                                                     11.5446+-1.3110     ?     12.2725+-2.7357        ? might be 1.0630x slower
   fold-put-by-val-with-symbol-to-multi-put-by-offset   
                                                     10.3262+-0.8741     ?     11.1638+-0.8009        ? might be 1.0811x slower
   fold-put-structure                                 8.1236+-1.5437            7.0624+-1.2283          might be 1.1503x faster
   for-of-iterate-array-entries                      10.7184+-0.2223     ?     10.8562+-0.2748        ? might be 1.0128x slower
   for-of-iterate-array-keys                          3.4596+-0.2560            3.4524+-0.1844        
   for-of-iterate-array-values                        3.3313+-0.1454     ?      3.4476+-0.2578        ? might be 1.0349x slower
   fround                                            17.9174+-0.5746           17.4101+-0.1679          might be 1.0291x faster
   ftl-library-inlining-dataview                     56.1387+-0.7435     ?     56.2978+-0.9119        ?
   ftl-library-inlining                              96.8448+-0.7047     !    100.4457+-1.4329        ! definitely 1.0372x slower
   function-call                                     10.8941+-0.1301           10.8521+-0.0778        
   function-dot-apply                                 2.0908+-0.1228            2.0214+-0.0349          might be 1.0343x faster
   function-test                                      2.7359+-0.0615     ?      2.7531+-0.1615        ?
   function-with-eval                                82.9871+-1.0188           82.5304+-0.9386        
   gcse-poly-get-less-obvious                        20.4157+-0.6673     !     21.6950+-0.4100        ! definitely 1.0627x slower
   gcse-poly-get                                     22.3415+-0.8558     ?     23.0758+-2.4666        ? might be 1.0329x slower
   gcse                                               3.3558+-0.0236     ?      3.4293+-0.1511        ? might be 1.0219x slower
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.6553+-0.1686            2.6415+-0.0985        
   get-by-id-bimorphic-check-structure-elimination   
                                                      4.7837+-0.2917     ?      4.8170+-0.2521        ?
   get-by-id-chain-from-try-block                     2.4161+-0.0762     ?      2.5645+-0.2007        ? might be 1.0614x slower
   get-by-id-check-structure-elimination              3.8170+-0.0339     ?      3.8875+-0.0587        ? might be 1.0185x slower
   get-by-id-proto-or-self                           15.2847+-0.7279     ?     15.8865+-0.5723        ? might be 1.0394x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      2.8834+-0.0692     ?      3.0488+-0.2727        ? might be 1.0573x slower
   get-by-id-self-or-proto                           15.0363+-0.4303     ?     15.2207+-0.4849        ? might be 1.0123x slower
   get-by-val-out-of-bounds                           4.1866+-0.2650     ?      4.2103+-0.0951        ?
   get-by-val-with-string-bimorphic-check-structure-elimination-simple   
                                                      2.6907+-0.0167            2.6898+-0.0330        
   get-by-val-with-string-bimorphic-check-structure-elimination   
                                                      6.1490+-0.1566            6.0892+-0.1110        
   get-by-val-with-string-chain-from-try-block   
                                                      2.4503+-0.1236     ?      2.4601+-0.0846        ?
   get-by-val-with-string-check-structure-elimination   
                                                      5.3022+-0.3972     ?      5.4882+-0.4491        ? might be 1.0351x slower
   get-by-val-with-string-proto-or-self              15.9532+-0.9837           15.6606+-0.6800          might be 1.0187x faster
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple   
                                                      3.1026+-0.1266            3.0876+-0.0729        
   get-by-val-with-string-self-or-proto              16.0377+-0.7966           15.4069+-0.5604          might be 1.0409x faster
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple   
                                                      2.9107+-0.0634            2.8662+-0.0244          might be 1.0155x faster
   get-by-val-with-symbol-bimorphic-check-structure-elimination   
                                                     12.4065+-0.1425           12.2822+-0.1412          might be 1.0101x faster
   get-by-val-with-symbol-chain-from-try-block   
                                                      2.4731+-0.1452     ?      2.5216+-0.1715        ? might be 1.0196x slower
   get-by-val-with-symbol-check-structure-elimination   
                                                     11.0904+-0.1195     ?     11.1437+-0.1798        ?
   get-by-val-with-symbol-proto-or-self              15.2557+-0.5179     ?     15.7392+-0.9892        ? might be 1.0317x slower
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple   
                                                      3.9483+-0.0986     ^      3.6535+-0.0505        ^ definitely 1.0807x faster
   get-by-val-with-symbol-self-or-proto              15.9308+-0.9388           15.5652+-0.4164          might be 1.0235x faster
   get_callee_monomorphic                             2.5421+-0.4773            2.2986+-0.1772          might be 1.1059x faster
   get_callee_polymorphic                             3.5630+-0.2441            3.4448+-0.3187          might be 1.0343x faster
   getter-no-activation                               4.8271+-0.2892     ?      4.9500+-0.3004        ? might be 1.0255x slower
   getter-prototype                                   7.8593+-0.1554            7.8373+-0.0978        
   getter-richards-try-catch                        992.2705+-14.8083         982.7591+-27.0564       
   getter-richards                                  118.4009+-5.0033          115.0199+-4.4461          might be 1.0294x faster
   getter                                             5.3206+-0.5588     ?      6.0588+-0.6214        ? might be 1.1388x slower
   global-object-access-with-mutating-structure   
                                                      5.6196+-0.1331            5.5981+-0.1566        
   global-var-const-infer-fire-from-opt               0.8599+-0.0309     ?      0.9848+-0.3002        ? might be 1.1453x slower
   global-var-const-infer                             0.6808+-0.1028            0.6717+-0.1121          might be 1.0135x faster
   hard-overflow-check-equal                         27.8846+-0.2639     ?     29.6870+-4.6550        ? might be 1.0646x slower
   hard-overflow-check                               26.9723+-0.7879     ?     27.3365+-0.6494        ? might be 1.0135x slower
   HashMap-put-get-iterate-keys                      26.2568+-1.1323           25.0621+-1.1257          might be 1.0477x faster
   HashMap-put-get-iterate                           27.2506+-1.4774     ?     28.3060+-1.1911        ? might be 1.0387x slower
   HashMap-string-put-get-iterate                    23.3688+-0.9306     ?     24.6740+-1.7120        ? might be 1.0559x slower
   hoist-make-rope                                    9.3199+-0.9776            8.1350+-0.8253          might be 1.1457x faster
   hoist-poly-check-structure-effectful-loop   
                                                      3.6759+-0.1769            3.5530+-0.0563          might be 1.0346x faster
   hoist-poly-check-structure                         3.0778+-0.0962            3.0535+-0.0581        
   imul-double-only                                   7.6735+-0.3948            7.4751+-0.3758          might be 1.0266x faster
   imul-int-only                                      8.4442+-1.0327     ?      8.6975+-0.9730        ? might be 1.0300x slower
   imul-mixed                                         6.7367+-0.5202     ?      7.1381+-0.1965        ? might be 1.0596x slower
   in-four-cases                                     17.2307+-0.9713           16.7593+-0.2585          might be 1.0281x faster
   in-one-case-false                                  9.2771+-0.1830     ?      9.9302+-1.1251        ? might be 1.0704x slower
   in-one-case-true                                   9.4899+-0.5644            9.4321+-0.5542        
   in-two-cases                                       9.5584+-0.3452     ?      9.6836+-0.2625        ? might be 1.0131x slower
   indexed-properties-in-objects                      2.8532+-0.1241            2.7701+-0.0278          might be 1.0300x faster
   infer-closure-const-then-mov-no-inline             3.7796+-0.4494            3.6019+-0.0498          might be 1.0493x faster
   infer-closure-const-then-mov                      18.5399+-0.6388     ?     18.7988+-0.3354        ? might be 1.0140x slower
   infer-closure-const-then-put-to-scope-no-inline   
                                                     10.9412+-0.2696           10.8765+-0.1652        
   infer-closure-const-then-put-to-scope             22.7907+-0.5841     ?     22.9384+-0.8369        ?
   infer-closure-const-then-reenter-no-inline   
                                                     47.8880+-0.9840           47.2520+-0.4351          might be 1.0135x faster
   infer-closure-const-then-reenter                  22.3441+-0.6191     ?     23.3538+-0.8277        ? might be 1.0452x slower
   infer-constant-global-property                     3.4239+-0.0497     ?      3.4297+-0.1257        ?
   infer-constant-property                            2.6896+-0.0864            2.6111+-0.0506          might be 1.0301x faster
   infer-one-time-closure-ten-vars                    7.5901+-0.2013     ?      8.1423+-0.9355        ? might be 1.0727x slower
   infer-one-time-closure-two-vars                    7.7892+-0.3596            7.5588+-0.5016          might be 1.0305x faster
   infer-one-time-closure                             7.1158+-0.1898     ?      7.4339+-0.5166        ? might be 1.0447x slower
   infer-one-time-deep-closure                       10.9377+-0.4944           10.7204+-0.1725          might be 1.0203x faster
   inline-arguments-access                            3.6756+-0.1553            3.6301+-0.1673          might be 1.0125x faster
   inline-arguments-aliased-access                    3.9035+-0.4813            3.5972+-0.0369          might be 1.0851x faster
   inline-arguments-local-escape                      3.6534+-0.1453            3.6060+-0.0684          might be 1.0131x faster
   inline-get-scoped-var                              4.6353+-0.1303            4.5004+-0.1307          might be 1.0300x faster
   inlined-put-by-id-transition                       9.2979+-0.5721     ?     10.0223+-1.0356        ? might be 1.0779x slower
   inlined-put-by-val-with-string-transition   
                                                     41.2693+-2.1566     ?     42.2134+-1.8689        ? might be 1.0229x slower
   inlined-put-by-val-with-symbol-transition   
                                                     40.2548+-1.1712     ?     41.3813+-1.4755        ? might be 1.0280x slower
   int-or-other-abs-then-get-by-val                   4.6438+-0.3067            4.5584+-0.0783          might be 1.0187x faster
   int-or-other-abs-zero-then-get-by-val             15.5743+-0.6352     ?     15.6609+-0.3205        ?
   int-or-other-add-then-get-by-val                   4.4672+-0.1222     ?      5.0939+-1.5796        ? might be 1.1403x slower
   int-or-other-add                                   4.9588+-0.1100     ?      5.2767+-0.4575        ? might be 1.0641x slower
   int-or-other-div-then-get-by-val                   3.8289+-0.2881            3.8022+-0.2816        
   int-or-other-max-then-get-by-val                   3.9365+-0.2702            3.8474+-0.0357          might be 1.0232x faster
   int-or-other-min-then-get-by-val                   3.8030+-0.0879            3.7821+-0.0836        
   int-or-other-mod-then-get-by-val                   3.5482+-0.1436     ?      3.6307+-0.2504        ? might be 1.0232x slower
   int-or-other-mul-then-get-by-val                   3.8188+-0.3676            3.6464+-0.1021          might be 1.0473x faster
   int-or-other-neg-then-get-by-val                   3.9945+-0.0901     ?      4.1198+-0.3185        ? might be 1.0314x slower
   int-or-other-neg-zero-then-get-by-val             15.4579+-0.4141     ?     15.7516+-0.7362        ? might be 1.0190x slower
   int-or-other-sub-then-get-by-val                   4.3775+-0.0876     ?      4.5886+-0.1891        ? might be 1.0482x slower
   int-or-other-sub                                   3.4889+-0.0906            3.4444+-0.0448          might be 1.0129x faster
   int-overflow-local                                 4.2614+-0.1839            4.1519+-0.2274          might be 1.0264x faster
   Int16Array-alloc-long-lived                       43.8141+-1.4257     ?     43.8569+-1.2919        ?
   Int16Array-bubble-sort-with-byteLength            17.1889+-0.3309     ?     17.2403+-0.4675        ?
   Int16Array-bubble-sort                            16.7081+-0.2172     ?     16.8335+-0.4574        ?
   Int16Array-load-int-mul                            1.4931+-0.1506            1.4114+-0.0136          might be 1.0579x faster
   Int16Array-to-Int32Array-set                      45.9850+-1.1930           45.8866+-1.1997        
   Int32Array-alloc-large                            12.1692+-0.5529     ?     12.4616+-0.8663        ? might be 1.0240x slower
   Int32Array-alloc-long-lived                       49.0063+-1.2952     ?     49.4840+-1.7278        ?
   Int32Array-alloc                                   2.9678+-0.2804     ?      2.9870+-0.4686        ?
   Int32Array-Int8Array-view-alloc                    5.9827+-0.3594            5.9626+-0.2458        
   int52-spill                                        4.5758+-0.0871     ?      4.6237+-0.0997        ? might be 1.0105x slower
   Int8Array-alloc-long-lived                        37.7609+-0.2623     ?     38.8579+-1.2336        ? might be 1.0291x slower
   Int8Array-load-with-byteLength                     3.3830+-0.0760            3.3475+-0.0540          might be 1.0106x faster
   Int8Array-load                                     3.3668+-0.1227     ?      3.3764+-0.0748        ?
   integer-divide                                    10.3815+-0.2454     ?     11.3670+-2.3804        ? might be 1.0949x slower
   integer-modulo                                     1.6408+-0.0960            1.5871+-0.0348          might be 1.0339x faster
   is-boolean-fold-tricky                             3.8658+-0.2734            3.8090+-0.0846          might be 1.0149x faster
   is-boolean-fold                                    2.6318+-0.0213     ?      2.6543+-0.0465        ?
   is-function-fold-tricky-internal-function   
                                                      9.5481+-0.2374            9.5447+-0.3419        
   is-function-fold-tricky                            4.0640+-0.1500            3.9981+-0.0799          might be 1.0165x faster
   is-function-fold                                   2.6741+-0.0527     ?      2.7660+-0.2504        ? might be 1.0344x slower
   is-number-fold-tricky                              3.9171+-0.0614     ?      3.9256+-0.0391        ?
   is-number-fold                                     2.8784+-0.5972            2.6320+-0.0308          might be 1.0936x faster
   is-object-or-null-fold-functions                   2.7113+-0.0750            2.6575+-0.0543          might be 1.0203x faster
   is-object-or-null-fold-less-tricky                 4.0513+-0.1801            4.0342+-0.1076        
   is-object-or-null-fold-tricky                      4.7501+-0.0583     ?      4.7778+-0.0911        ?
   is-object-or-null-fold                             2.7799+-0.2772            2.6813+-0.0612          might be 1.0368x faster
   is-object-or-null-trickier-function                4.0717+-0.0858     ?      4.1185+-0.3022        ? might be 1.0115x slower
   is-object-or-null-trickier-internal-function   
                                                      9.9621+-0.5030            9.8137+-0.3359          might be 1.0151x faster
   is-object-or-null-tricky-function                  4.1026+-0.2161            3.9879+-0.1267          might be 1.0288x faster
   is-object-or-null-tricky-internal-function   
                                                      7.1701+-0.0811     ?      7.6987+-0.4707        ? might be 1.0737x slower
   is-string-fold-tricky                              4.0723+-0.3297            3.9798+-0.1489          might be 1.0232x faster
   is-string-fold                                     2.6322+-0.0315     ?      2.6572+-0.0565        ?
   is-undefined-fold-tricky                           3.3955+-0.1445            3.3851+-0.0947        
   is-undefined-fold                                  2.6505+-0.0428     ?      2.8040+-0.2736        ? might be 1.0579x slower
   JSONP-negative-0                                   0.2678+-0.0398            0.2607+-0.0138          might be 1.0272x faster
   large-int-captured                                 4.1768+-0.1927            4.0220+-0.1810          might be 1.0385x faster
   large-int-neg                                     14.5194+-1.2938           14.2759+-0.6627          might be 1.0171x faster
   large-int                                         13.8088+-1.0719           13.1303+-0.4990          might be 1.0517x faster
   load-varargs-elimination                          20.9616+-0.5663           20.6418+-0.4803          might be 1.0155x faster
   logical-not-weird-types                            3.0578+-0.1080            3.0481+-0.0609        
   logical-not                                        4.2985+-0.1638     ?      4.6095+-0.6739        ? might be 1.0724x slower
   lots-of-fields                                     9.1415+-0.2091     ?      9.1884+-0.4442        ?
   make-indexed-storage                               2.7283+-0.1331     ?      2.8195+-0.0683        ? might be 1.0334x slower
   make-rope-cse                                      3.5227+-0.1973     ?      3.7160+-0.3304        ? might be 1.0549x slower
   marsaglia-larger-ints                             32.3109+-1.1917           31.5695+-0.7142          might be 1.0235x faster
   marsaglia-osr-entry                               20.7078+-0.3991     ?     21.4988+-0.6438        ? might be 1.0382x slower
   math-with-out-of-bounds-array-values              21.9723+-0.7358           21.7485+-0.4295          might be 1.0103x faster
   max-boolean                                        2.6213+-0.0564     ?      2.6527+-0.1337        ? might be 1.0120x slower
   method-on-number                                  15.9931+-0.7281     ?     16.0709+-0.9720        ?
   min-boolean                                        2.6947+-0.0892            2.6743+-0.1333        
   minus-boolean-double                               3.0902+-0.0865     ?      3.0913+-0.0473        ?
   minus-boolean                                      2.4490+-0.3378     ?      2.6927+-0.5359        ? might be 1.0995x slower
   misc-strict-eq                                    29.4919+-1.6472           27.5473+-1.0021          might be 1.0706x faster
   mod-boolean-double                                11.0425+-0.2130     ?     11.6713+-1.0455        ? might be 1.0569x slower
   mod-boolean                                        8.3937+-0.2324     ?      8.5101+-0.2919        ? might be 1.0139x slower
   mul-boolean-double                                 3.6086+-0.0484            3.5617+-0.0261          might be 1.0132x faster
   mul-boolean                                        2.8310+-0.0944            2.8028+-0.0450          might be 1.0101x faster
   neg-boolean                                        3.1545+-0.0855            3.1071+-0.0733          might be 1.0152x faster
   negative-zero-divide                               0.3381+-0.0107            0.3368+-0.0104        
   negative-zero-modulo                               0.3639+-0.0782            0.3462+-0.0331          might be 1.0513x faster
   negative-zero-negate                               0.3128+-0.0039     ?      0.3278+-0.0223        ? might be 1.0479x slower
   nested-function-parsing                           45.5465+-0.4826           44.8974+-0.6905          might be 1.0145x faster
   new-array-buffer-dead                             86.9659+-1.1388           86.6876+-0.3518        
   new-array-buffer-push                              6.2129+-0.3809     ?      6.2589+-0.3787        ?
   new-array-dead                                    14.8040+-1.0338     ?     14.8234+-0.7120        ?
   new-array-push                                     3.7273+-0.3701            3.4309+-0.1232          might be 1.0864x faster
   no-inline-constructor                             31.9901+-0.9367           31.2837+-0.1592          might be 1.0226x faster
   number-test                                        3.0144+-0.2005     ?      3.0234+-0.1259        ?
   object-closure-call                                4.8876+-0.0590            4.8870+-0.0613        
   object-get-own-property-symbols-on-large-array   
                                                      4.4062+-0.2596            4.1789+-0.2098          might be 1.0544x faster
   object-test                                        2.7039+-0.1228     ?      2.7044+-0.0493        ?
   obvious-sink-pathology-taken                      97.4305+-0.9883     ?     98.2339+-2.2987        ?
   obvious-sink-pathology                            92.8232+-1.3267     ?     93.2603+-1.3021        ?
   obviously-elidable-new-object                     28.7015+-1.0372     ?     28.9019+-1.2761        ?
   plus-boolean-arith                                 2.3921+-0.0311     ?      2.5054+-0.1772        ? might be 1.0474x slower
   plus-boolean-double                                3.0783+-0.0465            3.0720+-0.0709        
   plus-boolean                                       2.5181+-0.0488     ?      2.5403+-0.0687        ?
   poly-chain-access-different-prototypes-simple   
                                                      2.5603+-0.0278     ?      2.5984+-0.0601        ? might be 1.0149x slower
   poly-chain-access-different-prototypes             2.5580+-0.1044            2.5570+-0.0389        
   poly-chain-access-simpler                          2.6207+-0.1238            2.5917+-0.0683          might be 1.0112x faster
   poly-chain-access                                  2.4769+-0.0319     ?      2.5791+-0.2031        ? might be 1.0412x slower
   poly-stricteq                                     50.6874+-2.1934           49.6951+-0.8531          might be 1.0200x faster
   polymorphic-array-call                             1.2337+-0.0629     ?      1.2899+-0.0788        ? might be 1.0455x slower
   polymorphic-get-by-id                              2.8758+-0.0591     ?      2.8790+-0.0972        ?
   polymorphic-put-by-id                             27.8457+-0.5875           27.5791+-0.6303        
   polymorphic-put-by-val-with-string                28.3696+-0.5774           28.2196+-0.9342        
   polymorphic-put-by-val-with-symbol                29.0697+-0.5714           28.4322+-0.4388          might be 1.0224x faster
   polymorphic-structure                             12.3194+-0.1339     ?     12.4884+-0.3464        ? might be 1.0137x slower
   polyvariant-monomorphic-get-by-id                  7.1764+-1.1882            6.7252+-0.9740          might be 1.0671x faster
   proto-getter-access                                8.1773+-0.1191     ?      8.3934+-0.2390        ? might be 1.0264x slower
   prototype-access-with-mutating-prototype           5.4255+-0.2109     ?      5.4372+-0.3497        ?
   put-by-id-replace-and-transition                   8.0002+-0.5249            7.5253+-0.4549          might be 1.0631x faster
   put-by-id-slightly-polymorphic                     2.8959+-0.3575            2.6865+-0.0818          might be 1.0779x faster
   put-by-id                                          9.5254+-0.2214     ?      9.5377+-0.1908        ?
   put-by-val-direct                                  0.3328+-0.0193            0.3226+-0.0047          might be 1.0317x faster
   put-by-val-large-index-blank-indexing-type   
                                                      5.2793+-0.3530            5.1296+-0.1147          might be 1.0292x faster
   put-by-val-machine-int                             2.6632+-0.4417            2.6159+-0.2148          might be 1.0181x faster
   put-by-val-with-string-replace-and-transition   
                                                     10.4525+-0.3679     ?     10.6191+-0.4178        ? might be 1.0159x slower
   put-by-val-with-string-slightly-polymorphic   
                                                      3.0111+-0.1494     ?      3.1211+-0.5051        ? might be 1.0366x slower
   put-by-val-with-string                            10.1982+-0.3825     ?     10.6648+-0.5985        ? might be 1.0457x slower
   put-by-val-with-symbol-replace-and-transition   
                                                     12.0199+-0.5215           11.7477+-0.3975          might be 1.0232x faster
   put-by-val-with-symbol-slightly-polymorphic   
                                                      3.1604+-0.0777     ?      3.1633+-0.0865        ?
   put-by-val-with-symbol                            10.5323+-0.5265     ?     10.7946+-0.4495        ? might be 1.0249x slower
   rare-osr-exit-on-local                            13.6617+-0.2280     ?     13.7268+-0.4210        ?
   raytrace-with-empty-try-catch                      5.0985+-0.0994     ?      5.2093+-0.1710        ? might be 1.0217x slower
   raytrace-with-try-catch                            9.6328+-0.1442            9.6106+-0.1637        
   register-pressure-from-osr                        16.4250+-0.3622     ?     16.4803+-0.3716        ?
   repeat-multi-get-by-offset                        21.8477+-0.4931     ?     22.7879+-2.0422        ? might be 1.0430x slower
   richards-empty-try-catch                          71.5722+-0.9252     ?     72.8304+-3.1438        ? might be 1.0176x slower
   richards-try-catch                               238.2482+-1.8945          237.6901+-2.0358        
   setter-prototype                                   8.0237+-0.3795            7.8814+-0.4599          might be 1.0181x faster
   setter                                             5.8508+-0.7477     ?      5.8966+-0.4574        ?
   simple-activation-demo                            24.1180+-0.6721     ?     24.1483+-0.4968        ?
   simple-getter-access                              10.6321+-0.2560     ?     10.8481+-0.6791        ? might be 1.0203x slower
   simple-poly-call-nested                            9.1648+-0.4807            8.3192+-0.5027          might be 1.1016x faster
   simple-poly-call                                   1.2558+-0.0436     ?      1.3064+-0.1101        ? might be 1.0403x slower
   sin-boolean                                       21.8510+-1.2290           19.4860+-1.5410          might be 1.1214x faster
   singleton-scope                                   63.1463+-1.2925     ?     63.4858+-1.2434        ?
   sink-function                                     10.3331+-0.3895            9.6432+-0.5581          might be 1.0715x faster
   sink-huge-activation                              16.2672+-0.8883     ?     17.0527+-0.7555        ? might be 1.0483x slower
   sinkable-new-object-dag                           54.2900+-0.9194           54.2697+-1.5660        
   sinkable-new-object-taken                         44.0422+-1.0524           43.6328+-0.6430        
   sinkable-new-object                               29.9926+-0.7174     ?     30.0629+-0.9498        ?
   slow-array-profile-convergence                     2.4494+-0.0910     ?      2.4817+-0.1393        ? might be 1.0132x slower
   slow-convergence                                   2.5323+-0.3108            2.3694+-0.0852          might be 1.0687x faster
   slow-ternaries                                    18.1029+-1.7075           17.5285+-0.3183          might be 1.0328x faster
   sorting-benchmark                                 17.2215+-0.3980           17.2148+-0.7121        
   sparse-conditional                                 1.1864+-0.0642            1.1845+-0.0466        
   splice-to-remove                                  12.5010+-0.4918           11.9480+-0.1970          might be 1.0463x faster
   string-char-code-at                               13.3288+-0.4932     ?     13.7623+-0.5516        ? might be 1.0325x slower
   string-concat-object                               2.1530+-0.1256     ?      2.1639+-0.0818        ?
   string-concat-pair-object                          2.2023+-0.2693            2.0513+-0.1007          might be 1.0736x faster
   string-concat-pair-simple                          9.2120+-0.5380     ?      9.3265+-0.4969        ? might be 1.0124x slower
   string-concat-simple                               9.5662+-0.5679     ?      9.8290+-0.6170        ? might be 1.0275x slower
   string-cons-repeat                                 6.6431+-0.4883            6.4923+-0.2791          might be 1.0232x faster
   string-cons-tower                                  6.7316+-0.3735            6.5711+-0.2183          might be 1.0244x faster
   string-equality                                   15.7389+-0.2148     ?     15.8733+-0.4089        ?
   string-get-by-val-big-char                         6.5395+-0.1479     ?      6.5619+-0.1926        ?
   string-get-by-val-out-of-bounds-insane             3.0382+-0.0277     ?      3.0459+-0.1207        ?
   string-get-by-val-out-of-bounds                    3.9200+-0.0759     ?      4.0260+-0.2001        ? might be 1.0270x slower
   string-get-by-val                                  2.8488+-0.0853            2.7785+-0.0459          might be 1.0253x faster
   string-hash                                        1.8368+-0.0383     ?      1.8711+-0.0659        ? might be 1.0186x slower
   string-long-ident-equality                        13.7356+-0.3544           13.5198+-0.2986          might be 1.0160x faster
   string-out-of-bounds                              10.1485+-0.1732            9.9999+-0.1810          might be 1.0149x faster
   string-repeat-arith                               26.7601+-0.7269     ?     27.0446+-0.4306        ? might be 1.0106x slower
   string-sub                                        60.8021+-7.5282           55.0588+-0.9649          might be 1.1043x faster
   string-test                                        2.8010+-0.0385     ?      2.8562+-0.0644        ? might be 1.0197x slower
   string-var-equality                               25.2363+-0.6917     ?     25.7207+-1.2623        ? might be 1.0192x slower
   structure-hoist-over-transitions                   2.3328+-0.1124            2.2958+-0.0550          might be 1.0161x faster
   substring-concat-weird                            34.7970+-0.5247     ?     35.2821+-0.7549        ? might be 1.0139x slower
   substring-concat                                  39.5015+-0.7747     ?     40.2252+-1.1434        ? might be 1.0183x slower
   substring                                         49.0113+-9.4788           45.2478+-1.3174          might be 1.0832x faster
   switch-char-constant                               2.6569+-0.0562     ?      2.7046+-0.0710        ? might be 1.0180x slower
   switch-char                                        6.2601+-0.9501            6.1186+-0.9554          might be 1.0231x faster
   switch-constant                                    9.0735+-1.0276            7.9149+-0.3648          might be 1.1464x faster
   switch-string-basic-big-var                       14.2414+-0.2206     ?     15.0670+-0.6469        ? might be 1.0580x slower
   switch-string-basic-big                           14.9587+-1.2114           14.7031+-0.4485          might be 1.0174x faster
   switch-string-basic-var                           13.4290+-0.5760           13.4067+-0.5227        
   switch-string-basic                               12.5551+-0.3372     ?     12.5905+-0.2203        ?
   switch-string-big-length-tower-var                17.8179+-0.3351     ?     18.0537+-0.4012        ? might be 1.0132x slower
   switch-string-length-tower-var                    13.0442+-0.1750     ?     13.7420+-1.1709        ? might be 1.0535x slower
   switch-string-length-tower                        11.3119+-0.2255     ?     11.4255+-0.3507        ? might be 1.0100x slower
   switch-string-short                               11.3591+-0.2421     ?     11.5319+-0.4978        ? might be 1.0152x slower
   switch                                            12.1691+-1.4249           11.3474+-0.9609          might be 1.0724x faster
   tear-off-arguments-simple                          3.0494+-0.0517     ?      3.1143+-0.1102        ? might be 1.0213x slower
   tear-off-arguments                                 4.1174+-0.3269            4.0968+-0.2193        
   temporal-structure                                11.7799+-0.3641           11.7523+-0.1950        
   to-int32-boolean                                  12.5886+-0.4039           12.5795+-0.3249        
   try-catch-get-by-val-cloned-arguments              9.1808+-0.5248            9.0206+-0.4190          might be 1.0178x faster
   try-catch-get-by-val-direct-arguments              2.1002+-0.0664     ?      2.1165+-0.1470        ?
   try-catch-get-by-val-scoped-arguments              4.4694+-0.0754     ?      4.5939+-0.1801        ? might be 1.0279x slower
   typed-array-get-set-by-val-profiling              27.1143+-1.2077           26.8211+-0.6569          might be 1.0109x faster
   undefined-property-access                        219.1600+-3.6171          216.9167+-2.2933          might be 1.0103x faster
   undefined-test                                     3.1498+-0.4042     ?      3.2221+-0.3006        ? might be 1.0230x slower
   unprofiled-licm                                    9.5288+-0.2012     ?      9.7292+-0.3438        ? might be 1.0210x slower
   v8-raytrace-with-empty-try-catch                  24.2753+-0.9114     ?     27.4155+-8.8112        ? might be 1.1294x slower
   v8-raytrace-with-try-catch                        62.3123+-2.0755           61.0000+-0.7037          might be 1.0215x faster
   varargs-call                                      13.0174+-0.1626     ?     13.1604+-0.3092        ? might be 1.0110x slower
   varargs-construct-inline                          22.3249+-1.0368           21.7342+-0.4461          might be 1.0272x faster
   varargs-construct                                 20.4787+-0.7095     ?     20.7019+-0.7119        ? might be 1.0109x slower
   varargs-inline                                     8.7478+-0.1938     ?      8.7605+-0.3303        ?
   varargs-strict-mode                                9.9732+-0.2075            9.9077+-0.1920        
   varargs                                            9.8160+-0.1644     ?     10.2821+-0.4717        ? might be 1.0475x slower
   weird-inlining-const-prop                          2.1974+-0.2668     ?      2.2375+-0.2452        ? might be 1.0182x slower

   <geometric>                                        8.0654+-0.0313            8.0613+-0.0327          might be 1.0005x faster

                                                        TipOfTree                OutOfLineIC                                    
AsmBench:
   bigfib.cpp                                       451.7598+-6.9505          451.3131+-8.5726        
   cray.c                                           390.8823+-3.3292     ?    391.5491+-1.8067        ?
   dry.c                                            423.0571+-6.7221          423.0504+-5.7421        
   FloatMM.c                                        680.9876+-1.1799     ?    681.6968+-1.9776        ?
   gcc-loops.cpp                                   3406.3696+-9.7001     ?   3412.8567+-14.0655       ?
   n-body.c                                         824.8066+-3.8835          820.8546+-1.4135        
   Quicksort.c                                      408.4926+-7.5230     ?    409.7949+-8.5057        ?
   stepanov_container.cpp                          3455.4551+-14.1477    ?   3499.6595+-34.0878       ? might be 1.0128x slower
   Towers.c                                         233.0722+-1.5175          232.8066+-1.0512        

   <geometric>                                      711.9641+-2.4762     ?    713.0334+-2.1143        ? might be 1.0015x slower

                                                        TipOfTree                OutOfLineIC                                    
CompressionBench:
   huffman                                           59.9360+-1.1476     ?     61.2512+-1.6001        ? might be 1.0219x slower
   arithmetic-simple                                272.9944+-2.7748     ?    273.3264+-2.0452        ?
   arithmetic-precise                               244.1660+-2.0966          243.6313+-4.0343        
   arithmetic-complex-precise                       244.0056+-2.0388     ?    246.8897+-5.0167        ? might be 1.0118x slower
   arithmetic-precise-order-0                       279.9303+-1.2330     ?    301.7889+-48.8848       ? might be 1.0781x slower
   arithmetic-precise-order-1                       299.7424+-2.0648     ?    301.6951+-1.4877        ?
   arithmetic-precise-order-2                       350.3101+-11.4956         343.5806+-1.4174          might be 1.0196x faster
   arithmetic-simple-order-1                        319.3453+-0.7868     ?    320.5640+-2.3169        ?
   arithmetic-simple-order-2                        391.3553+-49.0791         372.3525+-6.7457          might be 1.0510x faster
   lz-string                                        303.9788+-1.9266     ?    304.7601+-3.7965        ?

   <geometric>                                      253.1483+-2.6501     ?    254.3653+-4.2549        ? might be 1.0048x slower

                                                        TipOfTree                OutOfLineIC                                    
Geomean of preferred means:
   <scaled-result>                                   49.8639+-0.1120           49.8354+-0.1573          might be 1.0006x faster
Comment 4 Filip Pizlo 2015-10-06 23:29:42 PDT
Created attachment 262584 [details]
the patch
Comment 5 Saam Barati 2015-10-07 10:24:05 PDT
Comment on attachment 262584 [details]
the patch

LGTM
Comment 6 Filip Pizlo 2015-10-07 10:29:40 PDT
Landed in http://trac.webkit.org/changeset/190672