Bug 148661 - [ES6] Implement tail calls in the LLInt and Baseline JIT
Summary: [ES6] Implement tail calls in the LLInt and Baseline JIT
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Basile Clement
URL:
Keywords:
: 147195 (view as bug list)
Depends on: 148658 148659 148665 148666 149162
Blocks: 148662
  Show dependency treegraph
 
Reported: 2015-08-31 17:43 PDT by Basile Clement
Modified: 2015-09-18 04:42 PDT (History)
6 users (show)

See Also:


Attachments
Patch (there is a bug in there) (143.06 KB, patch)
2015-09-04 14:16 PDT, Basile Clement
no flags Details | Formatted Diff | Diff
Patch (124.68 KB, patch)
2015-09-04 14:54 PDT, Basile Clement
no flags Details | Formatted Diff | Diff
Rebased patch with Windows 64 bit fix (121.94 KB, patch)
2015-09-10 16:54 PDT, Michael Saboff
no flags Details | Formatted Diff | Diff
Prior patch with tabs removed. (121.54 KB, patch)
2015-09-10 17:00 PDT, Michael Saboff
buildbot: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from ews104 for mac-mavericks-wk2 (644.12 KB, application/zip)
2015-09-10 17:55 PDT, Build Bot
no flags Details
Archive of layout-test-results from ews103 for mac-mavericks (729.85 KB, application/zip)
2015-09-10 18:10 PDT, Build Bot
no flags Details
Updated patch (122.35 KB, patch)
2015-09-10 20:11 PDT, Michael Saboff
fpizlo: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Basile Clement 2015-08-31 17:43:41 PDT
...
Comment 1 Basile Clement 2015-09-04 13:15:35 PDT
*** Bug 147195 has been marked as a duplicate of this bug. ***
Comment 2 Basile Clement 2015-09-04 14:16:32 PDT
Created attachment 260617 [details]
Patch (there is a bug in there)
Comment 3 Basile Clement 2015-09-04 14:19:16 PDT
Comment on attachment 260617 [details]
Patch (there is a bug in there)

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

> Source/JavaScriptCore/ChangeLog:177
> +2015-08-27  Basile Clement  <basile_clement@apple.com>
> +
> +        Don't waste stack space when arity fixup was performed
> +        Need the bug URL (OOPS!).

I'll remove that bogus ChangeLog entry.
Comment 4 Geoffrey Garen 2015-09-04 14:52:26 PDT
Comment on attachment 260617 [details]
Patch (there is a bug in there)

Looks good to me (though not ready to land).
Comment 5 Basile Clement 2015-09-04 14:54:25 PDT
Created attachment 260624 [details]
Patch

Updated patch, enable adequate ES6 tests
Comment 6 Michael Saboff 2015-09-10 16:54:53 PDT
Created attachment 260970 [details]
Rebased patch with Windows 64 bit fix
Comment 7 WebKit Commit Bot 2015-09-10 16:56:09 PDT
Attachment 260970 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:87:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:88:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:88:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:89:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:90:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:91:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:92:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:93:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:94:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:95:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:96:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:97:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:98:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:99:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:100:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:102:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:103:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:104:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:108:  Tab found; better to use spaces  [whitespace/tab] [1]
ERROR: Source/JavaScriptCore/jit/ThunkGenerators.cpp:109:  Tab found; better to use spaces  [whitespace/tab] [1]
Total errors found: 20 in 54 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 8 Michael Saboff 2015-09-10 17:00:56 PDT
Created attachment 260971 [details]
Prior patch with tabs removed.
Comment 9 Michael Saboff 2015-09-10 17:04:48 PDT
Looks neutral on performance.

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
"TailCallLLintBaseline" 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           TailCallLLintBaseline                               
SunSpider:
   3d-cube                                            7.9900+-0.5392     ?      8.2051+-0.4886        ? might be 1.0269x slower
   3d-morph                                           8.1512+-0.1119     ?      8.1757+-0.1670        ?
   3d-raytrace                                        8.6974+-0.2520     ?      8.6988+-0.2690        ?
   access-binary-trees                                3.0598+-0.0975     ?      3.1104+-0.2954        ? might be 1.0165x slower
   access-fannkuch                                    8.4940+-0.1779     ?      8.5927+-0.2508        ? might be 1.0116x slower
   access-nbody                                       4.3290+-0.1465            4.2594+-0.2278          might be 1.0163x faster
   access-nsieve                                      4.5695+-0.1461     ?      4.5700+-0.1469        ?
   bitops-3bit-bits-in-byte                           1.7109+-0.0826     ?      1.8132+-0.0737        ? might be 1.0598x slower
   bitops-bits-in-byte                                5.5978+-0.1075     ?      5.6358+-0.1258        ?
   bitops-bitwise-and                                 2.8273+-0.1274     ?      2.8729+-0.1387        ? might be 1.0161x slower
   bitops-nsieve-bits                                 4.3372+-0.2291            4.3363+-0.1237        
   controlflow-recursive                              3.3355+-0.0900     ?      3.3741+-0.2464        ? might be 1.0116x slower
   crypto-aes                                         6.3621+-0.2557            6.2751+-0.3727          might be 1.0139x faster
   crypto-md5                                         4.1255+-0.2256            4.1180+-0.2030        
   crypto-sha1                                        3.3990+-0.1185     ?      3.4265+-0.1266        ?
   date-format-tofte                                 12.7264+-0.6881     ?     12.7905+-0.4982        ?
   date-format-xparb                                  7.7400+-0.3098            7.6136+-0.3692          might be 1.0166x faster
   math-cordic                                        4.3574+-0.2295     ?      4.4665+-0.1137        ? might be 1.0250x slower
   math-partial-sums                                  9.6602+-0.2923     ?      9.9313+-0.2142        ? might be 1.0281x slower
   math-spectral-norm                                 3.0410+-0.0671            3.0308+-0.0605        
   regexp-dna                                         9.6045+-0.3334     ?      9.6887+-0.2189        ?
   string-base64                                      6.7166+-0.3200            6.4955+-0.3161          might be 1.0340x faster
   string-fasta                                       9.2414+-0.2604     ?      9.2773+-0.1319        ?
   string-tagcloud                                   12.9885+-0.1990           12.9555+-0.2202        
   string-unpack-code                                27.2217+-0.5889           26.9775+-1.8750        
   string-validate-input                              6.8607+-0.3022            6.8123+-0.1394        

   <arithmetic>                                       7.1979+-0.0428     ?      7.2117+-0.0811        ? might be 1.0019x slower

                                                         Baseline           TailCallLLintBaseline                               
LongSpider:
   3d-cube                                         1167.3314+-38.6808    ?   1181.5132+-27.9042       ? might be 1.0121x slower
   3d-morph                                        1888.1689+-13.9212    ?   1893.4813+-26.1817       ?
   3d-raytrace                                     1024.7347+-1.6894     ?   1028.3860+-16.2314       ?
   access-binary-trees                             1394.1152+-25.3902        1391.3838+-3.4955        
   access-fannkuch                                  443.1098+-6.9629     ?    447.1206+-11.9273       ?
   access-nbody                                    1014.7333+-2.2810     ?   1022.7019+-10.0302       ?
   access-nsieve                                    675.7314+-1.1357     ?    682.8737+-14.8059       ? might be 1.0106x slower
   bitops-3bit-bits-in-byte                          44.5345+-0.3753           44.4144+-0.2661        
   bitops-bits-in-byte                              341.9902+-2.3509     ?    345.1937+-6.0364        ?
   bitops-nsieve-bits                               618.1560+-5.8417     ?    619.2817+-7.3145        ?
   controlflow-recursive                            749.5283+-11.3946    ^    731.4562+-1.3053        ^ definitely 1.0247x faster
   crypto-aes                                       879.4976+-6.0170          877.3869+-4.0433        
   crypto-md5                                       791.2980+-11.6898         788.1599+-10.7560       
   crypto-sha1                                     1055.1870+-1.2140     ^   1052.0834+-1.3899        ^ definitely 1.0029x faster
   date-format-tofte                                973.3914+-29.0969    ?    992.1632+-21.2524       ? might be 1.0193x slower
   date-format-xparb                               1070.6765+-15.6300    ?   1073.7831+-20.8172       ?
   hash-map                                         231.2808+-0.5143     ?    233.0270+-1.5212        ?
   math-cordic                                      645.8419+-5.6784          639.4562+-4.8900        
   math-partial-sums                               1130.4283+-4.4214     !   1141.8686+-3.3339        ! definitely 1.0101x slower
   math-spectral-norm                              1065.3986+-1.6932     ?   1065.6096+-2.2225        ?
   string-base64                                    534.5762+-6.1064     ?    541.6856+-17.2722       ? might be 1.0133x slower
   string-fasta                                     594.0465+-17.2904         585.0918+-5.5062          might be 1.0153x faster
   string-tagcloud                                  295.3430+-12.7914         294.5233+-9.6551        

   <geometric>                                      666.0062+-1.7595     ?    667.2731+-2.2467        ? might be 1.0019x slower

                                                         Baseline           TailCallLLintBaseline                               
