Bug 128561

Summary: Change FTL stack check to use VM's stackLimit
Product: WebKit Reporter: Michael Saboff <msaboff>
Component: JavaScriptCoreAssignee: Michael Saboff <msaboff>
Status: RESOLVED FIXED    
Severity: Normal    
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 125650    
Attachments:
Description Flags
Patch none

Description Michael Saboff 2014-02-10 16:20:21 PST
We need to change the FTL stack check to use VM::stackLimit and if the limit has been exceeded, throw an exception.
Comment 1 Michael Saboff 2014-02-12 16:26:33 PST
Created attachment 224025 [details]
Patch
Comment 2 Michael Saboff 2014-02-13 15:17:50 PST
Reviewed in person by Filip Pizlo.

Verified no performance regression.

Generating benchmark report at /Volumes/Data/src/webkit/Baseline_FTL Stack Check_SunSpiderLongSpiderV8SpiderOctaneKrakenJSRegressAsmBench_msaboff-pro_20140213_1513_report.txt
And raw data at /Volumes/Data/src/webkit/Baseline_FTL Stack Check_SunSpiderLongSpiderV8SpiderOctaneKrakenJSRegressAsmBench_msaboff-pro_20140213_1513.json

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

VMs tested:
"Baseline" at /Volumes/Data/src/webkit/WebKitBuild/Release/JavaScriptCore.framework/Versions/A/Resources/jsc
"FTL Stack Check" at /Volumes/Data/src/webkit/WebKitBuild/Release2/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              FTL Stack Check                                  
SunSpider:
   3d-cube                                            7.6072+-0.2858     ?      7.6655+-0.6048        ?
   3d-morph                                           7.8131+-0.3172            7.7828+-0.1655        
   3d-raytrace                                        9.3583+-0.3248            8.9257+-0.1928          might be 1.0485x faster
   access-binary-trees                                2.5275+-0.0772            2.5028+-0.1310        
   access-fannkuch                                    7.6580+-0.0756     ?      7.6827+-0.2001        ?
   access-nbody                                       3.8527+-0.2103            3.8525+-0.1341        
   access-nsieve                                      5.0988+-0.1129     ?      5.1028+-0.2338        ?
   bitops-3bit-bits-in-byte                           1.6292+-0.0659     ?      1.6516+-0.1033        ? might be 1.0137x slower
   bitops-bits-in-byte                                5.5203+-0.1570     ?      5.5580+-0.1171        ?
   bitops-bitwise-and                                 2.5485+-0.2317            2.4804+-0.0791          might be 1.0274x faster
   bitops-nsieve-bits                                 4.8651+-0.1009     ?      4.9013+-0.1665        ?
   controlflow-recursive                              3.1418+-0.0750     ?      3.2234+-0.0612        ? might be 1.0260x slower
   crypto-aes                                         5.2031+-0.2432            5.0474+-0.1650          might be 1.0308x faster
   crypto-md5                                         3.3508+-0.1318            3.2622+-0.1831          might be 1.0271x faster
   crypto-sha1                                        3.7099+-0.1397            3.5865+-0.1894          might be 1.0344x faster
   date-format-tofte                                 11.0375+-0.9075     ?     11.1992+-0.2404        ? might be 1.0146x slower
   date-format-xparb                                  7.6802+-1.5700            7.6453+-0.3572        
   math-cordic                                        4.1538+-0.1281            4.1159+-0.0965        
   math-partial-sums                                  8.7326+-0.3451     ?      8.8760+-0.2266        ? might be 1.0164x slower
   math-spectral-norm                                 2.8241+-0.1281     ?      2.8590+-0.2332        ? might be 1.0124x slower
   regexp-dna                                        10.6432+-0.2059     ?     10.7289+-0.2322        ?
   string-base64                                      5.0310+-0.0899     ?      5.1592+-0.0802        ? might be 1.0255x slower
   string-fasta                                       9.4622+-0.1571            9.3717+-0.1992        
   string-tagcloud                                   13.4161+-0.4876     ?     13.4830+-0.6097        ?
   string-unpack-code                                29.6711+-1.0028           29.4768+-1.5893        
   string-validate-input                              7.9208+-0.5278     ?      7.9216+-0.6382        ?

   <arithmetic> *                                     7.0945+-0.0691            7.0793+-0.0418          might be 1.0021x faster
   <geometric>                                        5.7838+-0.0539            5.7709+-0.0345          might be 1.0022x faster
   <harmonic>                                         4.8265+-0.0536            4.8152+-0.0438          might be 1.0023x faster

                                                         Baseline              FTL Stack Check                                  
