Bug 148666

Summary: Add support for Callee-Saves registers
Product: WebKit Reporter: Michael Saboff <msaboff>
Component: JavaScriptCoreAssignee: Michael Saboff <msaboff>
Status: RESOLVED FIXED    
Severity: Normal CC: basile_clement, commit-queue
Priority: P2    
Version: Other   
Hardware: All   
OS: All   
See Also: https://bugs.webkit.org/show_bug.cgi?id=171266
Bug Depends on: 149044, 149061, 151486, 151855    
Bug Blocks: 148661    
Attachments:
Description Flags
Patch
none
Patch with suggested fixes and fix for win32 build fpizlo: review+

Description Michael Saboff 2015-08-31 18:05:38 PDT
Save and restore platform callee save registers.  We only do this for 64 bit builds as it isn't needed nor expected to be profitable for 32 bit builds.
Comment 1 Basile Clement 2015-08-31 18:07:55 PDT
*** Bug 146845 has been marked as a duplicate of this bug. ***
Comment 2 Basile Clement 2015-08-31 18:08:17 PDT
*** Bug 147639 has been marked as a duplicate of this bug. ***
Comment 3 Basile Clement 2015-08-31 18:08:21 PDT
*** Bug 146854 has been marked as a duplicate of this bug. ***
Comment 4 Basile Clement 2015-08-31 18:08:52 PDT
*** Bug 148076 has been marked as a duplicate of this bug. ***
Comment 5 Basile Clement 2015-08-31 18:09:56 PDT
*** Bug 148167 has been marked as a duplicate of this bug. ***
Comment 6 Basile Clement 2015-08-31 18:10:10 PDT
*** Bug 148246 has been marked as a duplicate of this bug. ***
Comment 7 Basile Clement 2015-08-31 18:10:42 PDT
*** Bug 147747 has been marked as a duplicate of this bug. ***
Comment 8 Basile Clement 2015-08-31 18:10:46 PDT
*** Bug 148345 has been marked as a duplicate of this bug. ***
Comment 9 Basile Clement 2015-08-31 18:11:03 PDT
*** Bug 148099 has been marked as a duplicate of this bug. ***
Comment 10 Basile Clement 2015-08-31 18:11:45 PDT
*** Bug 148494 has been marked as a duplicate of this bug. ***
Comment 11 Basile Clement 2015-08-31 18:12:48 PDT
*** Bug 148547 has been marked as a duplicate of this bug. ***
Comment 12 Basile Clement 2015-08-31 18:13:03 PDT
*** Bug 148652 has been marked as a duplicate of this bug. ***
Comment 13 Michael Saboff 2015-09-09 12:27:38 PDT
Created attachment 260867 [details]
Patch
Comment 14 Michael Saboff 2015-09-09 12:29:22 PDT
Performance results look neutral overall.

Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on msaboff-pro (MacPro5,1).

VMs tested:
"Baseline" at /Volumes/Data/src/webkit.baseline/WebKitBuild/Release/JavaScriptCore.framework/Versions/A/Resources/jsc
"CalleeSaves" at /Volumes/Data/src/webkit/WebKitBuild/Release/JavaScriptCore.framework/Versions/A/Resources/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.

                                                         Baseline                CalleeSaves                                    
SunSpider:
   3d-cube                                            7.9928+-0.4418     ?      8.0573+-0.3016        ?
   3d-morph                                           7.8198+-0.2064     ?      8.0786+-0.1460        ? might be 1.0331x slower
   3d-raytrace                                        8.6527+-0.3001     ?      8.9567+-0.3644        ? might be 1.0351x slower
   access-binary-trees                                3.0626+-0.1847     ?      3.1015+-0.2635        ? might be 1.0127x slower
   access-fannkuch                                    8.5485+-0.2050            8.5142+-0.1279        
   access-nbody                                       4.2827+-0.0651     ?      4.3107+-0.1841        ?
   access-nsieve                                      4.5638+-0.0972     ?      4.6740+-0.0964        ? might be 1.0241x slower
   bitops-3bit-bits-in-byte                           1.6876+-0.1365            1.6575+-0.0725          might be 1.0181x faster
   bitops-bits-in-byte                                5.6458+-0.1243            5.6010+-0.1283        
   bitops-bitwise-and                                 2.9431+-0.1517            2.7435+-0.1104          might be 1.0728x faster
   bitops-nsieve-bits                                 4.5085+-0.1361            4.3542+-0.1537          might be 1.0355x faster
   controlflow-recursive                              3.0344+-0.1344     ?      3.3735+-0.2282        ? might be 1.1118x slower
   crypto-aes                                         6.0410+-0.0531     !      6.4158+-0.2965        ! definitely 1.0620x slower
   crypto-md5                                         3.8271+-0.2802     ?      4.0269+-0.0675        ? might be 1.0522x slower
   crypto-sha1                                        3.1725+-0.1627     !      3.4653+-0.0666        ! definitely 1.0923x slower
   date-format-tofte                                 12.5102+-0.3102     ?     12.8682+-0.1895        ? might be 1.0286x slower
   date-format-xparb                                  7.4270+-0.3769     ?      7.8649+-0.4083        ? might be 1.0590x slower
   math-cordic                                        4.1630+-0.0970     !      4.4160+-0.0998        ! definitely 1.0608x slower
   math-partial-sums                                  9.9321+-0.2271     ?      9.9799+-0.2850        ?
   math-spectral-norm                                 2.8958+-0.1702     ?      3.0941+-0.2078        ? might be 1.0685x slower
   regexp-dna                                        10.4353+-0.2928            9.9435+-0.5145          might be 1.0495x faster
   string-base64                                      6.4023+-0.2319     ?      6.7002+-0.1694        ? might be 1.0465x slower
   string-fasta                                       9.2318+-0.2312     ?      9.2417+-0.1361        ?
   string-tagcloud                                   13.4342+-0.0910           13.4091+-0.4617        
   string-unpack-code                                28.4358+-0.8923           28.2206+-0.7995        
   string-validate-input                              6.7042+-0.1720     ?      6.8822+-0.2946        ? might be 1.0266x slower

   <arithmetic>                                       7.2059+-0.0608     ?      7.3058+-0.0908        ? might be 1.0139x slower

                                                         Baseline                CalleeSaves                                    
LongSpider:
   3d-cube                                         1229.5276+-4.5635     ^   1214.8652+-4.2533        ^ definitely 1.0121x faster
   3d-morph                                        1958.8052+-0.4651         1955.5404+-6.7737        
   3d-raytrace                                     1069.6393+-22.1067    ?   1072.5795+-6.7612        ?
   access-binary-trees                             1458.8109+-7.8321         1456.6381+-4.0488        
   access-fannkuch                                  475.9203+-22.1500         465.2122+-8.4168          might be 1.0230x faster
   access-nbody                                    1063.2477+-0.4884     !   1066.5579+-0.3716        ! definitely 1.0031x slower
   access-nsieve                                    692.5743+-5.8187     ?    702.3073+-10.7159       ? might be 1.0141x slower
   bitops-3bit-bits-in-byte                          46.0367+-0.3634     ?     46.2672+-0.3989        ?
   bitops-bits-in-byte                              338.2800+-1.5229     !    353.9699+-0.9432        ! definitely 1.0464x slower
   bitops-nsieve-bits                               651.5029+-1.4822          649.5268+-4.0606        
   controlflow-recursive                            778.1221+-1.1681     ^    761.5012+-1.6372        ^ definitely 1.0218x faster
   crypto-aes                                       967.4644+-4.5063     ^    916.2629+-6.4824        ^ definitely 1.0559x faster
   crypto-md5                                       755.6978+-10.5913    !    822.7208+-7.2924        ! definitely 1.0887x slower
   crypto-sha1                                     1100.9877+-5.9601     ?   1106.9943+-9.4179        ?
   date-format-tofte                               1012.4187+-25.6304    ?   1022.3882+-44.6001       ?
   date-format-xparb                               1127.9755+-19.5947        1116.1700+-10.5657         might be 1.0106x faster
   hash-map                                         243.5212+-5.9469          242.9580+-1.7979        
   math-cordic                                      667.8378+-2.1462     !    673.4316+-1.1607        ! definitely 1.0084x slower
   math-partial-sums                               1187.1393+-2.2919         1183.5071+-4.3602        
   math-spectral-norm                              1107.2436+-1.6854     !   1112.6567+-2.0757        ! definitely 1.0049x slower
   string-base64                                    571.9952+-2.2776     ^    560.1119+-4.1459        ^ definitely 1.0212x faster
   string-fasta                                     611.4389+-10.9670    ?    621.0126+-6.5266        ? might be 1.0157x slower
   string-tagcloud                                  305.0017+-3.0116          303.4891+-3.8870        

   <geometric>                                      693.0835+-2.6120     ?    694.3070+-2.3016        ? might be 1.0018x slower

                                                         Baseline                CalleeSaves                                    