V8Spider:
   crypto                                            70.6442+-1.0758           70.6392+-1.2695        
   deltablue                                         91.4703+-4.5412           90.2460+-2.2554          might be 1.0136x faster
   earley-boyer                                      63.9042+-0.8657           63.4375+-0.8762        
   raytrace                                          39.1057+-0.9802           39.0158+-1.4216        
   regexp                                           104.0843+-3.6457     ?    105.0150+-2.7282        ?
   richards                                          83.4481+-2.7716           82.0284+-0.7802          might be 1.0173x faster
   splay                                             53.7968+-4.2957     ?     54.0759+-3.6323        ?

   <geometric>                                       69.1128+-0.3484           68.8625+-1.0014          might be 1.0036x faster

                                                         Baseline           TailCallLLintBaseline                               
Octane:
   encrypt                                           0.31256+-0.00350          0.30655+-0.00855         might be 1.0196x faster
   decrypt                                           5.72514+-0.02609    ?     5.72600+-0.03726       ?
   deltablue                                x2       0.26328+-0.01554          0.25789+-0.00586         might be 1.0209x faster
   earley                                            0.51232+-0.00352    ?     0.51331+-0.00989       ?
   boyer                                             8.71021+-0.12578          8.58319+-0.06698         might be 1.0148x faster
   navier-stokes                            x2       6.44600+-0.15610          6.40907+-0.05772       
   raytrace                                 x2       1.70879+-0.06502    ?     1.71104+-0.11954       ?
   richards                                 x2       0.17134+-0.00153    ?     0.17161+-0.00089       ?
   splay                                    x2       0.52050+-0.00779          0.51794+-0.01144       
   regexp                                   x2      38.61531+-2.10099         38.59521+-1.26724       
   pdfjs                                    x2      59.60857+-0.33258    !    63.38079+-0.94768       ! definitely 1.0633x slower
   mandreel                                 x2      67.83837+-0.93595    ?    68.02840+-0.68689       ?
   gbemu                                    x2      60.53964+-1.29477    ?    60.73393+-0.83395       ?
   closure                                           0.93254+-0.01836    ?     0.93894+-0.02689       ?
   jquery                                           11.91034+-0.15297         11.85166+-0.15302       
   box2d                                    x2      17.41933+-0.18837    ?    17.50016+-0.20662       ?
   zlib                                     x2     573.26906+-2.99829    ?   576.13025+-10.13746      ?
   typescript                               x2    1107.51038+-15.77511   ?  1108.42169+-31.16583      ?

   <geometric>                                       9.12764+-0.09009    ?     9.14814+-0.05360       ? might be 1.0022x slower

                                                         Baseline           TailCallLLintBaseline                               
Kraken:
   ai-astar                                          332.120+-6.812            324.425+-6.545           might be 1.0237x faster
   audio-beat-detection                               80.738+-1.740      ?      80.784+-0.600         ?
   audio-dft                                         128.894+-2.589      ?     131.466+-6.226         ? might be 1.0200x slower
   audio-fft                                          59.573+-0.355      ?      60.030+-2.385         ?
   audio-oscillator                                  102.750+-1.514      ?     102.940+-0.526         ?
   imaging-darkroom                                   96.049+-0.315      ?      96.116+-0.232         ?
   imaging-desaturate                                 89.974+-1.279             89.317+-0.812         
   imaging-gaussian-blur                             144.117+-1.001      ?     148.869+-15.116        ? might be 1.0330x slower
   json-parse-financial                               70.556+-0.444      ^      68.909+-1.087         ^ definitely 1.0239x faster
   json-stringify-tinderbox                           40.847+-0.134      ?      41.279+-1.377         ? might be 1.0106x slower
   stanford-crypto-aes                                64.787+-3.057      ?      66.920+-2.934         ? might be 1.0329x slower
   stanford-crypto-ccm                                60.246+-3.297      !      72.178+-2.895         ! definitely 1.1981x slower
   stanford-crypto-pbkdf2                            141.327+-1.641      !     147.057+-3.799         ! definitely 1.0405x slower
   stanford-crypto-sha256-iterative                   57.052+-0.085      !      58.820+-1.018         ! definitely 1.0310x slower

   <arithmetic>                                      104.931+-0.644      ?     106.365+-1.488         ? might be 1.0137x slower

                                                         Baseline           TailCallLLintBaseline                               