LongSpider:
   3d-cube                                         1380.9462+-7.1099     ?   1383.8007+-35.8662       ?
   3d-morph                                        1852.3182+-3.2602     ?   1854.7795+-5.9412        ?
   3d-raytrace                                     1204.6044+-4.6102         1204.0663+-17.8640       
   access-binary-trees                             1358.4948+-11.7214    ?   1370.0325+-6.2009        ?
   access-fannkuch                                  436.2583+-27.7671    ?    441.4460+-34.2625       ? might be 1.0119x slower
   access-nbody                                    1055.6256+-5.8151     ?   1057.0745+-8.1293        ?
   access-nsieve                                   1320.7742+-1.7792         1319.9803+-4.2655        
   bitops-3bit-bits-in-byte                          51.8845+-0.4142           51.8224+-0.4006        
   bitops-bits-in-byte                              325.1122+-4.6533          324.4499+-3.3741        
   bitops-nsieve-bits                               950.1616+-6.9290     ?    950.4847+-5.1752        ?
   controlflow-recursive                            742.2800+-2.1831     !    748.8337+-0.8255        ! definitely 1.0088x slower
   crypto-aes                                       949.8253+-2.6458     !    957.3882+-2.0048        ! definitely 1.0080x slower
   crypto-md5                                       835.3600+-11.2017         833.2651+-12.0273       
   crypto-sha1                                     1070.7042+-6.6786         1067.6967+-4.7680        
   date-format-tofte                               1098.0352+-26.5213    ?   1112.1328+-15.5138       ? might be 1.0128x slower
   date-format-xparb                               1184.0259+-23.0949        1170.4158+-82.5707         might be 1.0116x faster
   math-cordic                                      921.4667+-4.9280     ^    903.3450+-12.4647       ^ definitely 1.0201x faster
   math-partial-sums                               1031.3744+-10.7262        1030.0432+-8.5526        
   math-spectral-norm                              1072.4492+-2.9171     ?   1073.5021+-3.6457        ?
   string-base64                                    475.4171+-0.7216     ?    475.4636+-4.1312        ?
   string-fasta                                     895.6248+-15.5547    ?    903.2495+-25.8081       ?
   string-tagcloud                                  332.1689+-2.5906     !    340.7353+-2.5782        ! definitely 1.0258x slower

   <arithmetic>                                     933.8596+-2.6406     ?    935.1822+-3.0004        ? might be 1.0014x slower
   <geometric> *                                    784.6549+-2.9135     ?    786.3128+-2.0008        ? might be 1.0021x slower
   <harmonic>                                       481.0146+-1.3571     ?    481.8987+-2.3971        ? might be 1.0018x slower

                                                         Baseline              FTL Stack Check                                  
V8Spider:
   crypto                                            74.0748+-0.8921     ?     75.4862+-0.5699        ? might be 1.0191x slower
   deltablue                                         96.8490+-1.8253     ?     96.8672+-3.5283        ?
   earley-boyer                                      63.2430+-0.7608           63.1945+-0.0907        
   raytrace                                          44.1080+-0.5130     ?     44.6723+-0.6067        ? might be 1.0128x slower
   regexp                                            85.7720+-0.8997     ?     85.8304+-1.6550        ?
   richards                                         100.5714+-2.7498     ?    100.8574+-1.7464        ?
   splay                                             48.7755+-0.9673           47.8910+-0.6152          might be 1.0185x faster

   <arithmetic>                                      73.3419+-0.9027     ?     73.5427+-0.5093        ? might be 1.0027x slower
   <geometric> *                                     70.2204+-0.7904     ?     70.3818+-0.3771        ? might be 1.0023x slower
   <harmonic>                                        67.0383+-0.6858     ?     67.1559+-0.2789        ? might be 1.0018x slower

                                                         Baseline              FTL Stack Check                                  
Octane and V8v7:
   encrypt                                           0.35374+-0.00111    ?     0.35402+-0.00168       ?
   decrypt                                           6.19642+-0.01592    ?     6.20493+-0.04692       ?
   deltablue                                x2       0.44621+-0.00539    ?     0.44794+-0.01328       ?
   earley                                            0.81122+-0.00675          0.80762+-0.00774       
   boyer                                            11.34898+-0.12393         11.33193+-0.16815       
   navier-stokes                            x2       6.46346+-0.01956          6.45830+-0.01763       
   raytrace                                 x2       3.25933+-0.02060    ?     3.28595+-0.01979       ?
   regexp                                   x2      25.88197+-0.42115         25.68138+-0.53785       
   richards                                 x2       0.21845+-0.00909          0.21452+-0.00461         might be 1.0183x faster
   splay                                    x2       0.65225+-0.00471    ?     0.65440+-0.00700       ?
   pdfjs                                    x2      82.61481+-0.79876    ?    83.54708+-0.17403       ? might be 1.0113x slower
   mandreel                                 x2      92.05039+-0.30454         91.99255+-0.37848       
   gbemu                                    x2      56.55968+-0.30098    ?    56.92752+-0.40242       ?
   closure                                           0.75457+-0.00281          0.75322+-0.00144       
   jquery                                            9.85949+-0.06100          9.84236+-0.03994       
   box2d                                    x2      30.79673+-0.26054         30.75419+-0.14247       
   zlib                                     x2     618.88346+-4.29571        611.90365+-3.54263         might be 1.0114x faster
   typescript                               x2    1179.53027+-15.00598   ?  1180.81653+-10.59131      ?