V8Spider:
   crypto                                            72.1155+-0.6185     ?     73.1060+-0.5313        ? might be 1.0137x slower
   deltablue                                         89.5450+-4.5465     ?     92.2560+-1.8653        ? might be 1.0303x slower
   earley-boyer                                      64.7399+-0.6215     ?     65.4130+-0.7159        ? might be 1.0104x slower
   raytrace                                          38.5266+-0.8855     !     40.3173+-0.6300        ! definitely 1.0465x slower
   regexp                                           107.5262+-1.9210     ?    108.1299+-0.3159        ?
   richards                                          87.1683+-0.6084           85.0622+-1.5047          might be 1.0248x faster
   splay                                             58.4373+-5.4030     ?     59.6768+-3.5955        ? might be 1.0212x slower

   <geometric>                                       70.6774+-1.4831     ?     71.7166+-0.7746        ? might be 1.0147x slower

                                                         Baseline                CalleeSaves                                    
Octane:
   encrypt                                           0.32057+-0.00181    !     0.32331+-0.00055       ! definitely 1.0085x slower
   decrypt                                           5.76899+-0.00655    !     5.98170+-0.02201       ! definitely 1.0369x slower
   deltablue                                x2       0.27321+-0.00335          0.26939+-0.01367         might be 1.0142x faster
   earley                                            0.52280+-0.00371    ?     0.53235+-0.01193       ? might be 1.0183x slower
   boyer                                             8.93618+-0.12509    ?     9.00151+-0.03944       ?
   navier-stokes                            x2       6.65805+-0.00402          6.65748+-0.00945       
   raytrace                                 x2       1.86555+-0.08120          1.76718+-0.07563         might be 1.0557x faster
   richards                                 x2       0.17912+-0.00078    ?     0.17956+-0.00169       ?
   splay                                    x2       0.58201+-0.02368          0.57364+-0.00153         might be 1.0146x faster
   regexp                                   x2      40.71020+-2.18233         40.22243+-0.47877         might be 1.0121x faster
   pdfjs                                    x2      62.12309+-0.09826    !    62.61260+-0.04944       ! definitely 1.0079x slower
   mandreel                                 x2      74.44370+-0.50687    ^    72.03175+-0.59141       ^ definitely 1.0335x faster
   gbemu                                    x2      65.41352+-8.28463         65.30056+-4.68395       
   closure                                           0.95444+-0.00702    ?     0.96803+-0.00662       ? might be 1.0142x slower
   jquery                                           12.34563+-0.09954    !    12.50699+-0.05801       ! definitely 1.0131x slower
   box2d                                    x2      18.16747+-0.21236    ?    18.48016+-0.24023       ? might be 1.0172x slower
   zlib                                     x2     595.81270+-1.17158    ?   595.82015+-5.84225       ?
   typescript                               x2    1122.74829+-43.75787   ?  1144.47345+-30.79251      ? might be 1.0193x slower

   <geometric>                                       9.58870+-0.14266          9.56771+-0.03056         might be 1.0022x faster

                                                         Baseline                CalleeSaves                                    
Kraken:
   ai-astar                                          344.650+-2.273      ?     345.034+-2.323         ?
   audio-beat-detection                               83.158+-0.550      ?      84.296+-0.933         ? might be 1.0137x slower
   audio-dft                                         134.926+-2.578      ?     135.372+-0.938         ?
   audio-fft                                          60.561+-0.182      !      62.335+-0.239         ! definitely 1.0293x slower
   audio-oscillator                                  106.950+-1.188            106.733+-0.325         
   imaging-darkroom                                  101.962+-3.985            100.198+-0.083           might be 1.0176x faster
   imaging-desaturate                                 92.843+-0.567      ?      93.488+-1.128         ?
   imaging-gaussian-blur                             149.884+-2.237      ?     150.696+-0.519         ?
   json-parse-financial                               72.237+-0.915      ?      73.339+-0.390         ? might be 1.0153x slower
   json-stringify-tinderbox                           42.226+-0.149      ?      42.571+-0.411         ?
   stanford-crypto-aes                                68.734+-0.605             67.520+-1.111           might be 1.0180x faster
   stanford-crypto-ccm                                60.556+-0.795      ?      62.197+-2.645         ? might be 1.0271x slower
   stanford-crypto-pbkdf2                            150.639+-5.810            149.016+-0.581           might be 1.0109x faster
   stanford-crypto-sha256-iterative                   59.062+-0.396      ?      59.803+-0.523         ? might be 1.0125x slower

   <arithmetic>                                      109.170+-0.744      ?     109.471+-0.268         ? might be 1.0028x slower

                                                         Baseline                CalleeSaves                                    