JSRegress:
   abc-forward-loop-equal                            55.5932+-1.9680           55.3093+-1.0146        
   abc-postfix-backward-loop                         54.5142+-0.0546           54.4483+-0.7278        
   abc-simple-backward-loop                          54.2937+-0.2200           54.2530+-0.1774        
   abc-simple-forward-loop                           54.5640+-0.1446           54.2796+-0.3768        
   abc-skippy-loop                                   37.4628+-0.0743     ?     37.6884+-0.7390        ?
   abs-boolean                                        3.8348+-0.1280            3.7986+-0.1218        
   adapt-to-double-divide                            17.3724+-0.3986           17.2817+-0.6030        
   aliased-arguments-getbyval                         1.8135+-0.1808            1.6430+-0.2259          might be 1.1038x faster
   allocate-big-object                                3.9569+-0.4486            3.7980+-0.1805          might be 1.0418x faster
   arguments-named-and-reflective                    14.3909+-0.6931     ?     14.5040+-0.4930        ?
   arguments-out-of-bounds                           14.4586+-0.3478           14.2245+-0.2076          might be 1.0165x faster
   arguments-strict-mode                             12.5959+-0.2492     ?     12.7986+-0.8980        ? might be 1.0161x slower
   arguments                                         11.0512+-0.4502     ?     11.3985+-0.6568        ? might be 1.0314x slower
   arity-mismatch-inlining                            1.2859+-0.1502            1.2822+-0.1000        
   array-access-polymorphic-structure                 9.3504+-0.3995     ?      9.5931+-0.1889        ? might be 1.0260x slower
   array-nonarray-polymorhpic-access                 40.7702+-0.8141     ?     40.9650+-0.8621        ?
   array-prototype-every                            127.3831+-3.7812          123.5865+-0.4346          might be 1.0307x faster
   array-prototype-forEach                          125.5991+-3.0541          122.9905+-4.6534          might be 1.0212x faster
   array-prototype-map                              135.6763+-2.0407          134.6779+-2.5429        
   array-prototype-reduce                           114.0757+-1.7158     ?    114.8637+-0.8291        ?
   array-prototype-reduceRight                      112.2315+-0.3933     !    114.9570+-1.7643        ! definitely 1.0243x slower
   array-prototype-some                             126.7886+-1.2037     ^    123.2098+-0.9777        ^ definitely 1.0290x faster
   array-splice-contiguous                           33.2841+-1.2506     ?     33.6624+-1.0461        ? might be 1.0114x slower
   array-with-double-add                              5.4307+-0.1070     ?      5.4903+-0.1078        ? might be 1.0110x slower
   array-with-double-increment                        4.1762+-0.1659            4.1736+-0.1189        
   array-with-double-mul-add                          7.2952+-0.1308     ?      7.4238+-0.1953        ? might be 1.0176x slower
   array-with-double-sum                              4.3933+-0.1109     ?      4.4780+-0.0630        ? might be 1.0193x slower
   array-with-int32-add-sub                           9.5535+-0.0814            9.4297+-0.2632          might be 1.0131x faster
   array-with-int32-or-double-sum                     4.4473+-0.1486     ?      4.5443+-0.1374        ? might be 1.0218x slower
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     45.4503+-0.5405           45.0729+-0.3230        
   ArrayBuffer-DataView-alloc-long-lived             17.9761+-0.5979     ?     18.3361+-0.0652        ? might be 1.0200x slower
   ArrayBuffer-Int32Array-byteOffset                  5.5547+-0.1129     ?      5.6166+-0.0558        ? might be 1.0111x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     45.8250+-1.7149     ?     46.8060+-0.6234        ? might be 1.0214x slower
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     29.6412+-1.3931           29.3428+-1.0517          might be 1.0102x faster
   ArrayBuffer-Int8Array-alloc-long-lived            16.8812+-0.2245     ?     16.9222+-0.1876        ?
   ArrayBuffer-Int8Array-alloc                       14.1391+-0.4199     ?     14.4715+-0.7032        ? might be 1.0235x slower
   arrowfunction-call                                15.0475+-0.2563           14.9440+-0.0696        
   asmjs_bool_bug                                     9.8116+-0.2511            9.7906+-0.4757        
   assign-custom-setter-polymorphic                   4.2182+-0.2352            4.1331+-0.0585          might be 1.0206x faster
   assign-custom-setter                               5.6968+-0.1344     ?      5.8862+-0.4884        ? might be 1.0332x slower
   basic-set                                         11.5295+-0.3181           11.3514+-0.0774          might be 1.0157x faster
   big-int-mul                                        5.9429+-0.1306            5.8491+-0.0444          might be 1.0160x faster
   boolean-test                                       4.4153+-0.2146     ?      4.4373+-0.1690        ?
   branch-fold                                        4.8162+-0.2028     ?      4.9061+-0.0704        ? might be 1.0187x slower
   branch-on-string-as-boolean                       22.4008+-0.4707           22.3793+-0.9253        
   by-val-generic                                     3.7415+-0.1884            3.7126+-0.2472        
   call-spread-apply                                 39.4160+-2.8711     ?     40.1526+-0.6694        ? might be 1.0187x slower
   call-spread-call                                  31.8911+-0.9712     ?     33.8477+-2.7202        ? might be 1.0614x slower
   captured-assignments                               0.7646+-0.1242            0.7278+-0.1483          might be 1.0506x faster
   cast-int-to-double                                 8.6705+-0.0589            8.5461+-0.2169          might be 1.0146x faster
   cell-argument                                      8.6838+-0.3988            8.5636+-0.3862          might be 1.0140x faster
   cfg-simplify                                       3.8201+-0.1051     ?      3.8303+-0.0797        ?
   chain-getter-access                               10.2377+-0.3685     ?     10.2497+-0.2608        ?
   cmpeq-obj-to-obj-other                            14.7891+-0.4545           14.6385+-0.3323          might be 1.0103x faster
   constant-test                                      8.1891+-0.1982            8.0837+-0.0963          might be 1.0130x faster
   create-lots-of-functions                          16.6671+-0.3138           16.6431+-0.4926        
   cse-new-array-buffer                               3.2567+-0.2686     ?      3.3768+-0.2297        ? might be 1.0369x slower
   cse-new-array                                      3.4226+-0.1615            3.4147+-0.1294        
   DataView-custom-properties                        52.4323+-1.4553     ?     53.3127+-1.1655        ? might be 1.0168x slower
   delay-tear-off-arguments-strictmode               18.3430+-0.0745     ?     18.7626+-0.4880        ? might be 1.0229x slower
   deltablue-varargs                                272.8372+-6.0251     ?    273.0087+-3.6219        ?
   destructuring-arguments                          243.1577+-6.7181          240.3514+-3.6544          might be 1.0117x faster
   destructuring-parameters-overridden-by-function   
                                                      0.6934+-0.0865     ?      0.8030+-0.1295        ? might be 1.1580x slower
   destructuring-swap                                 7.7818+-0.3133     ?      7.9366+-0.1902        ? might be 1.0199x slower
   direct-arguments-getbyval                          1.7236+-0.0773            1.7027+-0.2854          might be 1.0123x faster
   div-boolean-double                                 5.5505+-0.1400     ?      5.6351+-0.1424        ? might be 1.0153x slower
   div-boolean                                        9.9814+-0.1240     ?     10.1425+-0.1539        ? might be 1.0161x slower
   double-get-by-val-out-of-bounds                    6.1537+-0.2660     ?      6.1862+-0.1238        ?
   double-pollution-getbyval                          9.7312+-0.3615     ?      9.8408+-0.1945        ? might be 1.0113x slower
   double-pollution-putbyoffset                       5.6418+-0.3223     ?      5.7512+-0.1569        ? might be 1.0194x slower
   double-real-use                                   39.2555+-0.3936     ?     39.6169+-0.7129        ?
   double-to-int32-typed-array-no-inline              3.0451+-0.1491     ?      3.1473+-0.0865        ? might be 1.0336x slower
   double-to-int32-typed-array                        2.9482+-0.1652            2.9474+-0.1794        
   double-to-uint32-typed-array-no-inline             3.1115+-0.1482     ?      3.1973+-0.2006        ? might be 1.0276x slower
   double-to-uint32-typed-array                       2.8963+-0.1748     ?      2.9418+-0.1223        ? might be 1.0157x slower
   elidable-new-object-dag                           54.0412+-1.0622     ?     54.2830+-1.2758        ?
   elidable-new-object-roflcopter                    53.7482+-1.0681     ?     54.2342+-1.7990        ?
   elidable-new-object-then-call                     48.9013+-1.5729     ?     49.5427+-1.2354        ? might be 1.0131x slower
   elidable-new-object-tree                          62.7503+-0.8147     !     65.2486+-0.8248        ! definitely 1.0398x slower
   empty-string-plus-int                              7.6225+-0.2046            7.5997+-0.2584        
   emscripten-cube2hash                              45.1840+-0.7248     ?     45.5240+-0.4390        ?
   exit-length-on-plain-object                       18.6739+-0.4114     ?     19.2262+-1.2302        ? might be 1.0296x slower
   external-arguments-getbyval                        1.7640+-0.1286     ?      1.8151+-0.2030        ? might be 1.0290x slower
   external-arguments-putbyval                        3.2260+-0.1751     ?      3.2866+-0.2276        ? might be 1.0188x slower
   fixed-typed-array-storage-var-index                1.6381+-0.1005     ?      1.7199+-0.0868        ? might be 1.0500x slower
   fixed-typed-array-storage                          1.2908+-0.0564     ?      1.3683+-0.1229        ? might be 1.0600x slower
   Float32Array-matrix-mult                           6.2230+-0.2717     ?      6.2550+-0.3331        ?
   Float32Array-to-Float64Array-set                  78.9798+-0.2140           78.6758+-1.1631        
   Float64Array-alloc-long-lived                     94.3184+-1.6927     ?     94.8424+-3.1267        ?
   Float64Array-to-Int16Array-set                    93.7504+-3.0805           93.6881+-2.7074        
   fold-double-to-int                                19.0367+-0.4022     ?     19.1760+-0.6585        ?
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     11.7715+-0.4970     ?     11.8060+-0.9742        ?
   fold-get-by-id-to-multi-get-by-offset              9.6276+-0.2620            9.6132+-0.4834        
   fold-multi-get-by-offset-to-get-by-offset   
                                                      9.3300+-0.6834            9.2772+-0.6616        
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      9.0733+-0.6307     ?      9.3145+-0.0645        ? might be 1.0266x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      9.7032+-0.1788            9.4863+-0.2358          might be 1.0229x faster
   fold-multi-put-by-offset-to-put-by-offset   
                                                      8.4797+-0.0798            8.4417+-0.2765        
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     14.0189+-1.0837     ?     14.2297+-0.9740        ? might be 1.0150x slower
   fold-put-by-id-to-multi-put-by-offset             10.2213+-0.1674     ?     10.3617+-0.6758        ? might be 1.0137x slower
   fold-put-by-val-with-string-to-multi-put-by-offset   
                                                     10.4869+-0.3102     ?     10.5432+-0.8574        ?
   fold-put-by-val-with-symbol-to-multi-put-by-offset   
                                                     10.7365+-0.4590           10.7050+-0.8155        
   fold-put-structure                                 7.8827+-0.8118            7.6942+-0.1282          might be 1.0245x faster
   for-of-iterate-array-entries                      16.6826+-0.6140           16.5429+-0.1666        
   for-of-iterate-array-keys                          5.1823+-0.2120            5.1562+-0.1789        
   for-of-iterate-array-values                        5.1611+-0.1357     ?      5.2052+-0.3852        ?
   fround                                            18.8640+-0.8719     ?     19.2764+-1.0672        ? might be 1.0219x slower
   ftl-library-inlining-dataview                     93.0921+-0.6410     ?     94.2582+-2.7856        ? might be 1.0125x slower
   ftl-library-inlining                             129.5355+-32.7734    ?    131.9037+-13.6040       ? might be 1.0183x slower
   function-call                                     15.0218+-0.3822     ?     15.1019+-0.2137        ?
   function-dot-apply                                 3.1340+-0.3376            3.1036+-0.0761        
   function-test                                      4.4845+-0.1250     ?      4.9783+-1.7245        ? might be 1.1101x slower
   function-with-eval                               146.3682+-1.4935     ?    147.1374+-4.2266        ?
   gcse-poly-get-less-obvious                        24.8766+-0.1747           24.6876+-0.5344        
   gcse-poly-get                                     24.5870+-0.1933     ?     24.7530+-0.5955        ?
   gcse                                               6.4228+-0.1070            6.3810+-0.0980        
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.2191+-0.1702            3.1902+-0.1420        
   get-by-id-bimorphic-check-structure-elimination   
                                                      8.2577+-0.1826     ?      8.4214+-0.0839        ? might be 1.0198x slower
   get-by-id-chain-from-try-block                     6.9084+-0.0416            6.7780+-0.2250          might be 1.0192x faster
   get-by-id-check-structure-elimination              8.0172+-0.1950     ?      8.0704+-0.1440        ?
   get-by-id-proto-or-self                           20.9142+-2.5010     ?     21.1453+-2.6810        ? might be 1.0110x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      3.8829+-0.1625     ?      3.9500+-0.0751        ? might be 1.0173x slower
   get-by-id-self-or-proto                           21.4286+-3.6963           20.9987+-3.1180          might be 1.0205x faster
   get-by-val-out-of-bounds                           5.8392+-0.4038     ?      5.8917+-0.2262        ?
   get-by-val-with-string-bimorphic-check-structure-elimination-simple   
                                                      4.2742+-0.1284     ?      4.3142+-0.1782        ?
   get-by-val-with-string-bimorphic-check-structure-elimination   
                                                     10.1437+-0.2924           10.1345+-0.2469        
   get-by-val-with-string-chain-from-try-block   
                                                      7.7554+-0.1515            7.7073+-0.2146        
   get-by-val-with-string-check-structure-elimination   
                                                      9.2551+-0.2208            9.2445+-0.3326        
   get-by-val-with-string-proto-or-self              20.0782+-0.8870     ?     20.9498+-3.6699        ? might be 1.0434x slower
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple   
                                                      4.7977+-0.1413     ?      4.8262+-0.1067        ?
   get-by-val-with-string-self-or-proto              20.8973+-1.9607     ?     21.5134+-3.2013        ? might be 1.0295x slower
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple   
                                                      4.7748+-0.1371            4.7612+-0.1095        
   get-by-val-with-symbol-bimorphic-check-structure-elimination   
                                                     19.3663+-0.4450     ?     19.5701+-0.4871        ? might be 1.0105x slower
   get-by-val-with-symbol-chain-from-try-block   
                                                      7.8145+-0.3819     ?      8.0042+-0.4132        ? might be 1.0243x slower
   get-by-val-with-symbol-check-structure-elimination   
                                                     18.5794+-0.2509           18.3350+-0.4655          might be 1.0133x faster
   get-by-val-with-symbol-proto-or-self              20.3610+-1.3665     ?     21.6561+-2.9897        ? might be 1.0636x slower
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple   
                                                      5.7035+-0.1168     ?      5.7230+-0.1606        ?
   get-by-val-with-symbol-self-or-proto              21.1887+-2.8359           20.4617+-0.2199          might be 1.0355x faster
   get_callee_monomorphic                             3.7474+-0.2068            3.6798+-0.1071          might be 1.0184x faster
   get_callee_polymorphic                             4.7731+-0.2831            4.7596+-0.1015        
   getter-no-activation                               5.8510+-0.3127     ?      5.8790+-0.0862        ?
   getter-prototype                                  14.2033+-0.4373           14.1389+-0.2406        
   getter-richards                                  130.1267+-4.4292          127.6689+-6.3784          might be 1.0193x faster
   getter                                             7.4402+-0.1331     ?      7.4572+-0.1166        ?
   global-object-access-with-mutating-structure   
                                                      7.5618+-0.2010     ?      7.6537+-0.3098        ? might be 1.0122x slower
   global-var-const-infer-fire-from-opt               1.4100+-0.2977            1.3825+-0.2350          might be 1.0199x faster
   global-var-const-infer                             1.0599+-0.1280     ?      1.1152+-0.1087        ? might be 1.0522x slower
   hard-overflow-check-equal                         60.4600+-0.4826     ?     60.8538+-1.8088        ?
   hard-overflow-check                               60.2836+-1.7588     ?     60.3361+-1.8415        ?
   HashMap-put-get-iterate-keys                      33.8110+-0.7541     ?     33.9781+-0.5562        ?
   HashMap-put-get-iterate                           33.6450+-0.8278           33.2700+-0.6203          might be 1.0113x faster
   HashMap-string-put-get-iterate                    36.9426+-2.4992     ?     37.4179+-1.7641        ? might be 1.0129x slower
   hoist-make-rope                                   13.0765+-1.5219           12.1495+-0.8763          might be 1.0763x faster
   hoist-poly-check-structure-effectful-loop   
                                                      6.6782+-0.1737     ?      6.6833+-0.2162        ?
   hoist-poly-check-structure                         5.0175+-0.2020     ?      5.1312+-0.1272        ? might be 1.0227x slower
   imul-double-only                                   8.7800+-0.2944     ?      9.1215+-0.3723        ? might be 1.0389x slower
   imul-int-only                                     10.5558+-0.3867     ?     10.6564+-0.6530        ?
   imul-mixed                                         7.8847+-0.1479     ?      8.5661+-0.9432        ? might be 1.0864x slower
   in-four-cases                                     25.2771+-0.4533     ?     25.3773+-0.1168        ?
   in-one-case-false                                 14.8396+-0.2734           14.7167+-0.1469        
   in-one-case-true                                  14.9918+-0.9301           14.9078+-0.0656        
   in-two-cases                                      15.4725+-0.3908           15.4370+-0.2689        
   indexed-properties-in-objects                      3.8207+-0.0599     ?      3.8942+-0.0742        ? might be 1.0192x slower
   infer-closure-const-then-mov-no-inline             4.8735+-0.0286     ?      4.9064+-0.0954        ?
   infer-closure-const-then-mov                      21.5792+-0.3400     ?     22.0696+-1.6182        ? might be 1.0227x slower
   infer-closure-const-then-put-to-scope-no-inline   
                                                     15.6147+-0.2048     ?     15.7830+-0.1540        ? might be 1.0108x slower
   infer-closure-const-then-put-to-scope             28.0709+-0.2021     ?     28.2794+-0.7872        ?
   infer-closure-const-then-reenter-no-inline   
                                                     70.7915+-0.2727     ?     70.9719+-0.3063        ?
   infer-closure-const-then-reenter                  32.7182+-0.4137           32.3308+-1.5897          might be 1.0120x faster
   infer-constant-global-property                     4.8712+-0.1624     ?      4.9017+-0.1474        ?
   infer-constant-property                            3.4046+-0.1113            3.3521+-0.1851          might be 1.0157x faster
   infer-one-time-closure-ten-vars                   11.4140+-0.3681           11.3251+-0.3175        
   infer-one-time-closure-two-vars                   10.8627+-0.5122           10.6718+-0.6652          might be 1.0179x faster
   infer-one-time-closure                            10.7178+-0.1775     ?     10.8133+-0.3497        ?
   infer-one-time-deep-closure                       18.2063+-0.5893           17.9438+-0.6596          might be 1.0146x faster
   inline-arguments-access                            5.9609+-0.1595     ?      6.1211+-0.1870        ? might be 1.0269x slower
   inline-arguments-aliased-access                    6.0837+-0.2128     ?      6.2505+-0.2303        ? might be 1.0274x slower
   inline-arguments-local-escape                      6.1401+-0.1727     ?      6.1685+-0.4340        ?
   inline-get-scoped-var                              5.7383+-0.1515            5.7112+-0.0457        
   inlined-put-by-id-transition                      17.1307+-0.3459     ?     17.1511+-0.1765        ?
   inlined-put-by-val-with-string-transition   
                                                    114.3830+-6.4419     ?    117.9223+-5.7117        ? might be 1.0309x slower
   inlined-put-by-val-with-symbol-transition   
                                                    109.5823+-6.1014     ?    113.1262+-4.8190        ? might be 1.0323x slower
   int-or-other-abs-then-get-by-val                   6.5796+-0.1552     ?      6.6555+-0.1339        ? might be 1.0115x slower
   int-or-other-abs-zero-then-get-by-val             27.5446+-0.4873     ?     27.7777+-0.8846        ?
   int-or-other-add-then-get-by-val                   6.0157+-0.1155     ?      6.1085+-0.0462        ? might be 1.0154x slower
   int-or-other-add                                   8.2922+-0.1273            8.2055+-0.1984          might be 1.0106x faster
   int-or-other-div-then-get-by-val                   5.0861+-0.0717            5.0529+-0.2277        
   int-or-other-max-then-get-by-val                   5.0404+-0.0990     ?      5.1484+-0.1040        ? might be 1.0214x slower
   int-or-other-min-then-get-by-val                   5.1449+-0.1694     ?      5.1847+-0.1172        ?
   int-or-other-mod-then-get-by-val                   5.0728+-0.2710            4.9891+-0.1989          might be 1.0168x faster
   int-or-other-mul-then-get-by-val                   5.0888+-0.1690     ?      5.1559+-0.0353        ? might be 1.0132x slower
   int-or-other-neg-then-get-by-val                   5.6775+-0.0913     ?      5.7433+-0.0780        ? might be 1.0116x slower
   int-or-other-neg-zero-then-get-by-val             27.6607+-0.4035     ?     27.9297+-0.6148        ?
   int-or-other-sub-then-get-by-val                   6.1187+-0.0402            6.1034+-0.0579        
   int-or-other-sub                                   5.3409+-0.2102            5.3207+-0.1465        
   int-overflow-local                                 6.0917+-0.0884     ?      6.2495+-0.3135        ? might be 1.0259x slower
   Int16Array-alloc-long-lived                       65.4407+-0.6280     ?     65.9910+-0.4964        ?
   Int16Array-bubble-sort-with-byteLength            35.0176+-0.3453     ?     35.7781+-1.5192        ? might be 1.0217x slower
   Int16Array-bubble-sort                            34.9700+-0.1391     ?     35.0272+-0.2580        ?
   Int16Array-load-int-mul                            1.9973+-0.0738     ?      2.0782+-0.1583        ? might be 1.0405x slower
   Int16Array-to-Int32Array-set                      71.9913+-0.8145     ?     72.6465+-1.2069        ?
   Int32Array-alloc-large                            32.8768+-1.0092     ?     33.8290+-2.6778        ? might be 1.0290x slower
   Int32Array-alloc-long-lived                       75.3970+-3.3213           74.7645+-0.7745        
   Int32Array-alloc                                   4.4984+-0.0660     ?      4.6203+-0.2741        ? might be 1.0271x slower
   Int32Array-Int8Array-view-alloc                    9.3253+-0.4487            9.1780+-0.1329          might be 1.0160x faster
   int52-spill                                        7.1403+-0.2436     ?      7.2697+-0.1474        ? might be 1.0181x slower
   Int8Array-alloc-long-lived                        58.2586+-1.2810     ?     58.3925+-1.1054        ?
   Int8Array-load-with-byteLength                     4.8538+-0.1546     ?      4.8808+-0.1958        ?
   Int8Array-load                                     4.8267+-0.1046     ?      4.8339+-0.0705        ?
   integer-divide                                    14.1480+-0.1135           13.9567+-0.0822          might be 1.0137x faster
   integer-modulo                                     2.7315+-0.0792     ?      2.8090+-0.1162        ? might be 1.0284x slower
   is-boolean-fold-tricky                             5.6492+-0.2014     ?      5.6583+-0.1570        ?
   is-boolean-fold                                    4.0565+-0.0920            4.0261+-0.0917        
   is-function-fold-tricky-internal-function   
                                                     15.1768+-0.7153           14.8912+-0.1649          might be 1.0192x faster
   is-function-fold-tricky                            5.7668+-0.1513     ?      5.8277+-0.1530        ? might be 1.0106x slower
   is-function-fold                                   4.0627+-0.1606            4.0580+-0.1062        
   is-number-fold-tricky                              5.6876+-0.1414     ?      5.6945+-0.1246        ?
   is-number-fold                                     4.0385+-0.1321     ?      4.1057+-0.0907        ? might be 1.0166x slower
   is-object-or-null-fold-functions                   4.1446+-0.1846     ?      4.1472+-0.1345        ?
   is-object-or-null-fold-less-tricky                 5.8080+-0.1104            5.7712+-0.1857        
   is-object-or-null-fold-tricky                      7.4338+-0.1782     ?      7.4620+-0.1432        ?
   is-object-or-null-fold                             4.0812+-0.1433            4.0163+-0.0449          might be 1.0162x faster
   is-object-or-null-trickier-function                5.8040+-0.0482     ?      5.8326+-0.0781        ?
   is-object-or-null-trickier-internal-function   
                                                     15.5937+-0.1726     ?     15.6030+-0.2450        ?
   is-object-or-null-tricky-function                  5.8270+-0.0685            5.7928+-0.1258        
   is-object-or-null-tricky-internal-function   
                                                     11.4726+-0.1932           11.3204+-0.2569          might be 1.0134x faster
   is-string-fold-tricky                              5.7000+-0.0526            5.6727+-0.1572        
   is-string-fold                                     4.0598+-0.0507            4.0576+-0.1196        
   is-undefined-fold-tricky                           4.8572+-0.0729            4.8502+-0.1989        
   is-undefined-fold                                  3.9895+-0.1178     ?      4.0062+-0.0833        ?
   JSONP-negative-0                                   0.4133+-0.0742     ?      0.4587+-0.0402        ? might be 1.1099x slower
   large-int-captured                                 6.4138+-0.6668     ?      6.7441+-0.2263        ? might be 1.0515x slower
   large-int-neg                                     19.8516+-0.3593           19.6356+-0.4744          might be 1.0110x faster
   large-int                                         17.8601+-0.4099           17.7438+-1.1059        
   load-varargs-elimination                          29.8640+-1.0257     ?     30.3342+-1.8685        ? might be 1.0157x slower
   logical-not-weird-types                            5.1385+-0.2365     ?      5.1612+-0.1272        ?
   logical-not                                        6.6078+-0.3135     ?      6.6868+-0.3499        ? might be 1.0120x slower
   lots-of-fields                                    16.1671+-0.4559     ?     16.2050+-0.3527        ?
   make-indexed-storage                               4.1417+-0.4605     ?      4.3248+-0.1302        ? might be 1.0442x slower
   make-rope-cse                                      6.6580+-0.1481            6.6235+-0.2081        
   marsaglia-larger-ints                             53.5493+-0.8255     ?     54.2161+-2.4547        ? might be 1.0125x slower
   marsaglia-osr-entry                               31.1308+-15.7311          26.2458+-0.4494          might be 1.1861x faster
   math-with-out-of-bounds-array-values              33.2242+-1.9253           32.3027+-0.4613          might be 1.0285x faster
   max-boolean                                        3.3350+-0.1026     ?      3.3630+-0.2236        ?
   method-on-number                                  23.0524+-0.8926           23.0385+-0.8280        
   min-boolean                                        3.3583+-0.1683     ?      3.4529+-0.1220        ? might be 1.0282x slower
   minus-boolean-double                               4.3516+-0.1767            4.2438+-0.1137          might be 1.0254x faster
   minus-boolean                                      3.4257+-0.1479            3.3100+-0.0671          might be 1.0350x faster
   misc-strict-eq                                    46.2297+-1.3723           45.8906+-1.1330        
   mod-boolean-double                                11.9110+-0.3685     ?     11.9793+-0.2826        ?
   mod-boolean                                        9.0388+-0.4352     ?      9.2078+-0.1053        ? might be 1.0187x slower
   mul-boolean-double                                 4.9370+-0.1819     ?      4.9413+-0.0530        ?
   mul-boolean                                        3.6316+-0.0667            3.6168+-0.0787        
   neg-boolean                                        4.2172+-0.1181     ?      4.2320+-0.1103        ?
   negative-zero-divide                               0.6102+-0.1636            0.5792+-0.1328          might be 1.0534x faster
   negative-zero-modulo                               0.5063+-0.0202     ?      0.5460+-0.1367        ? might be 1.0785x slower
   negative-zero-negate                               0.5721+-0.1412            0.5478+-0.0978          might be 1.0443x faster
   nested-function-parsing                           72.0728+-0.4219     ?     72.3958+-0.4105        ?
   new-array-buffer-dead                            146.2168+-2.2701          145.1675+-1.4281        
   new-array-buffer-push                              9.8545+-0.1700     ?     10.1403+-0.1619        ? might be 1.0290x slower
   new-array-dead                                    19.0963+-1.8893           18.3168+-1.0613          might be 1.0426x faster
   new-array-push                                     5.5561+-0.1481            5.4167+-0.2667          might be 1.0257x faster
   no-inline-constructor                             50.7375+-0.8967           50.2914+-0.3864        
   number-test                                        4.4644+-0.1121            4.4392+-0.1615        
   object-closure-call                                7.8126+-0.1458     ?      7.8765+-0.0700        ?
   object-get-own-property-symbols-on-large-array   
                                                      5.1237+-0.5919            5.0742+-0.2733        
   object-test                                        4.2249+-0.2312            4.2098+-0.0991        
   obvious-sink-pathology-taken                     172.8404+-4.0011          172.4941+-2.1343        
   obvious-sink-pathology                           158.3254+-1.4669     ?    159.7570+-1.7128        ?
   obviously-elidable-new-object                     43.2120+-1.5581     ?     43.4961+-1.4111        ?
   plus-boolean-arith                                 3.3420+-0.1929            3.3252+-0.1405        
   plus-boolean-double                                4.3015+-0.0999            4.2901+-0.1269        
   plus-boolean                                       3.2446+-0.1412            3.1965+-0.1338          might be 1.0150x faster
   poly-chain-access-different-prototypes-simple   
                                                      5.0810+-0.1166            5.0374+-0.0825        
   poly-chain-access-different-prototypes             5.1033+-0.1141     ?      5.1947+-0.0884        ? might be 1.0179x slower
   poly-chain-access-simpler                          5.1234+-0.1584            5.1129+-0.0789        
   poly-chain-access                                  4.9783+-0.1343            4.9636+-0.1530        
   poly-stricteq                                     80.1172+-3.5774           79.6475+-2.3682        
   polymorphic-array-call                             1.9498+-0.3202     ?      1.9592+-0.0953        ?
   polymorphic-get-by-id                              3.8221+-0.0784     ?      3.8912+-0.2038        ? might be 1.0181x slower
   polymorphic-put-by-id                             37.2547+-1.2830           36.0667+-2.2726          might be 1.0329x faster
   polymorphic-put-by-val-with-string                38.0490+-4.9596           37.7552+-3.7658        
   polymorphic-put-by-val-with-symbol                39.6910+-3.9243     ?     40.2683+-1.7645        ? might be 1.0145x slower
   polymorphic-structure                             23.6878+-0.2442           23.4798+-0.2981        
   polyvariant-monomorphic-get-by-id                 11.5134+-0.0756     ?     11.6885+-0.1888        ? might be 1.0152x slower
   proto-getter-access                               10.3953+-0.5266           10.2810+-0.3991          might be 1.0111x faster
   prototype-access-with-mutating-prototype           7.5663+-0.4764            7.5572+-0.2775        
   put-by-id-replace-and-transition                  12.6980+-0.5678           12.6730+-0.3493        
   put-by-id-slightly-polymorphic                     3.5540+-0.0970            3.5434+-0.0790        
   put-by-id                                         18.4845+-0.8375     ?     18.9078+-0.8021        ? might be 1.0229x slower
   put-by-val-direct                                  0.6017+-0.0945     ?      0.6047+-0.1298        ?
   put-by-val-large-index-blank-indexing-type   
                                                      8.4907+-0.3128     ?      8.6899+-0.5692        ? might be 1.0235x slower
   put-by-val-machine-int                             3.6626+-0.1386     ?      3.7459+-0.2997        ? might be 1.0227x slower
   put-by-val-with-string-replace-and-transition   
                                                     18.8735+-0.4719     ?     19.5501+-0.4321        ? might be 1.0359x slower
   put-by-val-with-string-slightly-polymorphic   
                                                      4.6506+-0.0434            4.6218+-0.0812        
   put-by-val-with-string                            19.4742+-0.4781           19.3607+-0.2616        
   put-by-val-with-symbol-replace-and-transition   
                                                     20.8197+-0.5530     ?     20.9518+-0.5820        ?
   put-by-val-with-symbol-slightly-polymorphic   
                                                      4.6487+-0.1842     ?      4.6762+-0.1238        ?
   put-by-val-with-symbol                            19.3850+-0.4845     ?     19.3936+-0.7593        ?
   rare-osr-exit-on-local                            16.8043+-0.5209           16.7222+-0.2299        
   register-pressure-from-osr                        27.0998+-0.1271     ?     27.1456+-0.1920        ?
   repeat-multi-get-by-offset                        29.4512+-0.3222           29.0771+-0.3966          might be 1.0129x faster
   setter-prototype                                  11.1748+-0.4941     ?     11.2009+-0.4376        ?
   setter                                             6.8228+-0.1663     ?      6.9048+-0.1356        ? might be 1.0120x slower
   simple-activation-demo                            33.5602+-0.0627           33.4155+-0.1937        
   simple-getter-access                              14.0812+-0.5172     ?     14.2283+-0.3098        ? might be 1.0104x slower
   simple-poly-call-nested                            9.0899+-0.2475     ?      9.2321+-0.3667        ? might be 1.0156x slower
   simple-poly-call                                   1.8206+-0.0868     ?      1.8574+-0.1426        ? might be 1.0202x slower
   sin-boolean                                       20.8203+-0.7948     ?     21.1702+-0.7888        ? might be 1.0168x slower
   singleton-scope                                   84.4256+-1.3345     ?     84.9225+-2.8574        ?
   sink-function                                     13.5368+-0.5343           13.5246+-0.4149        
   sink-huge-activation                              20.2505+-0.9823     ?     20.6418+-1.3189        ? might be 1.0193x slower
   sinkable-new-object-dag                           84.5868+-0.6755           84.2952+-0.5284        
   sinkable-new-object-taken                         67.0085+-1.2592     ?     67.4115+-1.3893        ?
   sinkable-new-object                               48.0883+-3.4321           47.6657+-4.0284        
   slow-array-profile-convergence                     3.9409+-0.0954            3.9258+-0.2226        
   slow-convergence                                   3.8490+-0.1508            3.8125+-0.2461        
   slow-ternaries                                    33.2820+-0.5048           32.7756+-1.0019          might be 1.0155x faster
   sorting-benchmark                                 25.3578+-0.8161     ?     25.4520+-1.0394        ?
   sparse-conditional                                 1.7038+-0.0677     ?      1.7442+-0.1229        ? might be 1.0237x slower
   splice-to-remove                                  19.1769+-0.2828     ?     19.1800+-0.1084        ?
   string-char-code-at                               20.8522+-0.2118           20.7590+-0.2139        
   string-concat-object                               3.2493+-0.0870            3.1763+-0.1073          might be 1.0230x faster
   string-concat-pair-object                          3.1715+-0.1328     ?      3.1948+-0.1924        ?
   string-concat-pair-simple                         17.0702+-0.3368           16.9003+-0.2907          might be 1.0101x faster
   string-concat-simple                              17.4120+-0.4866     ?     17.5608+-0.7066        ?
   string-cons-repeat                                11.5793+-0.7387           11.5240+-0.1351        
   string-cons-tower                                 10.3281+-0.0970     !     10.8531+-0.1027        ! definitely 1.0508x slower
   string-equality                                   22.8758+-0.5852     ?     23.1566+-0.4394        ? might be 1.0123x slower
   string-get-by-val-big-char                        11.0356+-0.1645           10.9299+-0.1516        
   string-get-by-val-out-of-bounds-insane             5.0178+-0.1928            4.9861+-0.2782        
   string-get-by-val-out-of-bounds                    6.9396+-0.0893            6.9014+-0.1616        
   string-get-by-val                                  4.7939+-0.1256     ?      4.8410+-0.1491        ?
   string-hash                                        2.7419+-0.0736     ?      2.8688+-0.0706        ? might be 1.0463x slower
   string-long-ident-equality                        18.8074+-0.0862           18.7390+-0.1929        
   string-out-of-bounds                              15.0411+-0.4715     ?     15.2696+-0.6961        ? might be 1.0152x slower
   string-repeat-arith                               42.7178+-1.3654     ?     42.9442+-0.4371        ?
   string-sub                                        84.4343+-3.0118     ?     86.0114+-1.0327        ? might be 1.0187x slower
   string-test                                        4.4930+-0.1272            4.4663+-0.0886        
   string-var-equality                               59.5635+-2.9001     ?     60.2244+-1.6241        ? might be 1.0111x slower
   structure-hoist-over-transitions                   3.6000+-0.2475     ?      3.7130+-0.0466        ? might be 1.0314x slower
   substring-concat-weird                            58.0670+-0.2876     ?     58.9647+-2.4670        ? might be 1.0155x slower
   substring-concat                                  62.3072+-0.2284     !     62.7437+-0.1889        ! definitely 1.0070x slower
   substring                                         69.2201+-0.3329     ?     69.3810+-0.9940        ?
   switch-char-constant                               3.4011+-0.1456     ?      3.4210+-0.1559        ?
   switch-char                                        7.9564+-0.1473     ?      7.9640+-0.0499        ?
   switch-constant                                   13.3135+-2.0429     ?     14.6697+-1.5656        ? might be 1.1019x slower
   switch-string-basic-big-var                       31.8267+-0.9428     ?     31.9996+-0.3666        ?
   switch-string-basic-big                           29.4371+-1.2160     ?     29.7672+-0.7792        ? might be 1.0112x slower
   switch-string-basic-var                           31.6559+-1.0026     ?     32.3504+-0.6846        ? might be 1.0219x slower
   switch-string-basic                               20.5031+-1.4892           20.0071+-1.0090          might be 1.0248x faster
   switch-string-big-length-tower-var                28.1355+-0.9756           27.8248+-0.9752          might be 1.0112x faster
   switch-string-length-tower-var                    20.7993+-0.2221     ?     20.8152+-0.1714        ?
   switch-string-length-tower                        14.9489+-0.2551     ?     14.9540+-0.3016        ?
   switch-string-short                               15.2338+-0.2888           15.0000+-0.2771          might be 1.0156x faster
   switch                                            16.2444+-1.5457     ?     16.7495+-1.9505        ? might be 1.0311x slower
   tear-off-arguments-simple                          4.4763+-0.2081            4.4656+-0.1902        
   tear-off-arguments                                 6.2977+-0.2889     ?      6.3038+-0.2952        ?
   temporal-structure                                16.6071+-0.4085           16.4213+-0.0995          might be 1.0113x faster
   to-int32-boolean                                  21.3875+-0.6480           21.2475+-0.1689        
   try-catch-get-by-val-cloned-arguments             20.6373+-0.4093           20.6047+-0.6839        
   try-catch-get-by-val-direct-arguments              9.9358+-0.2242     ?     10.0714+-0.4843        ? might be 1.0136x slower
   try-catch-get-by-val-scoped-arguments             11.4075+-0.2331           11.2610+-0.1621          might be 1.0130x faster
   typed-array-get-set-by-val-profiling              32.4664+-1.6927     ?     32.5465+-0.7885        ?
   undefined-property-access                        469.5744+-8.8029          463.1611+-2.7299          might be 1.0138x faster
   undefined-test                                     4.7151+-0.1559            4.6427+-0.1701          might be 1.0156x faster
   unprofiled-licm                                   23.7433+-0.1846           23.6940+-0.6978        
   varargs-call                                      18.5705+-0.2302           18.4597+-0.2212        
   varargs-construct-inline                          36.1083+-0.9512           36.0655+-0.3023        
   varargs-construct                                 30.1324+-0.9117           29.7595+-0.1950          might be 1.0125x faster
   varargs-inline                                    12.4796+-0.2342           12.3530+-0.2095          might be 1.0103x faster
   varargs-strict-mode                               14.6041+-0.1320     !    241.2838+-9.0598        ! definitely 16.5217x slower
   varargs                                           14.5745+-0.2275     ?     14.5799+-0.1586        ?
   weird-inlining-const-prop                          3.1784+-0.0634     ?      3.2510+-0.1277        ? might be 1.0229x slower

   <geometric>                                       11.7445+-0.0365     !     11.8852+-0.0214        ! definitely 1.0120x slower

                                                         Baseline           TailCallLLintBaseline                               