V8v7:
   <arithmetic>                                      5.78461+-0.05509          5.76147+-0.07486         might be 1.0040x faster
   <geometric> *                                     1.87944+-0.00891          1.87630+-0.00272         might be 1.0017x faster
   <harmonic>                                        0.72674+-0.01302          0.72218+-0.00559         might be 1.0063x faster

Octane including V8v7:
   <arithmetic>                                    140.80128+-1.23133        140.48874+-0.70480         might be 1.0022x faster
   <geometric> *                                    10.98734+-0.04264         10.98027+-0.01080         might be 1.0006x faster
   <harmonic>                                        1.27150+-0.02132          1.26395+-0.00911         might be 1.0060x faster

                                                         Baseline              FTL Stack Check                                  
Kraken:
   ai-astar                                          437.708+-6.268      ?     442.135+-14.381        ? might be 1.0101x slower
   audio-beat-detection                              181.839+-4.183      ?     181.865+-2.482         ?
   audio-dft                                         244.437+-4.884            244.153+-3.115         
   audio-fft                                         105.479+-0.238      ?     105.633+-0.825         ?
   audio-oscillator                                  324.375+-0.536      ^     320.362+-2.324         ^ definitely 1.0125x faster
   imaging-darkroom                                  244.228+-0.631            243.511+-3.097         
   imaging-desaturate                                 92.123+-0.747      ?      92.334+-0.706         ?
   imaging-gaussian-blur                             169.321+-1.345      ?     174.928+-15.687        ? might be 1.0331x slower
   json-parse-financial                               67.808+-0.997      ?      68.074+-0.721         ?
   json-stringify-tinderbox                           87.986+-1.779             87.573+-0.557         
   stanford-crypto-aes                                79.887+-0.736      ?      80.303+-2.545         ?
   stanford-crypto-ccm                                88.257+-1.586      ?      89.053+-6.897         ?
   stanford-crypto-pbkdf2                            217.190+-1.260      ?     220.001+-4.225         ? might be 1.0129x slower
   stanford-crypto-sha256-iterative                   75.204+-0.940      ?      75.425+-1.468         ?

   <arithmetic> *                                    172.560+-0.574      ?     173.239+-1.805         ? might be 1.0039x slower
   <geometric>                                       144.567+-0.501      ?     145.158+-1.428         ? might be 1.0041x slower
   <harmonic>                                        123.716+-0.534      ?     124.191+-1.155         ? might be 1.0038x slower

                                                         Baseline              FTL Stack Check                                  