JSRegress:
   abc-forward-loop-equal                            57.4637+-0.1535     ?     57.4824+-0.3048        ?
   abc-postfix-backward-loop                         57.0211+-0.1585           56.8592+-0.3777        
   abc-simple-backward-loop                          56.4916+-0.3372           56.4890+-0.3533        
   abc-simple-forward-loop                           56.8463+-0.3065           56.6793+-0.3358        
   abc-skippy-loop                                   39.0104+-0.2135     ?     39.1538+-0.3967        ?
   abs-boolean                                        3.8511+-0.0910     ?      3.8779+-0.1921        ?
   adapt-to-double-divide                            17.4612+-0.8959           17.4203+-0.9335        
   aliased-arguments-getbyval                         1.6136+-0.3038     ?      1.6536+-0.2916        ? might be 1.0247x slower
   allocate-big-object                                3.8900+-0.2990     ?      3.9271+-0.2164        ?
   arguments-named-and-reflective                    14.6088+-0.4831     ?     14.6970+-0.1325        ?
   arguments-out-of-bounds                           14.3838+-0.5382     ?     14.8004+-0.3796        ? might be 1.0290x slower
   arguments-strict-mode                             12.8257+-0.6247           12.6533+-0.9900          might be 1.0136x faster
   arguments                                         11.6955+-0.2463           11.3489+-0.2943          might be 1.0305x faster
   arity-mismatch-inlining                            1.2043+-0.1028     ?      1.3431+-0.1305        ? might be 1.1153x slower
   array-access-polymorphic-structure                 9.4614+-0.2135     ?      9.6665+-0.1912        ? might be 1.0217x slower
   array-nonarray-polymorhpic-access                 43.1016+-1.3879           42.0618+-1.6629          might be 1.0247x faster
   array-prototype-every                            131.8005+-1.8360     ^    124.6719+-1.2164        ^ definitely 1.0572x faster
   array-prototype-forEach                          129.6708+-2.0563          124.1695+-4.3603          might be 1.0443x faster
   array-prototype-map                              143.2799+-1.2371     ^    139.6074+-1.1489        ^ definitely 1.0263x faster
   array-prototype-reduce                           120.7306+-1.1592          119.0132+-1.9228          might be 1.0144x faster
   array-prototype-reduceRight                      120.9698+-0.9027     ^    117.1212+-0.9645        ^ definitely 1.0329x faster
   array-prototype-some                             139.8691+-18.1322         125.2195+-2.2101          might be 1.1170x faster
   array-splice-contiguous                           33.5990+-0.6575     ?     34.3202+-0.5973        ? might be 1.0215x slower
   array-with-double-add                              5.6039+-0.1317            5.5160+-0.1921          might be 1.0159x faster
   array-with-double-increment                        4.2315+-0.1578            4.1865+-0.1160          might be 1.0107x faster
   array-with-double-mul-add                          7.2401+-0.2039     ?      7.2661+-0.1716        ?
   array-with-double-sum                              4.3999+-0.1135     ?      4.4050+-0.1727        ?
   array-with-int32-add-sub                           9.9252+-0.4224            9.5164+-0.1942          might be 1.0430x faster
   array-with-int32-or-double-sum                     4.5858+-0.0914            4.4927+-0.1830          might be 1.0207x faster
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     48.4656+-0.6353           48.3635+-1.2376        
   ArrayBuffer-DataView-alloc-long-lived             18.9482+-2.1025           18.9379+-0.6554        
   ArrayBuffer-Int32Array-byteOffset                  5.7285+-0.1574            5.6353+-0.2835          might be 1.0165x faster
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     49.7737+-2.4798           48.9855+-0.2753          might be 1.0161x faster
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     30.2004+-0.8061     ?     30.3832+-0.4264        ?
   ArrayBuffer-Int8Array-alloc-long-lived            17.4227+-0.2891     ?     17.5327+-0.2787        ?
   ArrayBuffer-Int8Array-alloc                       15.7516+-3.6616           14.5201+-0.2835          might be 1.0848x faster
   arrowfunction-call                                14.4292+-0.1504     !     15.3791+-0.1894        ! definitely 1.0658x slower
   asmjs_bool_bug                                     9.5934+-0.1091     !      9.9169+-0.1385        ! definitely 1.0337x slower
   assign-custom-setter-polymorphic                   4.1573+-0.0583            4.1500+-0.1118        
   assign-custom-setter                               5.6197+-0.1882     ?      5.6782+-0.1799        ? might be 1.0104x slower
   basic-set                                         11.3558+-0.7437     ?     11.3623+-0.3560        ?
   big-int-mul                                        5.8637+-0.0585            5.8287+-0.1480        
   boolean-test                                       4.4430+-0.1707     ?      4.6170+-0.3020        ? might be 1.0392x slower
   branch-fold                                        4.6981+-0.1084     ?      4.8550+-0.0807        ? might be 1.0334x slower
   branch-on-string-as-boolean                       22.9683+-0.6107     ?     23.2860+-1.1213        ? might be 1.0138x slower
   by-val-generic                                     3.7207+-0.2876     ?      3.8499+-0.2322        ? might be 1.0347x slower
   call-spread-apply                                 39.5907+-3.7338           38.7917+-0.6637          might be 1.0206x faster
   call-spread-call                                  31.6939+-0.6873           31.5374+-0.4019        
   captured-assignments                               0.7217+-0.1201     ?      0.7405+-0.1477        ? might be 1.0260x slower
   cast-int-to-double                                 8.5120+-0.1173     ?      8.6293+-0.0719        ? might be 1.0138x slower
   cell-argument                                      8.1620+-0.1957     ?      8.5125+-0.1951        ? might be 1.0429x slower
   cfg-simplify                                       3.6982+-0.1284     ?      3.8566+-0.1310        ? might be 1.0428x slower
   chain-getter-access                               10.4148+-0.3420     ?     10.4205+-0.3246        ?
   cmpeq-obj-to-obj-other                            14.2186+-0.7248     ?     15.0137+-0.9113        ? might be 1.0559x slower
   constant-test                                      8.2130+-0.0900            8.2058+-0.0900        
   create-lots-of-functions                          16.4976+-0.5080     ?     16.7747+-0.5280        ? might be 1.0168x slower
   cse-new-array-buffer                               3.2420+-0.1045     ?      3.3469+-0.1637        ? might be 1.0324x slower
   cse-new-array                                      3.3073+-0.3591     ?      3.5261+-0.1066        ? might be 1.0662x slower
   DataView-custom-properties                        55.4885+-0.7051     ?     55.5548+-0.8008        ?
   delay-tear-off-arguments-strictmode               19.1107+-0.3742     ?     19.2010+-0.5850        ?
   deltablue-varargs                                271.5906+-2.7678     !    283.4049+-5.3153        ! definitely 1.0435x slower
   destructuring-arguments                          250.2731+-2.6080     ?    256.1074+-17.4655       ? might be 1.0233x slower
   destructuring-parameters-overridden-by-function   
                                                      0.7210+-0.0897     ?      0.7313+-0.1439        ? might be 1.0143x slower
   destructuring-swap                                 7.7993+-0.1432     ?      7.8676+-0.1209        ?
   direct-arguments-getbyval                          1.7081+-0.1999     ?      1.7970+-0.3495        ? might be 1.0520x slower
   div-boolean-double                                 5.5656+-0.1442            5.5406+-0.0820        
   div-boolean                                       10.0630+-0.0362     ?     10.1185+-0.0867        ?
   double-get-by-val-out-of-bounds                    6.0363+-0.1436     ?      6.2393+-0.3184        ? might be 1.0336x slower
   double-pollution-getbyval                          9.9256+-0.1049     ?      9.9445+-0.0734        ?
   double-pollution-putbyoffset                       5.8484+-0.2747            5.6714+-0.2870          might be 1.0312x faster
   double-real-use                                   40.8811+-0.1017           40.8345+-0.2169        
   double-to-int32-typed-array-no-inline              2.8983+-0.1429     ?      3.1149+-0.1102        ? might be 1.0747x slower
   double-to-int32-typed-array                        2.7859+-0.1478     !      3.0312+-0.0880        ! definitely 1.0881x slower
   double-to-uint32-typed-array-no-inline             2.8902+-0.1357     ?      3.1694+-0.1659        ? might be 1.0966x slower
   double-to-uint32-typed-array                       2.7601+-0.0767     ?      2.9251+-0.1796        ? might be 1.0598x slower
   elidable-new-object-dag                           56.5925+-0.7505           55.9567+-0.9370          might be 1.0114x faster
   elidable-new-object-roflcopter                    55.3993+-0.4653           55.2256+-1.1887        
   elidable-new-object-then-call                     50.5293+-1.4065     ?     50.6087+-0.4833        ?
   elidable-new-object-tree                          66.0302+-1.2662           65.6547+-1.6497        
   empty-string-plus-int                              7.6779+-0.2948     ?      7.6995+-0.1271        ?
   emscripten-cube2hash                              46.2324+-0.4627     ?     46.7122+-0.3559        ? might be 1.0104x slower
   exit-length-on-plain-object                       19.2318+-0.9856     ?     19.5887+-0.5774        ? might be 1.0186x slower
   external-arguments-getbyval                        1.5742+-0.0550     ?      1.8683+-0.3749        ? might be 1.1868x slower
   external-arguments-putbyval                        3.2278+-0.2269     ?      3.3053+-0.1864        ? might be 1.0240x slower
   fixed-typed-array-storage-var-index                1.6376+-0.1282     ?      1.7123+-0.0758        ? might be 1.0456x slower
   fixed-typed-array-storage                          1.2587+-0.1419     ?      1.3677+-0.1125        ? might be 1.0867x slower
   Float32Array-matrix-mult                           6.0018+-0.2626     ?      6.1035+-0.2487        ? might be 1.0169x slower
   Float32Array-to-Float64Array-set                  81.3908+-1.3784     ?     81.5637+-0.9782        ?
   Float64Array-alloc-long-lived                    105.6177+-0.3884          102.7424+-3.7488          might be 1.0280x faster
   Float64Array-to-Int16Array-set                    95.7855+-1.2433     !    102.4429+-1.1428        ! definitely 1.0695x slower
   fold-double-to-int                                19.3105+-0.3111     ?     19.6115+-0.6105        ? might be 1.0156x slower
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     11.9613+-0.3138           11.9172+-0.5720        
   fold-get-by-id-to-multi-get-by-offset              9.8408+-0.2025            9.8124+-0.3589        
   fold-multi-get-by-offset-to-get-by-offset   
                                                      8.9713+-0.6212     ?      9.8940+-0.8659        ? might be 1.1028x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      8.8856+-0.0590     !      9.2404+-0.0661        ! definitely 1.0399x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      9.2551+-0.1393     ?      9.3527+-0.6546        ? might be 1.0105x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                      8.7441+-0.6125            8.3320+-0.5114          might be 1.0495x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     14.6318+-0.3571     ?     14.6726+-1.0454        ?
   fold-put-by-id-to-multi-put-by-offset             10.1969+-0.8448     ?     10.3048+-0.4124        ? might be 1.0106x slower
   fold-put-by-val-with-string-to-multi-put-by-offset   
                                                     10.7410+-0.9617     ?     10.7936+-0.7428        ?
   fold-put-by-val-with-symbol-to-multi-put-by-offset   
                                                     10.6995+-0.9572     ?     11.0486+-0.6894        ? might be 1.0326x slower
   fold-put-structure                                 8.0551+-0.5198            7.8500+-0.1415          might be 1.0261x faster
   for-of-iterate-array-entries                      16.7467+-0.4121     ?     16.9798+-0.3959        ? might be 1.0139x slower
   for-of-iterate-array-keys                          5.1378+-0.1157     ?      5.3023+-0.3667        ? might be 1.0320x slower
   for-of-iterate-array-values                        5.0558+-0.1167     ?      5.3209+-0.2651        ? might be 1.0524x slower
   fround                                            19.8099+-0.6871           19.0956+-0.4008          might be 1.0374x faster
   ftl-library-inlining-dataview                    102.6085+-6.3498           97.7753+-1.7214          might be 1.0494x faster
   ftl-library-inlining                             115.5441+-9.3333     ?    117.2675+-11.0986       ? might be 1.0149x slower
   function-call                                     14.4835+-0.2895     !     15.4243+-0.1648        ! definitely 1.0650x slower
   function-dot-apply                                 2.9910+-0.1213     ?      3.2222+-0.1309        ? might be 1.0773x slower
   function-test                                      4.3750+-0.1026     ?      4.5165+-0.2005        ? might be 1.0323x slower
   function-with-eval                               162.6516+-3.3443     ^    152.2882+-0.8766        ^ definitely 1.0681x faster
   gcse-poly-get-less-obvious                        25.6691+-0.1924           25.4257+-0.3659        
   gcse-poly-get                                     25.5782+-0.1257     ?     25.5798+-0.2315        ?
   gcse                                               6.6815+-0.1137     ^      6.3845+-0.1405        ^ definitely 1.0465x faster
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.4348+-0.1736            3.2612+-0.1268          might be 1.0532x faster
   get-by-id-bimorphic-check-structure-elimination   
                                                      8.5407+-0.0198     ^      8.4349+-0.0716        ^ definitely 1.0125x faster
   get-by-id-chain-from-try-block                     6.8230+-0.1437     ?      6.8412+-0.1416        ?
   get-by-id-check-structure-elimination              7.8732+-0.0706     ?      8.1191+-0.2068        ? might be 1.0312x slower
   get-by-id-proto-or-self                           21.2505+-2.6854     ?     21.6962+-2.8278        ? might be 1.0210x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      4.0224+-0.0724            3.8651+-0.0986          might be 1.0407x faster
   get-by-id-self-or-proto                           20.2454+-0.0647     ?     20.5469+-1.2043        ? might be 1.0149x slower
   get-by-val-out-of-bounds                           5.7097+-0.0431     !      6.0152+-0.0931        ! definitely 1.0535x slower
   get-by-val-with-string-bimorphic-check-structure-elimination-simple   
                                                      3.9435+-0.1096     !      4.2890+-0.1375        ! definitely 1.0876x slower
   get-by-val-with-string-bimorphic-check-structure-elimination   
                                                     10.2433+-0.1130     ?     10.2726+-0.0936        ?
   get-by-val-with-string-chain-from-try-block   
                                                      8.0193+-0.1578            7.9427+-0.1430        
   get-by-val-with-string-check-structure-elimination   
                                                      9.2685+-0.0900            9.2280+-0.1137        
   get-by-val-with-string-proto-or-self              20.5448+-0.4667           20.5339+-0.5956        
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple   
                                                      4.7150+-0.1187     ?      4.8143+-0.0954        ? might be 1.0211x slower
   get-by-val-with-string-self-or-proto              21.3663+-2.9338           20.5157+-0.4628          might be 1.0415x faster
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple   
                                                      5.2325+-0.1164     ^      4.7810+-0.0939        ^ definitely 1.0944x faster
   get-by-val-with-symbol-bimorphic-check-structure-elimination   
                                                     19.9676+-0.0890           19.8419+-0.1909        
   get-by-val-with-symbol-chain-from-try-block   
                                                      8.1800+-0.0900            7.9712+-0.3803          might be 1.0262x faster
   get-by-val-with-symbol-check-structure-elimination   
                                                     18.7361+-0.2072           18.7320+-0.1964        
   get-by-val-with-symbol-proto-or-self              20.4343+-0.4354     ?     20.5740+-0.5204        ?
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple   
                                                      5.8936+-0.1011            5.7819+-0.1352          might be 1.0193x faster
   get-by-val-with-symbol-self-or-proto              21.5933+-4.1419     ?     21.6102+-2.6039        ?
   get_callee_monomorphic                             3.5992+-0.2105     ?      3.8408+-0.2613        ? might be 1.0671x slower
   get_callee_polymorphic                             4.7248+-0.1203     ?      4.8846+-0.1026        ? might be 1.0338x slower
   getter-no-activation                               5.9008+-0.0548     ?      5.9603+-0.1036        ? might be 1.0101x slower
   getter-prototype                                  14.3041+-0.2040     ?     14.3926+-0.1590        ?
   getter-richards                                  134.7499+-11.6333         132.7054+-5.2519          might be 1.0154x faster
   getter                                             7.5412+-0.0462     ?      7.5735+-0.1087        ?
   global-object-access-with-mutating-structure   
                                                      7.8518+-0.3283     !      8.6069+-0.4020        ! definitely 1.0962x slower
   global-var-const-infer-fire-from-opt               1.1312+-0.1610     ?      1.2531+-0.1472        ? might be 1.1077x slower
   global-var-const-infer                             1.0692+-0.3143     ?      1.2686+-0.2811        ? might be 1.1864x slower
   hard-overflow-check-equal                         63.1798+-0.1275           62.8108+-0.5283        
   hard-overflow-check                               62.2134+-0.5140     ?     62.2148+-0.3334        ?
   HashMap-put-get-iterate-keys                      33.9208+-0.2968     ?     34.4658+-0.5530        ? might be 1.0161x slower
   HashMap-put-get-iterate                           33.5223+-0.2477     ?     33.9028+-0.3534        ? might be 1.0114x slower
   HashMap-string-put-get-iterate                    37.1035+-0.5784     ?     37.9288+-0.6525        ? might be 1.0222x slower
   hoist-make-rope                                   12.1094+-1.5804     ?     13.0396+-1.8299        ? might be 1.0768x slower
   hoist-poly-check-structure-effectful-loop   
                                                      6.9391+-0.1021            6.7838+-0.0632          might be 1.0229x faster
   hoist-poly-check-structure                         4.9158+-0.1595     ?      4.9972+-0.0907        ? might be 1.0166x slower
   imul-double-only                                   9.0599+-1.6840     ?      9.2332+-0.5450        ? might be 1.0191x slower
   imul-int-only                                     10.6528+-0.1494           10.6392+-0.2105        
   imul-mixed                                         8.0228+-0.2160     ?      8.1086+-0.2113        ? might be 1.0107x slower
   in-four-cases                                     26.8654+-0.0916           26.3740+-0.5325          might be 1.0186x faster
   in-one-case-false                                 14.6883+-0.1511     !     15.0634+-0.0812        ! definitely 1.0255x slower
   in-one-case-true                                  14.6577+-0.0993     !     15.1116+-0.0343        ! definitely 1.0310x slower
   in-two-cases                                      15.0054+-0.0999     !     15.8110+-0.0714        ! definitely 1.0537x slower
   indexed-properties-in-objects                      3.8033+-0.0892     ?      3.8242+-0.1132        ?
   infer-closure-const-then-mov-no-inline             4.5505+-0.1352     !      4.9445+-0.1074        ! definitely 1.0866x slower
   infer-closure-const-then-mov                      22.0650+-0.3204     ?     22.2925+-1.0257        ? might be 1.0103x slower
   infer-closure-const-then-put-to-scope-no-inline   
                                                     16.5456+-0.1151     ^     16.0999+-0.2817        ^ definitely 1.0277x faster
   infer-closure-const-then-put-to-scope             32.2249+-0.8107     ^     28.9426+-0.1814        ^ definitely 1.1134x faster
   infer-closure-const-then-reenter-no-inline   
                                                     73.5766+-0.1130     ?     73.7523+-0.1903        ?
   infer-closure-const-then-reenter                  29.2811+-0.2670     !     33.6271+-0.5488        ! definitely 1.1484x slower
   infer-constant-global-property                     4.8559+-0.1981     ?      4.8755+-0.1590        ?
   infer-constant-property                            3.3730+-0.1281     ?      3.4031+-0.1743        ?
   infer-one-time-closure-ten-vars                   11.4488+-0.5075     ?     11.4883+-0.3861        ?
   infer-one-time-closure-two-vars                   10.5666+-0.5031     ?     10.8598+-0.5470        ? might be 1.0277x slower
   infer-one-time-closure                            10.7338+-0.4007     ?     10.8314+-0.3708        ?
   infer-one-time-deep-closure                       18.3307+-0.4676     ?     18.3795+-0.7555        ?
   inline-arguments-access                            6.0157+-0.2040     ?      6.1884+-0.1502        ? might be 1.0287x slower
   inline-arguments-aliased-access                    5.9899+-0.1854     ?      6.0927+-0.2045        ? might be 1.0172x slower
   inline-arguments-local-escape                      6.1934+-0.1644            6.1177+-0.2515          might be 1.0124x faster
   inline-get-scoped-var                              5.7775+-0.1014            5.7613+-0.1625        
   inlined-put-by-id-transition                      16.9377+-0.9904     ?     17.5311+-0.4235        ? might be 1.0350x slower
   inlined-put-by-val-with-string-transition   
                                                    115.9766+-4.6604     ?    118.2582+-0.7623        ? might be 1.0197x slower
   inlined-put-by-val-with-symbol-transition   
                                                    116.1178+-9.2058          111.8193+-3.4399          might be 1.0384x faster
   int-or-other-abs-then-get-by-val                   6.6205+-0.1375            6.6116+-0.0961        
   int-or-other-abs-zero-then-get-by-val             27.9443+-0.3387     !     28.6569+-0.0720        ! definitely 1.0255x slower
   int-or-other-add-then-get-by-val                   6.4609+-0.2168     ^      6.0954+-0.1024        ^ definitely 1.0600x faster
   int-or-other-add                                   8.0981+-0.0873     ?      8.3215+-0.1585        ? might be 1.0276x slower
   int-or-other-div-then-get-by-val                   5.1602+-0.1357            5.1204+-0.1832        
   int-or-other-max-then-get-by-val                   5.2025+-0.1517            5.1430+-0.1186          might be 1.0116x faster
   int-or-other-min-then-get-by-val                   4.9172+-0.1269     ?      5.1097+-0.1221        ? might be 1.0391x slower
   int-or-other-mod-then-get-by-val                   4.8389+-0.1115     ?      4.9512+-0.1267        ? might be 1.0232x slower
   int-or-other-mul-then-get-by-val                   4.8830+-0.0997     !      5.1963+-0.1902        ! definitely 1.0642x slower
   int-or-other-neg-then-get-by-val                   5.8771+-0.1878            5.7354+-0.1138          might be 1.0247x faster
   int-or-other-neg-zero-then-get-by-val             28.4772+-0.5556     ?     28.8906+-0.2789        ? might be 1.0145x slower
   int-or-other-sub-then-get-by-val                   6.3408+-0.1286            6.1497+-0.2341          might be 1.0311x faster
   int-or-other-sub                                   5.2796+-0.1462     ?      5.3297+-0.1275        ?
   int-overflow-local                                 6.0464+-0.1756     ?      6.1123+-0.1043        ? might be 1.0109x slower
   Int16Array-alloc-long-lived                       73.1450+-0.6687     ^     70.6293+-1.7710        ^ definitely 1.0356x faster
   Int16Array-bubble-sort-with-byteLength            36.2930+-0.2179           36.2793+-0.1688        
   Int16Array-bubble-sort                            36.3560+-0.1658     ?     36.3572+-0.1189        ?
   Int16Array-load-int-mul                            2.0249+-0.0839     ?      2.0892+-0.1268        ? might be 1.0317x slower
   Int16Array-to-Int32Array-set                      75.2527+-1.0461     ?     76.0354+-2.3263        ? might be 1.0104x slower
   Int32Array-alloc-large                            34.0490+-0.6453           34.0247+-0.4496        
   Int32Array-alloc-long-lived                       83.9536+-0.9694     ^     80.3480+-0.6572        ^ definitely 1.0449x faster
   Int32Array-alloc                                   4.6527+-0.0933            4.5983+-0.1536          might be 1.0118x faster
   Int32Array-Int8Array-view-alloc                    9.4547+-0.1914            9.2758+-0.1606          might be 1.0193x faster
   int52-spill                                        7.1092+-0.2788     ?      7.4572+-0.3038        ? might be 1.0490x slower
   Int8Array-alloc-long-lived                        62.4456+-1.0135           61.8785+-0.4414        
   Int8Array-load-with-byteLength                     4.8836+-0.1476     ?      4.8891+-0.1560        ?
   Int8Array-load                                     4.7660+-0.0898     ?      4.8127+-0.1423        ?
   integer-divide                                    14.4896+-0.2894           14.4017+-0.1396        
   integer-modulo                                     2.5833+-0.1265     ?      2.8496+-0.1693        ? might be 1.1031x slower
   is-boolean-fold-tricky                             5.6358+-0.1100     ?      5.6436+-0.0808        ?
   is-boolean-fold                                    4.0234+-0.1344     ?      4.0401+-0.1631        ?
   is-function-fold-tricky-internal-function   
                                                     14.9022+-0.1281     ?     15.0947+-0.1039        ? might be 1.0129x slower
   is-function-fold-tricky                            5.7598+-0.2073     ?      5.8295+-0.1177        ? might be 1.0121x slower
   is-function-fold                                   4.0471+-0.1252            4.0319+-0.1155        
   is-number-fold-tricky                              5.5890+-0.1767     ?      5.6860+-0.1026        ? might be 1.0174x slower
   is-number-fold                                     4.0576+-0.1135            4.0408+-0.2196        
   is-object-or-null-fold-functions                   4.1698+-0.1452            4.1517+-0.1200        
   is-object-or-null-fold-less-tricky                 5.7382+-0.0864     ?      5.8142+-0.2127        ? might be 1.0132x slower
   is-object-or-null-fold-tricky                      7.9645+-0.0806     ^      7.5443+-0.0219        ^ definitely 1.0557x faster
   is-object-or-null-fold                             4.0462+-0.1518     ?      4.0738+-0.1225        ?
   is-object-or-null-trickier-function                5.8414+-0.1284     ?      5.9112+-0.1415        ? might be 1.0119x slower
   is-object-or-null-trickier-internal-function   
                                                     15.9977+-0.1393           15.9005+-0.1369        
   is-object-or-null-tricky-function                  5.8483+-0.0732     ?      5.8807+-0.1432        ?
   is-object-or-null-tricky-internal-function   
                                                     11.6266+-0.1952     ?     11.6637+-0.1279        ?
   is-string-fold-tricky                              5.7305+-0.1891            5.6989+-0.2431        
   is-string-fold                                     4.0202+-0.0796     ?      4.0502+-0.1546        ?
   is-undefined-fold-tricky                           4.6782+-0.0384     ?      4.7892+-0.1314        ? might be 1.0237x slower
   is-undefined-fold                                  3.9955+-0.0925     ?      4.0780+-0.1226        ? might be 1.0206x slower
   JSONP-negative-0                                   0.4296+-0.0835     ?      0.4580+-0.0976        ? might be 1.0662x slower
   large-int-captured                                 6.7280+-0.1849     ?      6.8324+-0.4333        ? might be 1.0155x slower
   large-int-neg                                     20.5817+-0.5005           20.3121+-0.1341          might be 1.0133x faster
   large-int                                         18.1785+-0.1337           17.9862+-0.3516          might be 1.0107x faster
   load-varargs-elimination                          30.3342+-1.5321     ?     31.1136+-1.6447        ? might be 1.0257x slower
   logical-not-weird-types                            4.8497+-0.1385     !      5.3120+-0.2154        ! definitely 1.0953x slower
   logical-not                                        6.3973+-0.0877            6.3329+-0.0860          might be 1.0102x faster
   lots-of-fields                                    16.5394+-0.3302           16.3987+-0.1260        
   make-indexed-storage                               4.3118+-0.3296     ?      4.3774+-0.2267        ? might be 1.0152x slower
   make-rope-cse                                      6.5509+-0.0895     ?      6.7700+-0.1543        ? might be 1.0334x slower
   marsaglia-larger-ints                             55.3673+-0.3913           55.3395+-0.2292        
   marsaglia-osr-entry                               27.2646+-0.8140     ?     27.3532+-0.3308        ?
   math-with-out-of-bounds-array-values              34.4394+-0.3097     ^     33.3499+-0.4460        ^ definitely 1.0327x faster
   max-boolean                                        3.4333+-0.0515            3.4300+-0.1135        
   method-on-number                                  24.7396+-1.8520           23.6125+-0.4997          might be 1.0477x faster
   min-boolean                                        3.3873+-0.1673            3.3449+-0.1917          might be 1.0127x faster
   minus-boolean-double                               4.3489+-0.2352            4.2557+-0.0988          might be 1.0219x faster
   minus-boolean                                      3.3536+-0.1464     ?      3.3582+-0.1640        ?
   misc-strict-eq                                    47.7599+-0.6006           47.7305+-0.5065        
   mod-boolean-double                                12.1165+-0.1183           12.0612+-0.1305        
   mod-boolean                                        9.2465+-0.0688            9.2065+-0.1301        
   mul-boolean-double                                 4.9010+-0.1478     ?      4.9648+-0.0899        ? might be 1.0130x slower
   mul-boolean                                        3.5518+-0.1723     ?      3.5878+-0.1431        ? might be 1.0101x slower
   neg-boolean                                        4.3962+-0.1260            4.3745+-0.1854        
   negative-zero-divide                               0.6478+-0.1229            0.5942+-0.1275          might be 1.0901x faster
   negative-zero-modulo                               0.5836+-0.0845            0.5787+-0.1289        
   negative-zero-negate                               0.5790+-0.1422     ?      0.6148+-0.1273        ? might be 1.0619x slower
   nested-function-parsing                           75.7827+-2.0952     ?     77.3315+-1.0766        ? might be 1.0204x slower
   new-array-buffer-dead                            152.5742+-1.4982     ?    153.7525+-0.9765        ?
   new-array-buffer-push                              9.8525+-0.1195     !     10.2212+-0.0460        ! definitely 1.0374x slower
   new-array-dead                                    18.9433+-0.1127     ?     19.3508+-1.5242        ? might be 1.0215x slower
   new-array-push                                     5.4170+-0.2796     ?      5.5687+-0.1923        ? might be 1.0280x slower
   no-inline-constructor                             53.5675+-0.3636     ^     52.2318+-0.5637        ^ definitely 1.0256x faster
   number-test                                        4.3919+-0.1116     ?      4.4415+-0.0880        ? might be 1.0113x slower
   object-closure-call                                8.1253+-0.2568            8.0228+-0.0383          might be 1.0128x faster
   object-get-own-property-symbols-on-large-array   
                                                      5.5113+-0.5720            5.4760+-0.6202        
   object-test                                        4.1956+-0.1358     ?      4.2693+-0.1002        ? might be 1.0176x slower
   obvious-sink-pathology-taken                     182.4713+-0.8855          181.1935+-2.9969        
   obvious-sink-pathology                           167.8666+-4.3850          166.0779+-2.4580          might be 1.0108x faster
   obviously-elidable-new-object                     44.2720+-0.7644           44.2031+-1.8942        
   plus-boolean-arith                                 3.4180+-0.0574            3.3808+-0.1496          might be 1.0110x faster
   plus-boolean-double                                4.2617+-0.1186     ?      4.3085+-0.1207        ? might be 1.0110x slower
   plus-boolean                                       3.2759+-0.1022     ?      3.2868+-0.1734        ?
   poly-chain-access-different-prototypes-simple   
                                                      4.8352+-0.0633     !      5.1346+-0.2249        ! definitely 1.0619x slower
   poly-chain-access-different-prototypes             5.3225+-0.0671     ^      5.1052+-0.0862        ^ definitely 1.0426x faster
   poly-chain-access-simpler                          4.9485+-0.0256     !      5.1453+-0.1577        ! definitely 1.0398x slower
   poly-chain-access                                  5.2739+-0.1800            4.9586+-0.1838          might be 1.0636x faster
   poly-stricteq                                     78.6915+-0.1928     !     82.1193+-0.2212        ! definitely 1.0436x slower
   polymorphic-array-call                             1.8667+-0.2376            1.8623+-0.2726        
   polymorphic-get-by-id                              4.1716+-0.1100            3.9703+-0.1156          might be 1.0507x faster
   polymorphic-put-by-id                             38.7449+-2.8137           38.4503+-4.0655        
   polymorphic-put-by-val-with-string                37.2924+-1.0188     ?     40.3384+-3.7451        ? might be 1.0817x slower
   polymorphic-put-by-val-with-symbol                39.3906+-4.3728     ?     40.4742+-3.8606        ? might be 1.0275x slower
   polymorphic-structure                             25.8304+-0.1406     ^     24.2927+-0.0713        ^ definitely 1.0633x faster
   polyvariant-monomorphic-get-by-id                 11.4945+-0.6282     ?     11.7067+-0.3635        ? might be 1.0185x slower
   proto-getter-access                               10.1514+-0.1512     ?     10.3228+-0.2461        ? might be 1.0169x slower
   prototype-access-with-mutating-prototype           7.6656+-0.6158     ?      8.1954+-0.3658        ? might be 1.0691x slower
   put-by-id-replace-and-transition                  12.5414+-0.3397     ?     12.9879+-0.2502        ? might be 1.0356x slower
   put-by-id-slightly-polymorphic                     3.6099+-0.1486            3.5972+-0.0818        
   put-by-id                                         18.7042+-0.2377           18.4930+-0.2698          might be 1.0114x faster
   put-by-val-direct                                  0.5768+-0.1012     ?      0.6157+-0.1123        ? might be 1.0674x slower
   put-by-val-large-index-blank-indexing-type   
                                                      8.4625+-0.4363     ?      8.6149+-0.2175        ? might be 1.0180x slower
   put-by-val-machine-int                             3.4620+-0.2369     ?      3.6968+-0.0885        ? might be 1.0678x slower
   put-by-val-with-string-replace-and-transition   
                                                     18.9994+-0.5041     ?     19.3070+-0.4401        ? might be 1.0162x slower
   put-by-val-with-string-slightly-polymorphic   
                                                      4.4488+-0.1892     ?      4.6313+-0.1743        ? might be 1.0410x slower
   put-by-val-with-string                            19.2207+-0.3108     ?     19.6606+-0.3324        ? might be 1.0229x slower
   put-by-val-with-symbol-replace-and-transition   
                                                     20.7763+-0.5414     !     21.8465+-0.3135        ! definitely 1.0515x slower
   put-by-val-with-symbol-slightly-polymorphic   
                                                      4.8909+-0.1281            4.6638+-0.1186          might be 1.0487x faster
   put-by-val-with-symbol                            19.5458+-0.1263     ?     20.0519+-0.5946        ? might be 1.0259x slower
   rare-osr-exit-on-local                            16.9884+-0.1463           16.8224+-0.0587        
   register-pressure-from-osr                        27.8571+-0.1132     ?     28.1307+-0.1672        ?
   repeat-multi-get-by-offset                        30.0745+-0.2501     ?     30.3157+-0.1658        ?
   setter-prototype                                  11.2128+-0.3063     ?     11.6188+-0.4451        ? might be 1.0362x slower
   setter                                             7.1215+-0.2129            6.8160+-0.1308          might be 1.0448x faster
   simple-activation-demo                            35.2613+-0.1259     ^     34.6395+-0.2107        ^ definitely 1.0180x faster
   simple-getter-access                              14.0087+-0.0789     ?     14.4598+-0.4887        ? might be 1.0322x slower
   simple-poly-call-nested                            8.5064+-0.1297     !      9.2664+-0.2655        ! definitely 1.0893x slower
   simple-poly-call                                   1.6828+-0.1348     ?      1.8630+-0.1044        ? might be 1.1071x slower
   sin-boolean                                       21.3919+-0.9346           20.5170+-0.4942          might be 1.0426x faster
   singleton-scope                                   90.3631+-0.9858     ^     87.5920+-0.2499        ^ definitely 1.0316x faster
   sink-function                                     13.5897+-0.2451     ?     13.8952+-0.1970        ? might be 1.0225x slower
   sink-huge-activation                              21.1929+-0.7882     ?     21.4627+-0.5573        ? might be 1.0127x slower
   sinkable-new-object-dag                           87.9745+-1.7556           87.6378+-1.6548        
   sinkable-new-object-taken                         69.4991+-0.5855     ?     69.6013+-0.5169        ?
   sinkable-new-object                               48.3228+-0.8083     ?     49.4448+-2.6720        ? might be 1.0232x slower
   slow-array-profile-convergence                     3.9591+-0.2655            3.8532+-0.2752          might be 1.0275x faster
   slow-convergence                                   3.6533+-0.2022     ?      3.8285+-0.1742        ? might be 1.0479x slower
   slow-ternaries                                    32.9897+-0.0626     !     34.0713+-0.3212        ! definitely 1.0328x slower
   sorting-benchmark                                 25.5718+-0.7325     ?     26.6539+-1.0240        ? might be 1.0423x slower
   sparse-conditional                                 1.6493+-0.1244     ?      1.7526+-0.1109        ? might be 1.0626x slower
   splice-to-remove                                  20.0781+-0.4161           19.8680+-0.2761          might be 1.0106x faster
   string-char-code-at                               20.6995+-0.1747     !     21.3597+-0.1136        ! definitely 1.0319x slower
   string-concat-object                               3.2504+-0.0899     ?      3.3731+-0.1358        ? might be 1.0378x slower
   string-concat-pair-object                          3.1163+-0.1525     ?      3.4258+-0.2881        ? might be 1.0993x slower
   string-concat-pair-simple                         17.2665+-0.2706     ?     17.5527+-0.1602        ? might be 1.0166x slower
   string-concat-simple                              18.0414+-0.4277           18.0045+-0.7267        
   string-cons-repeat                                11.6718+-0.1587     !     12.0123+-0.0694        ! definitely 1.0292x slower
   string-cons-tower                                 11.1043+-0.1615           10.9380+-0.0552          might be 1.0152x faster
   string-equality                                   25.3095+-0.0891     ^     23.3574+-0.1021        ^ definitely 1.0836x faster
   string-get-by-val-big-char                         9.9627+-0.3243     !     10.9963+-0.3312        ! definitely 1.1037x slower
   string-get-by-val-out-of-bounds-insane             5.1257+-0.2642            5.0955+-0.2916        
   string-get-by-val-out-of-bounds                    6.9218+-0.0982     ?      6.9869+-0.1603        ?
   string-get-by-val                                  4.8026+-0.1040     ?      4.8405+-0.1285        ?
   string-hash                                        2.8820+-0.0512     ?      2.8932+-0.3495        ?
   string-long-ident-equality                        20.6058+-0.2778     ^     19.1530+-0.2745        ^ definitely 1.0759x faster
   string-out-of-bounds                              15.0514+-0.0887     !     15.5713+-0.4121        ! definitely 1.0345x slower
   string-repeat-arith                               46.3447+-1.1603           44.9937+-1.7432          might be 1.0300x faster
   string-sub                                        89.1478+-1.8926           88.8824+-2.3440        
   string-test                                        4.3516+-0.2229     ?      4.5216+-0.1996        ? might be 1.0391x slower
   string-var-equality                               46.4541+-0.1841     !     61.1758+-1.8536        ! definitely 1.3169x slower
   structure-hoist-over-transitions                   3.3184+-0.1690     !      3.6569+-0.0667        ! definitely 1.1020x slower
   substring-concat-weird                            59.9553+-0.6730     ?     61.1544+-1.1429        ? might be 1.0200x slower
   substring-concat                                  65.3174+-0.2529     !     66.1031+-0.3448        ! definitely 1.0120x slower
   substring                                         71.8577+-0.2806     ?     72.2153+-0.6596        ?
   switch-char-constant                               3.3586+-0.1165     ?      3.3975+-0.1435        ? might be 1.0116x slower
   switch-char                                        8.0619+-0.1467            7.9807+-0.1040          might be 1.0102x faster
   switch-constant                                   14.2111+-2.0979           13.6503+-0.2539          might be 1.0411x faster
   switch-string-basic-big-var                       32.1525+-0.2322     ?     32.4703+-0.6062        ?
   switch-string-basic-big                           30.6976+-0.7711           29.0456+-1.1405          might be 1.0569x faster
   switch-string-basic-var                           29.6719+-0.8855     !     32.8151+-1.3267        ! definitely 1.1059x slower
   switch-string-basic                               19.8212+-0.6875     ?     22.0967+-1.5976        ? might be 1.1148x slower
   switch-string-big-length-tower-var                27.9340+-0.1611     !     28.6083+-0.4354        ! definitely 1.0241x slower
   switch-string-length-tower-var                    21.3177+-0.4208     ?     21.4591+-0.0749        ?
   switch-string-length-tower                        14.8754+-0.1755     ?     15.4775+-0.4466        ? might be 1.0405x slower
   switch-string-short                               14.8463+-0.0715     !     15.3393+-0.1337        ! definitely 1.0332x slower
   switch                                            17.3847+-2.4054           17.2663+-1.9261        
   tear-off-arguments-simple                          4.4540+-0.2295            4.4034+-0.2286          might be 1.0115x faster
   tear-off-arguments                                 6.4727+-0.5658     ?      6.7120+-0.3017        ? might be 1.0370x slower
   temporal-structure                                18.0623+-0.2414     ^     16.9745+-0.2993        ^ definitely 1.0641x faster
   to-int32-boolean                                  21.6496+-0.1473     ?     21.6923+-0.2134        ?
   try-catch-get-by-val-cloned-arguments             20.9556+-0.2850     ?     20.9960+-0.0663        ?
   try-catch-get-by-val-direct-arguments              9.8060+-0.1460     ?     10.1013+-0.2921        ? might be 1.0301x slower
   try-catch-get-by-val-scoped-arguments             11.6102+-0.5341           11.3101+-0.3027          might be 1.0265x faster
   typed-array-get-set-by-val-profiling              35.5653+-1.1196     ^     33.4606+-0.7347        ^ definitely 1.0629x faster
   undefined-property-access                        482.5085+-3.7222     !    491.7103+-4.4446        ! definitely 1.0191x slower
   undefined-test                                     4.6265+-0.3027     ?      4.6274+-0.1438        ?
   unprofiled-licm                                   24.3152+-0.1487     ?     24.3284+-0.0950        ?
   varargs-call                                      18.3865+-0.1909     !     18.9517+-0.3574        ! definitely 1.0307x slower
   varargs-construct-inline                          37.1505+-1.0489     ?     37.2438+-0.1649        ?
   varargs-construct                                 30.1803+-0.4591     !     30.9513+-0.2914        ! definitely 1.0255x slower
   varargs-inline                                    12.1935+-0.2009     !     12.6351+-0.2187        ! definitely 1.0362x slower
   varargs-strict-mode                               14.1397+-0.0786     !     15.0109+-0.1786        ! definitely 1.0616x slower
   varargs                                           14.0467+-0.2247     !     14.8665+-0.0940        ! definitely 1.0584x slower
   weird-inlining-const-prop                          2.8640+-0.1563     ?      3.0890+-0.1133        ? might be 1.0786x slower

   <geometric>                                       11.8475+-0.0334     !     11.9817+-0.0319        ! definitely 1.0113x slower

                                                         Baseline                CalleeSaves                                    