AsmBench:
   bigfib.cpp                                       677.4565+-8.2618          673.8677+-32.1066       
   cray.c                                           618.7600+-9.8398     ?    621.1315+-1.9756        ?
   dry.c                                            638.7906+-90.4474    ?    662.5519+-78.3183       ? might be 1.0372x slower
   FloatMM.c                                        918.8600+-2.1928          917.6738+-1.6431        
   gcc-loops.cpp                                   5984.3683+-52.0262        5960.7186+-22.2085       
   n-body.c                                        1686.1657+-30.7672        1679.4186+-31.3262       
   Quicksort.c                                      568.8926+-12.4465         567.8512+-13.8601       
   stepanov_container.cpp                          4848.8120+-79.3638        4843.8467+-18.5891       
   Towers.c                                         397.2208+-1.4369     ^    394.4124+-0.7819        ^ definitely 1.0071x faster

   <geometric>                                     1117.2533+-16.8660    ?   1119.2870+-16.8775       ? might be 1.0018x slower

                                                         Baseline           TailCallLLintBaseline                               
CompressionBench:
   huffman                                           80.1432+-1.3473           80.1425+-0.9337        
   arithmetic-simple                                431.2031+-2.9249     ?    432.0532+-0.9470        ?
   arithmetic-precise                               359.8757+-1.2113     ?    361.7055+-3.9750        ?
   arithmetic-complex-precise                       363.4456+-6.6797          361.0577+-6.7346        
   arithmetic-precise-order-0                       441.0519+-3.4260          440.1137+-2.0113        
   arithmetic-precise-order-1                       416.1600+-2.3150     ?    422.9104+-6.1984        ? might be 1.0162x slower
   arithmetic-precise-order-2                       485.2374+-6.1892     ?    485.5505+-3.6091        ?
   arithmetic-simple-order-1                        494.8174+-2.0553     ?    500.0624+-8.3118        ? might be 1.0106x slower
   arithmetic-simple-order-2                        552.2460+-2.2475     ?    553.2711+-5.5514        ?
   lz-string                                        446.0264+-20.1157         431.0753+-4.3037          might be 1.0347x faster

   <geometric>                                      370.7313+-0.9445          370.4938+-0.8587          might be 1.0006x faster

                                                         Baseline           TailCallLLintBaseline                               