JSRegress:
   adapt-to-double-divide                            17.8260+-0.3130     ?     17.9494+-0.4352        ?
   aliased-arguments-getbyval                         0.9617+-0.0583     ?      0.9896+-0.1697        ? might be 1.0291x slower
   allocate-big-object                                2.7491+-0.6091     ?      2.8420+-0.5947        ? might be 1.0338x slower
   arity-mismatch-inlining                            0.9893+-0.0769            0.9527+-0.1173          might be 1.0384x faster
   array-access-polymorphic-structure                 8.2880+-0.3123            8.2810+-0.1744        
   array-nonarray-polymorhpic-access                 56.1118+-0.6519           55.9062+-0.6708        
   array-prototype-every                            103.9460+-0.9796          103.6711+-1.2177        
   array-with-double-add                              5.6405+-0.1000     ?      5.8829+-0.4411        ? might be 1.0430x slower
   array-with-double-increment                        4.1371+-0.1041     ?      4.1625+-0.1047        ?
   array-with-double-mul-add                          6.6148+-0.1286     ?      6.6227+-0.1123        ?
   array-with-double-sum                              6.9033+-0.0388     ?      7.0203+-0.1290        ? might be 1.0169x slower
   array-with-int32-add-sub                          10.1254+-0.0993     ?     10.2208+-0.1324        ?
   array-with-int32-or-double-sum                     6.9874+-0.1344     ?      7.1068+-0.3513        ? might be 1.0171x slower
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     96.4808+-1.4813     ?     96.7073+-0.8468        ?
   ArrayBuffer-DataView-alloc-long-lived             26.4080+-1.0190           26.0975+-0.4251          might be 1.0119x faster
   ArrayBuffer-Int32Array-byteOffset                  5.0428+-0.1047            4.9902+-0.0733          might be 1.0105x faster
   ArrayBuffer-Int8Array-alloc-huge-long-lived   
                                                    225.4948+-3.7477     ?    226.3770+-1.4282        ?
   ArrayBuffer-Int8Array-alloc-large-long-lived-fragmented   
                                                    144.5723+-0.9108     ^    142.8185+-0.4818        ^ definitely 1.0123x faster
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     99.2180+-1.3709     ?     99.9181+-1.5885        ?
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     41.3797+-0.4101     ?     42.4790+-2.9224        ? might be 1.0266x slower
   ArrayBuffer-Int8Array-alloc-long-lived            24.8712+-0.1735           24.8517+-0.3330        
   ArrayBuffer-Int8Array-alloc                       22.1090+-0.1818     ?     23.6382+-3.2644        ? might be 1.0692x slower
   asmjs_bool_bug                                     7.8977+-0.3420     ?      8.0178+-0.0613        ? might be 1.0152x slower
   basic-set                                         16.7975+-1.0091     ^     14.8693+-0.5989        ^ definitely 1.1297x faster
   big-int-mul                                        5.5657+-0.1200            5.5515+-0.1842        
   boolean-test                                       3.8427+-0.1458     ?      3.8446+-0.0846        ?
   branch-fold                                        4.1761+-0.0912            4.1385+-0.0761        
   by-val-generic                                    11.6141+-0.2358           11.4713+-0.2408          might be 1.0125x faster
   captured-assignments                               0.5318+-0.0168     ?      0.5540+-0.1085        ? might be 1.0417x slower
   cast-int-to-double                                10.7099+-0.0377     ?     10.7111+-0.1362        ?
   cell-argument                                      9.8525+-0.3056     ?      9.9943+-0.2947        ? might be 1.0144x slower
   cfg-simplify                                       3.7235+-0.1062            3.6601+-0.1348          might be 1.0173x faster
   chain-custom-getter                              142.4285+-21.5450         136.6102+-18.6960         might be 1.0426x faster
   chain-getter-access                              228.5989+-10.6435         228.0097+-6.3546        
   cmpeq-obj-to-obj-other                            11.8356+-0.5058     ?     11.8583+-0.3714        ?
   constant-test                                      7.2776+-0.0628            7.2148+-0.1434        
   DataView-custom-properties                       104.3215+-2.0021          104.2922+-3.2073        
   delay-tear-off-arguments-strictmode                3.0953+-0.0842     ?      3.1367+-0.0643        ? might be 1.0134x slower
   destructuring-arguments-length                   160.8246+-3.1808     ?    166.4427+-9.4981        ? might be 1.0349x slower
   destructuring-arguments                            7.5625+-0.3330     ?      7.6262+-0.1203        ?
   destructuring-swap                                 7.4623+-0.1155     ?      7.5283+-0.1357        ?
   direct-arguments-getbyval                          0.8513+-0.0709            0.8265+-0.1214          might be 1.0299x faster
   double-get-by-val-out-of-bounds                    6.4153+-0.3402     ?      6.5264+-0.1117        ? might be 1.0173x slower
   double-pollution-getbyval                          9.5388+-0.1165     ?      9.5693+-0.1241        ?
   double-pollution-putbyoffset                       5.4528+-0.0584     ?      5.4576+-0.1025        ?
   double-to-int32-typed-array-no-inline              2.7888+-0.0905            2.7855+-0.0694        
   double-to-int32-typed-array                        2.0598+-0.0814            1.9887+-0.0503          might be 1.0358x faster
   double-to-uint32-typed-array-no-inline             2.9720+-0.1509            2.8976+-0.2291          might be 1.0257x faster
   double-to-uint32-typed-array                       2.1740+-0.1056            2.1526+-0.1570        
   empty-string-plus-int                              9.1558+-0.1918     ?      9.4352+-0.3389        ? might be 1.0305x slower
   emscripten-cube2hash                              50.5666+-0.6008           49.4949+-0.9543          might be 1.0217x faster
   emscripten-memops                               2029.5708+-7.0854     ?   2031.4739+-9.8499        ?
   external-arguments-getbyval                        2.0324+-0.1083     ?      2.1272+-0.1864        ? might be 1.0466x slower
   external-arguments-putbyval                        2.9838+-0.2269     ?      2.9894+-0.1809        ?
   fixed-typed-array-storage-var-index                1.3783+-0.0445            1.3693+-0.1158        
   fixed-typed-array-storage                          1.0210+-0.0906            1.0099+-0.0874          might be 1.0110x faster
   Float32Array-matrix-mult                           5.7058+-0.2030            5.6624+-0.0724        
   Float32Array-to-Float64Array-set                  76.5988+-1.2206           76.1875+-2.4740        
   Float64Array-alloc-long-lived                     94.3090+-0.2719     ?     94.6138+-0.9402        ?
   Float64Array-to-Int16Array-set                    98.0513+-0.6984     ^     95.7518+-0.4329        ^ definitely 1.0240x faster
   fold-double-to-int                                16.4642+-0.1639           16.4160+-0.4934        
   for-of-iterate-array-entries                       8.1835+-0.2531            8.0980+-0.3267          might be 1.0106x faster
   for-of-iterate-array-keys                          3.2115+-0.0934     ?      3.2482+-0.2469        ? might be 1.0114x slower
   for-of-iterate-array-values                        2.7557+-0.0982     ?      2.7747+-0.1507        ?
   function-dot-apply                                 1.6155+-0.0506     ?      1.6587+-0.1640        ? might be 1.0267x slower
   function-test                                      4.2459+-0.1043            4.1880+-0.1738          might be 1.0138x faster
   function-with-eval                                45.9305+-2.8000           45.2504+-0.8715          might be 1.0150x faster
   get-by-id-chain-from-try-block                     6.6988+-0.3169     ?      6.8188+-0.1540        ? might be 1.0179x slower
   get-by-id-proto-or-self                           24.8780+-1.1749           24.5390+-1.6994          might be 1.0138x faster
   get-by-id-self-or-proto                           24.8804+-1.2290     ?     25.7827+-1.3467        ? might be 1.0363x slower
   get-by-val-out-of-bounds                           6.2952+-0.2169     ?      6.4722+-0.4055        ? might be 1.0281x slower
   get_callee_monomorphic                             5.3162+-0.3131     ?      5.5613+-0.3449        ? might be 1.0461x slower
   get_callee_polymorphic                             4.1396+-0.2305            4.0015+-0.1884          might be 1.0345x faster
   global-var-const-infer-fire-from-opt               1.2151+-0.1354            1.1091+-0.1330          might be 1.0956x faster
   global-var-const-infer                             0.9027+-0.1501            0.8613+-0.0832          might be 1.0480x faster
   HashMap-put-get-iterate-keys                      38.8768+-0.6551     ?     39.1270+-0.4407        ?
   HashMap-put-get-iterate                           43.5605+-0.5948     ?     43.6734+-0.8080        ?
   HashMap-string-put-get-iterate                    45.3476+-1.1644     ?     46.3769+-3.0219        ? might be 1.0227x slower
   imul-double-only                                  10.4850+-1.6717     ?     11.3515+-0.1117        ? might be 1.0826x slower
   imul-int-only                                     13.5676+-0.1393           13.4791+-0.1475        
   imul-mixed                                        10.2827+-1.2579     ?     10.8817+-0.1598        ? might be 1.0583x slower
   in-four-cases                                     21.9728+-0.6624           21.7764+-0.2462        
   in-one-case-false                                 10.5502+-0.2100     ?     10.6036+-0.2700        ?
   in-one-case-true                                  10.5997+-0.0686           10.5258+-0.1199        
   in-two-cases                                      11.2813+-0.1408           11.1272+-0.1225          might be 1.0139x faster
   indexed-properties-in-objects                      4.0079+-0.1540     ?      4.0130+-0.0849        ?
   infer-closure-const-then-mov-no-inline             5.3022+-0.0663     ?      5.4238+-0.2314        ? might be 1.0229x slower
   infer-closure-const-then-mov                      24.5418+-0.3953           24.4551+-0.3152        
   infer-closure-const-then-put-to-scope-no-inline   
                                                     15.9252+-0.1205     ^     15.4077+-0.0616        ^ definitely 1.0336x faster
   infer-closure-const-then-put-to-scope             27.7878+-0.3091     ?     27.8146+-0.3317        ?
   infer-closure-const-then-reenter-no-inline   
                                                     74.2874+-0.2335     ^     71.3705+-0.4682        ^ definitely 1.0409x faster
   infer-closure-const-then-reenter                  27.8773+-0.2798     ?     28.0084+-0.5452        ?
   infer-one-time-closure-ten-vars                   14.6855+-0.4518     ?     14.7914+-0.3924        ?
   infer-one-time-closure-two-vars                   14.2248+-0.1301     ?     14.2640+-0.5694        ?
   infer-one-time-closure                            14.2415+-0.0717           14.1243+-0.2856        
   infer-one-time-deep-closure                       24.5170+-0.4011     ?     24.5538+-0.4876        ?
   inline-arguments-access                            1.5708+-0.0914     ?      1.5963+-0.1047        ? might be 1.0162x slower
   inline-arguments-aliased-access                    1.6698+-0.1328     ?      1.7217+-0.1369        ? might be 1.0311x slower
   inline-arguments-local-escape                     24.0268+-0.2272     ?     24.1351+-0.9344        ?
   inline-get-scoped-var                              6.3734+-0.2688            6.3478+-0.1907        
   inlined-put-by-id-transition                      13.1221+-0.2770           13.0588+-0.2202        
   int-or-other-abs-then-get-by-val                   8.1548+-0.0495     ?      8.1558+-0.1847        ?
   int-or-other-abs-zero-then-get-by-val             31.5889+-0.0430     !     32.6925+-1.0213        ! definitely 1.0349x slower
   int-or-other-add-then-get-by-val                   8.6346+-0.1869     ?      8.7516+-0.1562        ? might be 1.0136x slower
   int-or-other-add                                   9.4702+-0.1057            9.3848+-0.4373        
   int-or-other-div-then-get-by-val                   5.6953+-0.3402            5.6760+-0.3407        
   int-or-other-max-then-get-by-val                   6.2007+-0.0384            6.1987+-0.1195        
   int-or-other-min-then-get-by-val                   6.3831+-0.1159            6.3621+-0.1449        
   int-or-other-mod-then-get-by-val                   5.5593+-0.1302            5.5425+-0.1316        
   int-or-other-mul-then-get-by-val                   5.6108+-0.2733            5.5770+-0.2736        
   int-or-other-neg-then-get-by-val                   6.9454+-0.4049            6.7976+-0.1167          might be 1.0217x faster
   int-or-other-neg-zero-then-get-by-val             31.2849+-1.1990     ?     32.4168+-0.2498        ? might be 1.0362x slower
   int-or-other-sub-then-get-by-val                   8.3483+-0.0627     ?      8.3782+-0.1068        ?
   int-or-other-sub                                   7.3162+-0.0617            7.2896+-0.2311        
   int-overflow-local                                 5.4584+-0.1524            5.4338+-0.1437        
   Int16Array-alloc-long-lived                       67.6938+-0.7419     ?     67.8534+-0.5327        ?
   Int16Array-bubble-sort-with-byteLength            42.3480+-0.3869           42.2502+-0.5358        
   Int16Array-bubble-sort                            41.6867+-0.1791           41.5745+-0.3228        
   Int16Array-load-int-mul                            1.6758+-0.1001     ?      1.6923+-0.1023        ?
   Int16Array-to-Int32Array-set                      75.6264+-0.9429           74.5505+-2.4136          might be 1.0144x faster
   Int32Array-alloc-huge-long-lived                 868.4448+-2.9955          866.2639+-9.3230        
   Int32Array-alloc-huge                            647.7166+-3.7821          647.1300+-1.8038        
   Int32Array-alloc-large-long-lived                860.9936+-4.5887          860.3630+-6.4706        
   Int32Array-alloc-large                            36.7020+-1.0500           36.2110+-1.7039          might be 1.0136x faster
   Int32Array-alloc-long-lived                       75.0037+-0.4797     ?     75.6343+-0.4756        ?
   Int32Array-alloc                                   3.8372+-0.2235     ?      3.8774+-0.0956        ? might be 1.0105x slower
   Int32Array-Int8Array-view-alloc                   12.1201+-0.1684     ?     12.3045+-0.1706        ? might be 1.0152x slower
   int52-spill                                        9.9256+-0.3405            9.9147+-0.3545        
   Int8Array-alloc-long-lived                        62.3925+-1.1408           62.3152+-0.7745        
   Int8Array-load-with-byteLength                     4.3621+-0.1091     ?      4.3680+-0.0908        ?
   Int8Array-load                                     4.4528+-0.0838            4.4133+-0.1046        
   integer-divide                                    13.1667+-0.0904     ?     13.3992+-0.2979        ? might be 1.0177x slower
   integer-modulo                                     2.1183+-0.0841     ?      2.2255+-0.1483        ? might be 1.0506x slower
   large-int-captured                                10.0171+-0.2873            9.9995+-0.3409        
   large-int-neg                                     21.6580+-0.1265     ?     21.7803+-0.2320        ?
   large-int                                         19.3956+-0.2592           19.2210+-0.0661        
   logical-not                                        5.6769+-0.3904            5.6284+-0.3489        
   lots-of-fields                                    13.7144+-0.1842           13.5135+-0.2248          might be 1.0149x faster
   make-indexed-storage                               3.9658+-0.1178            3.9002+-0.7003          might be 1.0168x faster
   make-rope-cse                                      5.2202+-0.4085     ?      5.2643+-0.2979        ?
   marsaglia-larger-ints                             46.1108+-0.7206     ?     47.4937+-0.9570        ? might be 1.0300x slower
   marsaglia-osr-entry                               27.4160+-0.6232     ?     27.5671+-0.5558        ?
   marsaglia                                        210.9629+-0.5117     ^    207.3033+-2.1066        ^ definitely 1.0177x faster
   method-on-number                                  26.4905+-0.7609           25.5056+-1.7741          might be 1.0386x faster
   negative-zero-divide                               0.4698+-0.1022            0.4673+-0.0894        
   negative-zero-modulo                               0.4377+-0.1093            0.4305+-0.0910          might be 1.0167x faster
   negative-zero-negate                               0.4025+-0.1070     ?      0.4080+-0.0913        ? might be 1.0135x slower
   nested-function-parsing-random                   301.1487+-2.1821          300.3632+-0.9776        
   nested-function-parsing                           39.9020+-0.2051     ?     39.9585+-0.3514        ?
   new-array-buffer-dead                              3.7346+-0.1984            3.7170+-0.1445        
   new-array-buffer-push                              9.1117+-0.1384     ?      9.1372+-0.2732        ?
   new-array-dead                                    14.0268+-0.4881     ?     14.3607+-0.8179        ? might be 1.0238x slower
   new-array-push                                     9.1339+-0.2415     ?      9.3528+-0.3447        ? might be 1.0240x slower
   number-test                                        3.7357+-0.1061     ?      3.7403+-0.0705        ?
   object-closure-call                               12.6068+-0.1987     ?     12.7498+-0.4367        ? might be 1.0113x slower
   object-test                                        3.9830+-0.0715     ?      4.0425+-0.1428        ? might be 1.0149x slower
   poly-stricteq                                     62.4723+-0.8916     ?     62.7257+-0.7026        ?
   polymorphic-structure                             21.9268+-0.7588           21.6974+-0.7102          might be 1.0106x faster
   polyvariant-monomorphic-get-by-id                 13.6483+-0.2355           13.5955+-0.1373        
   proto-custom-getter                              133.1962+-16.8142         132.7313+-16.5796       
   proto-getter-access                              227.3693+-6.8025     ^    217.8034+-1.3047        ^ definitely 1.0439x faster
   put-by-id                                         20.1414+-0.6659     ?     20.2505+-1.0478        ?
   put-by-val-large-index-blank-indexing-type   
                                                      9.4760+-0.5259     ?      9.6957+-0.2401        ? might be 1.0232x slower
   put-by-val-machine-int                             3.3298+-0.1990            3.2427+-0.0576          might be 1.0269x faster
   rare-osr-exit-on-local                            18.6348+-0.1211     ?     18.7665+-0.2130        ?
   register-pressure-from-osr                        27.0938+-0.1926     ?     27.2749+-0.3873        ?
   simple-activation-demo                            29.2580+-0.3261     ?     29.3693+-0.3626        ?
   simple-custom-getter                             421.0762+-53.7979         403.3615+-0.5706          might be 1.0439x faster
   simple-getter-access                             368.7764+-19.8782         362.1436+-2.8281          might be 1.0183x faster
   slow-array-profile-convergence                     3.6751+-0.1410            3.5984+-0.1838          might be 1.0213x faster
   slow-convergence                                   3.9651+-0.1366            3.9613+-0.0946        
   sparse-conditional                                 1.3184+-0.0939     ?      1.3583+-0.1077        ? might be 1.0303x slower
   splice-to-remove                                  66.1035+-0.9615           65.6595+-1.1901        
   string-concat-object                               2.5766+-0.3511     ?      2.6387+-0.3520        ? might be 1.0241x slower
   string-concat-pair-object                          2.6620+-0.3663            2.6422+-0.4384        
   string-concat-pair-simple                         17.5139+-0.4694           17.2263+-0.3437          might be 1.0167x faster
   string-concat-simple                              17.4609+-0.4479     ?     18.1913+-0.3308        ? might be 1.0418x slower
   string-cons-repeat                                10.5253+-0.7336     ?     10.5534+-0.5530        ?
   string-cons-tower                                  9.7528+-0.4091     ?      9.9203+-0.4579        ? might be 1.0172x slower
   string-equality                                   37.6262+-0.1818     ?     37.7261+-0.1249        ?
   string-get-by-val-big-char                        11.3722+-0.4650     ?     11.8005+-0.7460        ? might be 1.0377x slower
   string-get-by-val-out-of-bounds-insane             5.0512+-0.0992            4.9734+-0.1291          might be 1.0156x faster
   string-get-by-val-out-of-bounds                    6.5215+-0.1440     ?      6.6100+-0.1173        ? might be 1.0136x slower
   string-get-by-val                                  5.0388+-0.0856     ?      5.0486+-0.1427        ?
   string-hash                                        2.5420+-0.1012     ?      2.5987+-0.0479        ? might be 1.0223x slower
   string-long-ident-equality                        32.7964+-0.1151     ?     32.8896+-0.2113        ?
   string-repeat-arith                               41.1520+-0.7220           41.0845+-0.5108        
   string-sub                                        89.2808+-2.1657           89.0712+-1.5210        
   string-test                                        3.6652+-0.0782     ?      3.7183+-0.0250        ? might be 1.0145x slower
   string-var-equality                               60.3195+-0.2586     ?     60.6271+-0.5442        ?
   structure-hoist-over-transitions                   3.1974+-0.2557            3.0477+-0.0294          might be 1.0491x faster
   switch-char-constant                               3.8238+-0.1337            3.7599+-0.1680          might be 1.0170x faster
   switch-char                                        7.8156+-0.0690            7.8132+-0.0560        
   switch-constant                                   10.3112+-0.5108           10.2402+-0.1848        
   switch-string-basic-big-var                       22.6658+-3.5093           17.8386+-2.4030          might be 1.2706x faster
   switch-string-basic-big                           16.1365+-0.2631           15.8967+-0.4139          might be 1.0151x faster
   switch-string-basic-var                           17.1342+-0.2899     ?     17.1992+-0.0653        ?
   switch-string-basic                               16.2591+-0.5695           15.8922+-0.7226          might be 1.0231x faster
   switch-string-big-length-tower-var                23.9203+-0.3912           23.6482+-0.3874          might be 1.0115x faster
   switch-string-length-tower-var                    18.6015+-0.1420           18.4152+-0.1168          might be 1.0101x faster
   switch-string-length-tower                        13.9503+-0.1089           13.8438+-0.2570        
   switch-string-short                               13.8185+-0.5425     ?     13.9291+-0.0792        ?
   switch                                            13.7580+-0.2375     ?     13.8488+-0.1840        ?
   tear-off-arguments-simple                          2.1516+-0.1496            2.1297+-0.0903          might be 1.0103x faster
   tear-off-arguments                                 3.2352+-0.0587     ?      3.2772+-0.1200        ? might be 1.0130x slower
   temporal-structure                                14.6273+-0.3378           14.5380+-0.2677        
   to-int32-boolean                                  17.9552+-0.1929     ?     18.0258+-0.2957        ?
   undefined-test                                     3.9330+-0.0830            3.8920+-0.1163          might be 1.0105x faster
   unprofiled-licm                                   26.7991+-0.7292     ?     27.0993+-0.8494        ? might be 1.0112x slower
   weird-inlining-const-prop                          2.8959+-0.1252     ?      2.9170+-0.2999        ?

   <arithmetic>                                      50.2027+-0.3704           49.9849+-0.0664          might be 1.0044x faster
   <geometric> *                                     12.3404+-0.0293           12.3346+-0.0588          might be 1.0005x faster
   <harmonic>                                         4.9544+-0.1277            4.9511+-0.0840          might be 1.0007x faster

                                                         Baseline              FTL Stack Check                                  