AsmBench:
   bigfib.cpp                                       700.0009+-6.5306     ?    706.4688+-4.3543        ?
   cray.c                                           650.5345+-9.2952          647.0410+-3.2439        
   dry.c                                            716.3133+-0.7882          691.8907+-81.1479         might be 1.0353x faster
   FloatMM.c                                        960.8315+-1.6982          959.8122+-1.1292        
   gcc-loops.cpp                                   6222.5687+-4.7303     ?   6227.8917+-22.8899       ?
   n-body.c                                        1745.5381+-1.6220         1745.1699+-1.1878        
   Quicksort.c                                      594.2045+-12.2319    ?    595.1923+-9.2675        ?
   stepanov_container.cpp                          5130.1576+-24.2332        5067.3857+-42.9528         might be 1.0124x faster
   Towers.c                                         427.0610+-3.6739     ^    419.5034+-1.3993        ^ definitely 1.0180x faster

   <geometric>                                     1179.8745+-0.8660         1171.8219+-16.0531         might be 1.0069x faster

                                                         Baseline                CalleeSaves                                    
CompressionBench:
   huffman                                           85.0293+-3.4450     ?     85.4495+-2.1356        ?
   arithmetic-simple                                452.6348+-1.5141     ^    449.1195+-1.2334        ^ definitely 1.0078x faster
   arithmetic-precise                               379.4055+-7.3183          378.2310+-3.5969        
   arithmetic-complex-precise                       375.4926+-1.2018     ?    376.4345+-2.7825        ?
   arithmetic-precise-order-0                       462.6586+-1.1742     ^    460.2200+-1.0859        ^ definitely 1.0053x faster
   arithmetic-precise-order-1                       448.5193+-4.0628     ^    433.0286+-2.6180        ^ definitely 1.0358x faster
   arithmetic-precise-order-2                       511.0580+-5.8973          502.1868+-7.1247          might be 1.0177x faster
   arithmetic-simple-order-1                        524.5217+-3.1771          519.0538+-5.7873          might be 1.0105x faster
   arithmetic-simple-order-2                        590.3109+-2.0380     ^    576.4360+-3.0474        ^ definitely 1.0241x faster
   lz-string                                        439.1639+-9.8846     ?    446.5676+-8.0396        ? might be 1.0169x slower

   <geometric>                                      388.8524+-2.4690          385.8004+-1.2727          might be 1.0079x faster

                                                         Baseline                CalleeSaves                                    