Geomean of preferred means:
   <scaled-result>                                   79.1708+-0.1081     ?     79.4588+-0.2945        ? might be 1.0036x slower
Comment 10 Build Bot 2015-09-10 17:55:34 PDT
Comment on attachment 260971 [details]
Prior patch with tabs removed.

Attachment 260971 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/158658

New failing tests:
js/dfg-strict-mode-to-this.html
Comment 11 Build Bot 2015-09-10 17:55:38 PDT
Created attachment 260976 [details]
Archive of layout-test-results from ews104 for mac-mavericks-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews104  Port: mac-mavericks-wk2  Platform: Mac OS X 10.9.5
Comment 12 Build Bot 2015-09-10 18:10:06 PDT
Comment on attachment 260971 [details]
Prior patch with tabs removed.

Attachment 260971 [details] did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/158696

New failing tests:
js/dfg-strict-mode-to-this.html
Comment 13 Build Bot 2015-09-10 18:10:10 PDT
Created attachment 260978 [details]
Archive of layout-test-results from ews103 for mac-mavericks

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103  Port: mac-mavericks  Platform: Mac OS X 10.9.5
Comment 14 Michael Saboff 2015-09-10 20:11:04 PDT
Created attachment 260985 [details]
Updated patch

Speculative fix for linux build.
Turned LayoutTests/js/dfg-strict-mode-to-this.html into a simple test as it will never terminate without tail calls enabled for the DFG.  Will restore and re-enable the test as part of https://bugs.webkit.org/show_bug.cgi?id=148663.
Comment 15 Filip Pizlo 2015-09-14 10:13:38 PDT
Comment on attachment 260985 [details]
Updated patch