AsmBench:
   bigfib.cpp                                      1031.8628+-7.8247     !   1061.1060+-12.8256       ! definitely 1.0283x slower
   cray.c                                            49.6539+-0.6737     ?     49.9253+-0.7420        ?
   dry.c                                            738.8666+-89.5839    ?    764.1810+-77.0440       ? might be 1.0343x slower
   FloatMM.c                                       1461.4986+-4.9715         1459.9265+-4.4853        
   gcc-loops.cpp                                   1828.9721+-4.3339     ^   1814.6080+-1.8607        ^ definitely 1.0079x faster
   n-body.c                                        2542.0338+-6.9434     ?   2543.4285+-6.7589        ?
   Quicksort.c                                       71.9217+-1.6652     ?     72.0892+-0.3932        ?
   stepanov_container.cpp                          7584.4573+-50.1951    ?   7644.5823+-82.0788       ?
   Towers.c                                          63.3533+-1.4323     ?     64.0089+-0.1556        ? might be 1.0103x slower

   <arithmetic>                                    1708.0689+-6.4662     !   1719.3173+-4.0404        ! definitely 1.0066x slower
   <geometric> *                                    591.5525+-7.4521     ?    596.8280+-7.3445        ? might be 1.0089x slower
   <harmonic>                                       166.9218+-1.2083     ?    168.0995+-1.6352        ? might be 1.0071x slower

                                                         Baseline              FTL Stack Check                                  
All benchmarks:
   <arithmetic>                                     169.1756+-0.2402     ?    169.4452+-0.2985        ? might be 1.0016x slower
   <geometric>                                       19.7543+-0.0484     ?     19.7558+-0.0686        ? might be 1.0001x slower
   <harmonic>                                         4.4359+-0.0840            4.4249+-0.0512          might be 1.0025x faster

                                                         Baseline              FTL Stack Check                                  
Geomean of preferred means:
   <scaled-result>                                   65.9217+-0.2479     ?     66.0534+-0.2323        ? might be 1.0020x slower
Comment 3 Michael Saboff 2014-02-13 15:30:10 PST
Committed r164069: <http://trac.webkit.org/changeset/164069>
Comment 4 Csaba Osztrogonác 2014-06-04 00:49:37 PDT
Comment on attachment 224025 [details]
Patch

Cleared review? from attachment 224025 [details] so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).