Geomean of preferred means:
   <scaled-result>                                   81.8188+-0.3020     ?     82.0980+-0.2888        ? might be 1.0034x slower
Comment 15 WebKit Commit Bot 2015-09-09 12:29:44 PDT
Attachment 260867 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/JIT.cpp:497:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 1 in 59 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 16 Michael Saboff 2015-09-09 12:33:53 PDT
(In reply to comment #15)
> Attachment 260867 [details] did not pass style-queue:
> 
> 
> ERROR: Source/JavaScriptCore/jit/JIT.cpp:497:  One space before end of line
> comments  [whitespace/comments] [5]
> Total errors found: 1 in 59 files
> 
> 
> If any of these errors are false positives, please file a bug against
> check-webkit-style.

Fixed locally.
Comment 17 Filip Pizlo 2015-09-09 12:56:02 PDT
Comment on attachment 260867 [details]
Patch

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

> Source/JavaScriptCore/ftl/FTLLink.cpp:58
>      // FIXME: Need to know the real frame register count.
>      // https://bugs.webkit.org/show_bug.cgi?id=125727
> -    state.jitCode->common.frameRegisterCount = 1000;
> +    state.jitCode->common.frameRegisterCount = state.jitCode->stackmaps.stackSizeForLocals() / sizeof(void*);

Does this change resolve the FIXME above?
Comment 18 Michael Saboff 2015-09-09 12:58:30 PDT
(In reply to comment #17)
> Comment on attachment 260867 [details]
> Patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=260867&action=review
> 
> > Source/JavaScriptCore/ftl/FTLLink.cpp:58
> >      // FIXME: Need to know the real frame register count.
> >      // https://bugs.webkit.org/show_bug.cgi?id=125727
> > -    state.jitCode->common.frameRegisterCount = 1000;
> > +    state.jitCode->common.frameRegisterCount = state.jitCode->stackmaps.stackSizeForLocals() / sizeof(void*);
> 
> Does this change resolve the FIXME above?

Yes, it does.  The change was also posted to https://bugs.webkit.org/show_bug.cgi?id=125727.  I'll remove the FIXME comment.
Comment 19 Michael Saboff 2015-09-09 15:18:21 PDT
Created attachment 260880 [details]
Patch with suggested fixes and fix for win32 build
Comment 20 Filip Pizlo 2015-09-10 10:01:04 PDT
Comment on attachment 260880 [details]
Patch with suggested fixes and fix for win32 build

I buy it!
Comment 21 Michael Saboff 2015-09-10 10:47:24 PDT
Committed r189575: <http://trac.webkit.org/changeset/189575>