Seems super dangerous to land this, unless we also disable use of op_tail_call and op_tail_call_varargs.  This is because this patch disables DFG/FTL when those opcodes are in use.  Prior to this patch, such code would end up in the DFG/FTL just fine, because it would be using op_call/op_call_varargs instead.  Otherwise, LGTM.

Is it possible to create an Options thing that disables this for now, say by not emitting op_tail_call in BytecodeGenerator?  The new tests could be made to run with --enableTailCalls=true.  When the DFG and FTL support is landed, we can turn it on.  Anyway, such an option will be super useful in the future - if anyone claims to find a regression due to tail calls, we can just flip the switch to check if tail calls are at fault.
Comment 16 Michael Saboff 2015-09-14 16:34:21 PDT
(In reply to comment #15)
> Comment on attachment 260985 [details]
> Updated patch
> 
> Seems super dangerous to land this, unless we also disable use of
> op_tail_call and op_tail_call_varargs.  This is because this patch disables
> DFG/FTL when those opcodes are in use.  Prior to this patch, such code would
> end up in the DFG/FTL just fine, because it would be using
> op_call/op_call_varargs instead.  Otherwise, LGTM.
> 
> Is it possible to create an Options thing that disables this for now, say by
> not emitting op_tail_call in BytecodeGenerator?  The new tests could be made
> to run with --enableTailCalls=true.  When the DFG and FTL support is landed,
> we can turn it on.  Anyway, such an option will be super useful in the
> future - if anyone claims to find a regression due to tail calls, we can
> just flip the switch to check if tail calls are at fault.

The patch already adds the enableTailCalls option.  I changed its default value to false and modified the new tests accordingly.
Comment 17 Michael Saboff 2015-09-14 16:51:41 PDT
Updated performance results with tail calls disabled by default.

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

VMs tested:
"Baseline" at /Volumes/Data/src/webkit.baseline/WebKitBuild/Release/JavaScriptCore.framework/Versions/A/Resources/jsc
"EnableTailCall" 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               EnableTailCall                                  
SunSpider:
   3d-cube                                    7.9787+-0.3502     ?      8.1906+-0.3744        ? might be 1.0266x slower
   3d-morph                                   8.1746+-0.3164            8.0234+-0.1431          might be 1.0188x faster
   3d-raytrace                                8.8362+-0.3590     ?      8.8875+-0.2331        ?
   access-binary-trees                        3.1159+-0.2532            3.0709+-0.2360          might be 1.0147x faster
   access-fannkuch                            8.7685+-0.2219            8.5602+-0.2567          might be 1.0243x faster
   access-nbody                               4.4216+-0.1088            4.2797+-0.0487          might be 1.0332x faster
   access-nsieve                              4.5527+-0.1635            4.4366+-0.1155          might be 1.0262x faster
   bitops-3bit-bits-in-byte                   1.7042+-0.1716     ?      1.7542+-0.1749        ? might be 1.0293x slower
   bitops-bits-in-byte                        5.6108+-0.0857            5.6000+-0.1137        
   bitops-bitwise-and                         2.8146+-0.1993            2.7955+-0.2204        
   bitops-nsieve-bits                         4.2871+-0.1013     ?      4.3180+-0.0781        ?
   controlflow-recursive                      3.3831+-0.0668            3.3395+-0.0341          might be 1.0131x faster
   crypto-aes                                 6.3668+-0.3041     ?      6.5012+-0.1836        ? might be 1.0211x slower
   crypto-md5                                 4.1866+-0.1507     ^      3.8560+-0.1752        ^ definitely 1.0858x faster
   crypto-sha1                                3.4173+-0.1180            3.4067+-0.2076        
   date-format-tofte                         12.6700+-1.1440     ?     13.1775+-0.8491        ? might be 1.0401x slower
   date-format-xparb                          7.8401+-0.1879     ?      7.8452+-0.2632        ?
   math-cordic                                4.4442+-0.2025     ?      4.5212+-0.1422        ? might be 1.0173x slower
   math-partial-sums                          9.9587+-0.1533     ?     10.0480+-0.1347        ?
   math-spectral-norm                         3.0797+-0.2335     ?      3.1287+-0.0763        ? might be 1.0159x slower
   regexp-dna                                10.3685+-0.3506            9.8422+-0.3228          might be 1.0535x faster
   string-base64                              6.8195+-0.1605            6.7132+-0.1649          might be 1.0158x faster
   string-fasta                               9.3681+-0.1838            9.1815+-0.1937          might be 1.0203x faster
   string-tagcloud                           12.9913+-0.5309           12.9171+-0.4813        
   string-unpack-code                        27.2876+-0.5922     ?     27.9875+-0.6440        ? might be 1.0256x slower
   string-validate-input                      6.7988+-0.2010     ?      6.9005+-0.1366        ? might be 1.0150x slower

   <arithmetic>                               7.2787+-0.0503     ?      7.2801+-0.0688        ? might be 1.0002x slower

                                                 Baseline               EnableTailCall                                  
LongSpider:
   3d-cube                                 1167.1637+-15.7118        1160.9732+-10.8831       
   3d-morph                                1885.5887+-5.6235     ?   1888.7269+-4.5676        ?
   3d-raytrace                             1000.0950+-6.4235     ?   1001.0823+-19.5209       ?
   access-binary-trees                     1419.8430+-20.5413    ?   1422.2787+-17.1661       ?
   access-fannkuch                          451.7099+-22.5342         450.1942+-14.9763       
   access-nbody                            1034.4722+-39.6714        1014.9007+-2.3640          might be 1.0193x faster
   access-nsieve                            684.3599+-19.7313         681.8265+-11.5708       
   bitops-3bit-bits-in-byte                  44.8321+-0.5736     ?     44.9542+-0.5128        ?
   bitops-bits-in-byte                      340.5080+-9.0539          340.2966+-7.6170        
   bitops-nsieve-bits                       624.3997+-20.1850    ?    628.6476+-23.1317       ?
   controlflow-recursive                    748.5463+-3.0073          743.8698+-3.2913        
   crypto-aes                               907.0733+-28.1384         906.2454+-11.7713       
   crypto-md5                               800.1708+-27.7225         792.1677+-17.4619         might be 1.0101x faster
   crypto-sha1                             1061.4943+-10.4350    ?   1061.6551+-12.9467       ?
   date-format-tofte                       1001.1060+-54.8127         990.3685+-7.6843          might be 1.0108x faster
   date-format-xparb                       1172.7764+-60.3822    ^   1076.2301+-28.4371       ^ definitely 1.0897x faster
   hash-map                                 233.0875+-2.0525     ?    234.2341+-1.5749        ?
   math-cordic                              646.3778+-5.3533          642.2267+-3.4693        
   math-partial-sums                       1137.4988+-8.2042     ?   1141.1158+-10.4139       ?
   math-spectral-norm                      1077.2220+-34.7370        1065.6173+-3.6566          might be 1.0109x faster
   string-base64                            546.2556+-18.4637         539.5311+-7.9793          might be 1.0125x faster
   string-fasta                             583.9337+-10.6510    ?    586.0088+-12.0577       ?
   string-tagcloud                          284.1082+-5.3042     ?    290.3342+-7.3244        ? might be 1.0219x slower

   <geometric>                              672.1641+-3.1432          668.4708+-3.2632          might be 1.0055x faster

                                                 Baseline               EnableTailCall                                  
V8Spider:
   crypto                                    72.1465+-1.3158           71.7795+-2.0447        
   deltablue                                 92.2687+-4.5636           91.3663+-0.9497        
   earley-boyer                              64.4252+-1.4015           64.3504+-1.1525        
   raytrace                                  39.2795+-0.9601           39.0566+-1.0349        
   regexp                                   104.2842+-0.9249     ?    104.8156+-4.9734        ?
   richards                                  83.3737+-0.8321     ?     83.4599+-1.6499        ?
   splay                                     50.9180+-1.4405     !     53.3694+-0.6103        ! definitely 1.0481x slower

   <geometric>                               69.0082+-0.2851     ?     69.3184+-0.3781        ? might be 1.0045x slower

                                                 Baseline               EnableTailCall                                  
Octane:
   encrypt                                   0.30970+-0.00137          0.30709+-0.00646       
   decrypt                                   5.75351+-0.03406    ?     5.76574+-0.04003       ?
   deltablue                        x2       0.26619+-0.01426    ?     0.26991+-0.01606       ? might be 1.0140x slower
   earley                                    0.52744+-0.00658          0.52560+-0.01222       
   boyer                                     8.83008+-0.07762    ?     8.95108+-0.17284       ? might be 1.0137x slower
   navier-stokes                    x2       6.39343+-0.02680          6.38559+-0.02329       
   raytrace                         x2       1.59858+-0.01950    ?     1.63518+-0.12742       ? might be 1.0229x slower
   richards                         x2       0.17490+-0.00757          0.17275+-0.00129         might be 1.0124x faster
   splay                            x2       0.52325+-0.01017    !     0.57145+-0.01468       ! definitely 1.0921x slower
   regexp                           x2      39.59903+-1.29465         39.37680+-1.75011       
   pdfjs                            x2      60.28340+-0.92062    ?    60.99022+-0.90931       ? might be 1.0117x slower
   mandreel                         x2      68.88702+-0.91604         68.54950+-1.52330       
   gbemu                            x2      61.55142+-2.14390    ?    61.63182+-1.70110       ?
   closure                                   0.92961+-0.01382          0.92818+-0.01003       
   jquery                                   12.11622+-0.31260         11.97052+-0.11198         might be 1.0122x faster
   box2d                            x2      17.87444+-0.22994         17.69194+-0.08294         might be 1.0103x faster
   zlib                             x2     561.83974+-39.47269   ?   579.08148+-9.27994       ? might be 1.0307x slower
   typescript                       x2    1074.07153+-19.45717   ?  1081.31104+-29.93094      ?

   <geometric>                               9.14651+-0.09145    ?     9.22919+-0.08132       ? might be 1.0090x slower

                                                 Baseline               EnableTailCall                                  
Kraken:
   ai-astar                                  332.627+-5.083            331.841+-1.412         
   audio-beat-detection                       81.369+-2.814             80.468+-0.384           might be 1.0112x faster
   audio-dft                                 132.461+-7.311      ?     133.882+-7.323         ? might be 1.0107x slower
   audio-fft                                  58.759+-0.741      ?      59.308+-1.775         ?
   audio-oscillator                          102.651+-0.883            102.517+-0.961         
   imaging-darkroom                           96.495+-1.032             96.354+-0.922         
   imaging-desaturate                         90.172+-3.322             89.900+-1.002         
   imaging-gaussian-blur                     144.685+-1.062      ?     144.884+-1.959         ?
   json-parse-financial                       69.946+-1.008             69.765+-2.538         
   json-stringify-tinderbox                   40.982+-1.049             40.879+-0.192         
   stanford-crypto-aes                        64.921+-1.095      ?      65.021+-2.253         ?
   stanford-crypto-ccm                        59.481+-3.459             59.009+-3.346         
   stanford-crypto-pbkdf2                    145.604+-1.968            143.560+-4.133           might be 1.0142x faster
   stanford-crypto-sha256-iterative           58.433+-2.225             57.320+-0.830           might be 1.0194x faster

   <arithmetic>                              105.613+-0.222            105.336+-0.645           might be 1.0026x faster

                                                 Baseline               EnableTailCall                                  
Geomean of preferred means:
   <scaled-result>                           50.4289+-0.2223     ?     50.4848+-0.2794        ? might be 1.0011x slower
Comment 18 Michael Saboff 2015-09-14 20:00:47 PDT
Committed r189774: <http://trac.webkit.org/changeset/189774>
Comment 20 Csaba Osztrogonác 2015-09-15 07:00:54 PDT
A buildfix landed in http://trac.webkit.org/changeset/189805 .. but
the CLOOP build is still broken, I assume it fixed an other issue.
Comment 21 Csaba Osztrogonác 2015-09-15 08:56:43 PDT
(In reply to comment #18)
> Committed r189774: <http://trac.webkit.org/changeset/189774>

It made Speedometer/Full.html crash, see bug149162 for details.
Comment 22 Michael Saboff 2015-09-15 10:58:41 PDT
(In reply to comment #19)
> This broke CLOOP build with many errors:
> 
> https://build.webkit.org/builders/
> Apple%20Yosemite%20LLINT%20CLoop%20%28BuildAndTest%29/builds/9168/steps/
> compile-webkit/logs/stdio

Tracked in https://bugs.webkit.org/show_bug.cgi?id=149171.  Patch in the works.
Comment 23 Sukolsak Sakshuwong 2015-09-15 23:57:12 PDT
Comment on attachment 260985 [details]
Updated patch

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

> Source/JavaScriptCore/jit/JITOperations.cpp:856
> -                return reinterpret_cast<char*>(vm->getCTIStub(throwExceptionFromCallSlowPathGenerator).code().executableAddress());
> +                return encodeResult(
> +                    vm->getCTIStub(throwExceptionFromCallSlowPathGenerator).code().executableAddress(),
> +                    reinterpret_cast<void*>(KeepTheFrame));
>              }
>          } else {
>  #if ENABLE(WEBASSEMBLY)

Please also update the code in #if ENABLE(WEBASSEMBLY) to use encodeResult().
Comment 24 Michael Saboff 2015-09-16 16:35:38 PDT
Rolled out in r189848 <http://trac.webkit.org/changeset/189848>
Comment 25 Michael Saboff 2015-09-16 16:40:48 PDT
Committed r189884: <http://trac.webkit.org/changeset/189884>