Bug 144016 - Allow function allocation sinking
Summary: Allow function allocation sinking
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-04-21 15:07 PDT by Basile Clement
Modified: 2015-04-23 19:24 PDT (History)
5 users (show)

See Also:


Attachments
First patch (14.77 KB, patch)
2015-04-21 15:07 PDT, Basile Clement
no flags Details | Formatted Diff | Diff
Updated patch (18.11 KB, patch)
2015-04-23 16:15 PDT, Basile Clement
no flags Details | Formatted Diff | Diff
patch (24.13 KB, patch)
2015-04-23 18:33 PDT, Basile Clement
no flags 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-04-21 15:07:38 PDT
Created attachment 251267 [details]
First patch

Currently, only object allocations are sunk by the DFG allocation sinking phase.
This adds the ability to sink function allocations as well, test cases forthcoming.
Comment 1 Basile Clement 2015-04-23 16:15:17 PDT
Created attachment 251511 [details]
Updated patch

Hopefully correct; still needs more testing.


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

VMs tested:
"Trunk" at /Volumes/Data/Baseline/OpenSource/WebKitBuild/Release/jsc
"SinkNewFunction" at /Volumes/Data/WIP/OpenSource/WebKitBuild/SinkNewFunction/Release/jsc

Collected 6 samples per benchmark/VM, with 6 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.

                                                          Trunk                SinkNewFunction                                  
SunSpider:
   3d-cube                                            6.0558+-0.1599     ?      6.0763+-0.3087        ?
   3d-morph                                           7.6472+-0.8357            7.5072+-0.1487          might be 1.0187x faster
   3d-raytrace                                        7.5972+-0.6318            7.2291+-0.1731          might be 1.0509x faster
   access-binary-trees                                3.2697+-1.1773            3.0729+-0.3808          might be 1.0640x faster
   access-fannkuch                                    7.8368+-0.3975            7.8275+-0.3418        
   access-nbody                                       3.5932+-0.1365     ?      3.7218+-0.2385        ? might be 1.0358x slower
   access-nsieve                                      4.3672+-0.2186     ?      4.6677+-0.6555        ? might be 1.0688x slower
   bitops-3bit-bits-in-byte                           2.0238+-0.0807     ?      2.1459+-0.3880        ? might be 1.0603x slower
   bitops-bits-in-byte                                4.3754+-0.0859            4.3442+-0.0339        
   bitops-bitwise-and                                 2.9675+-0.0731            2.9280+-0.0436          might be 1.0135x faster
   bitops-nsieve-bits                                 4.3915+-0.2255            4.2960+-0.1076          might be 1.0222x faster
   controlflow-recursive                              2.7958+-0.1339     ?      3.0602+-0.3400        ? might be 1.0946x slower
   crypto-aes                                         5.2596+-0.2587     ?      5.2834+-0.3849        ?
   crypto-md5                                         2.9955+-0.0488            2.9941+-0.0879        
   crypto-sha1                                        3.1196+-0.2278            3.0096+-0.1434          might be 1.0365x faster
   date-format-tofte                                  9.6734+-0.3199            9.5031+-0.5819          might be 1.0179x faster
   date-format-xparb                                  6.8875+-0.2144     ?      7.0329+-0.3250        ? might be 1.0211x slower
   math-cordic                                        3.9131+-0.0398     ?      3.9821+-0.2475        ? might be 1.0176x slower
   math-partial-sums                                  6.4521+-0.3259            6.3316+-0.1028          might be 1.0190x faster
   math-spectral-norm                                 2.4428+-0.0526     ?      2.4634+-0.1486        ?
   regexp-dna                                         9.2357+-0.1056     ?      9.3337+-0.2050        ? might be 1.0106x slower
   string-base64                                      6.0031+-0.1161     ?      6.2082+-0.3828        ? might be 1.0342x slower
   string-fasta                                       8.1678+-0.0489     ?      8.2305+-0.0853        ?
   string-tagcloud                                   11.9602+-0.4285     ?     12.3446+-0.4499        ? might be 1.0321x slower
   string-unpack-code                                25.6421+-0.8688     ?     26.1412+-0.9284        ? might be 1.0195x slower
   string-validate-input                              6.1688+-0.1287            6.0859+-0.1378          might be 1.0136x faster

   <arithmetic>                                       6.3401+-0.0624     ?      6.3777+-0.0562        ? might be 1.0059x slower

                                                          Trunk                SinkNewFunction                                  
LongSpider:
   3d-cube                                         1146.0595+-4.5428     !   1158.0201+-3.2305        ! definitely 1.0104x slower
   3d-morph                                        2250.4303+-1.4919     ?   2250.4883+-1.2673        ?
   3d-raytrace                                      979.3950+-8.5092     ?    986.6629+-5.5882        ?
   access-binary-trees                             1209.9427+-5.8881         1203.7576+-6.0720        
   access-fannkuch                                  402.3108+-14.6796    ?    407.4455+-16.6382       ? might be 1.0128x slower
   access-nbody                                     815.6903+-1.5918     ^    805.0315+-0.9057        ^ definitely 1.0132x faster
   access-nsieve                                    896.6053+-10.6931         894.2331+-3.5723        
   bitops-3bit-bits-in-byte                          59.5577+-0.7368     ?     59.6522+-0.8439        ?
   bitops-bits-in-byte                              123.8816+-1.9319          120.8887+-6.0038          might be 1.0248x faster
   bitops-nsieve-bits                               917.8310+-7.4733          917.3359+-7.5826        
   controlflow-recursive                            680.5225+-0.6470     ?    680.5909+-1.1868        ?
   crypto-aes                                       808.8571+-1.9803          807.1617+-4.2809        
   crypto-md5                                       777.9714+-6.6105          776.4615+-2.4666        
   crypto-sha1                                      856.0246+-16.1174         853.6294+-15.2408       
   date-format-tofte                                754.1829+-11.4313    ?    756.5376+-11.0543       ?
   date-format-xparb                                914.3832+-2.8010     ?    922.4829+-5.3666        ?
   math-cordic                                      745.0096+-1.1358          744.5284+-0.9926        
   math-partial-sums                                622.1131+-0.2711     !    625.6687+-0.3868        ! definitely 1.0057x slower
   math-spectral-norm                               826.8765+-2.4319          825.6265+-0.7580        
   string-base64                                    472.9468+-3.7305          471.5063+-5.8218        
   string-fasta                                     600.6385+-109.2036        556.5824+-3.3802          might be 1.0792x faster
   string-tagcloud                                  276.2345+-2.4752          275.7115+-2.4843        

   <geometric>                                      634.9739+-4.6945          632.7599+-2.7923          might be 1.0035x faster

                                                          Trunk                SinkNewFunction                                  
V8Spider:
   crypto                                            75.9754+-3.4253           75.4352+-1.4680        
   deltablue                                        129.1040+-25.1924         124.4542+-35.4033         might be 1.0374x faster
   earley-boyer                                      58.2167+-1.7655           57.9812+-1.3112        
   raytrace                                          44.4368+-2.9330     ?     46.4924+-1.6947        ? might be 1.0463x slower
   regexp                                           104.1183+-0.5735     ?    105.5718+-1.6558        ? might be 1.0140x slower
   richards                                         102.8855+-5.0799     ?    106.6211+-4.3015        ? might be 1.0363x slower
   splay                                             50.6859+-2.7500     ?     51.6397+-2.0612        ? might be 1.0188x slower

   <geometric>                                       75.1464+-0.8241     ?     75.7623+-2.8337        ? might be 1.0082x slower

                                                          Trunk                SinkNewFunction                                  
Octane:
   encrypt                                           0.28961+-0.00048    ?     0.28997+-0.00054       ?
   decrypt                                           5.09789+-0.01467    ?     5.11667+-0.03976       ?
   deltablue                                x2       0.23359+-0.00062    ?     0.23395+-0.00328       ?
   earley                                            0.67858+-0.16546          0.61227+-0.00474         might be 1.1083x faster
   boyer                                             8.93664+-0.04057          8.93350+-0.03589       
   navier-stokes                            x2       7.55339+-0.00912    ?     7.55911+-0.01520       ?
   raytrace                                 x2       1.55019+-0.09143    ?     1.58211+-0.06873       ? might be 1.0206x slower
   richards                                 x2       0.13954+-0.00287    ?     0.14119+-0.00382       ? might be 1.0118x slower
   splay                                    x2       0.50037+-0.00325    ?     0.50266+-0.00225       ?
   regexp                                   x2      42.76514+-0.53758         42.74989+-0.92714       
   pdfjs                                    x2      54.54151+-0.18289    ?    54.80862+-0.14846       ?
   mandreel                                 x2      72.29088+-0.48097    ?    72.67518+-0.26812       ?
   gbemu                                    x2      55.87310+-0.97806    ?    57.72494+-3.55873       ? might be 1.0331x slower
   closure                                           0.70640+-0.00510    ?     0.70667+-0.00432       ?
   jquery                                            8.83669+-0.05497    ?     8.89807+-0.04948       ?
   box2d                                    x2      16.35254+-0.16447    ?    16.45553+-0.31206       ?
   zlib                                     x2     527.69638+-22.92335   ?   538.00974+-3.08129       ? might be 1.0195x slower
   typescript                               x2     943.27153+-16.97161       937.50557+-16.02971      

   <geometric>                                       8.62258+-0.10244    ?     8.65927+-0.04469       ? might be 1.0043x slower

                                                          Trunk                SinkNewFunction                                  
Kraken:
   ai-astar                                          425.685+-5.810      ?     425.736+-3.375         ?
   audio-beat-detection                              130.245+-1.715            129.153+-1.457         
   audio-dft                                         231.138+-2.045      ^     226.840+-1.632         ^ definitely 1.0189x faster
   audio-fft                                         104.089+-3.676      ?     106.617+-1.580         ? might be 1.0243x slower
   audio-oscillator                                  263.942+-0.492      ?     267.574+-8.544         ? might be 1.0138x slower
   imaging-darkroom                                  129.381+-1.329      !     138.050+-0.593         ! definitely 1.0670x slower
   imaging-desaturate                                 81.521+-2.725      ?      81.608+-2.701         ?
   imaging-gaussian-blur                             128.762+-0.977      ?     129.798+-0.893         ?
   json-parse-financial                               55.955+-1.248      ^      53.441+-0.185         ^ definitely 1.0470x faster
   json-stringify-tinderbox                           82.750+-22.699            74.050+-1.064           might be 1.1175x faster
   stanford-crypto-aes                                81.760+-0.678      ?      82.093+-0.455         ?
   stanford-crypto-ccm                                70.814+-6.670      ?      71.557+-7.930         ? might be 1.0105x slower
   stanford-crypto-pbkdf2                            218.548+-0.622      ?     219.508+-0.692         ?
   stanford-crypto-sha256-iterative                   71.678+-0.790             70.902+-0.585           might be 1.0109x faster

   <arithmetic>                                      148.305+-1.903      ?     148.352+-0.811         ? might be 1.0003x slower

                                                          Trunk                SinkNewFunction                                  
JSRegress:
   abs-boolean                                        3.3999+-0.1054     ?      3.4453+-0.2595        ? might be 1.0133x slower
   adapt-to-double-divide                            23.2879+-0.5269           23.2767+-0.3232        
   aliased-arguments-getbyval                         1.9814+-0.5452            1.5589+-0.1591          might be 1.2710x faster
   allocate-big-object                                3.3758+-0.1789     ?      3.5243+-0.0980        ? might be 1.0440x slower
   arguments-named-and-reflective                    16.2211+-0.6376           15.9995+-0.2070          might be 1.0139x faster
   arguments-out-of-bounds                           14.7329+-0.3443     ?     14.8163+-0.2780        ?
   arguments-strict-mode                             13.8081+-0.3342           13.7590+-0.4428        
   arguments                                         12.3942+-0.2110           12.1899+-0.3624          might be 1.0168x faster
   arity-mismatch-inlining                            1.1050+-0.0289     ?      1.1228+-0.0749        ? might be 1.0161x slower
   array-access-polymorphic-structure                 8.7386+-0.4108            8.6093+-0.2379          might be 1.0150x faster
   array-nonarray-polymorhpic-access                 40.9390+-0.9297     ?     42.7252+-1.4145        ? might be 1.0436x slower
   array-prototype-every                            115.2107+-1.2807          114.2585+-0.9108        
   array-prototype-forEach                          113.6938+-2.3269          112.0770+-2.0029          might be 1.0144x faster
   array-prototype-map                              123.7941+-1.2505     !    128.7760+-0.4525        ! definitely 1.0402x slower
   array-prototype-some                             115.5448+-0.6399          114.5569+-1.2026        
   array-splice-contiguous                           60.5459+-0.8698     ^     55.9970+-0.4623        ^ definitely 1.0812x faster
   array-with-double-add                              4.9441+-0.3316            4.8377+-0.1470          might be 1.0220x faster
   array-with-double-increment                        4.2633+-0.0918     ?      4.2902+-0.1966        ?
   array-with-double-mul-add                          6.0363+-0.4150            5.9743+-0.2063          might be 1.0104x faster
   array-with-double-sum                              4.4826+-0.0486     ?      4.5650+-0.1400        ? might be 1.0184x slower
   array-with-int32-add-sub                           8.1949+-0.1337     ?      8.4642+-0.3358        ? might be 1.0329x slower
   array-with-int32-or-double-sum                     4.5372+-0.0981     ?      4.5489+-0.2232        ?
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     39.2582+-0.8700     ?     40.0669+-3.0310        ? might be 1.0206x slower
   ArrayBuffer-DataView-alloc-long-lived             17.7893+-0.3298           17.7627+-0.3293        
   ArrayBuffer-Int32Array-byteOffset                  5.1892+-0.0684     ?      5.2990+-0.2996        ? might be 1.0211x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     40.1953+-2.0738     ?     40.4418+-1.7068        ?
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     29.7955+-0.7550           29.6172+-0.3910        
   ArrayBuffer-Int8Array-alloc-long-lived            16.8899+-0.3711     ?     16.9799+-0.3568        ?
   ArrayBuffer-Int8Array-alloc                       14.0555+-0.3182     ?     14.4305+-0.3694        ? might be 1.0267x slower
   asmjs_bool_bug                                    10.6202+-0.1463     ?     10.6994+-0.2374        ?
   assign-custom-setter-polymorphic                   3.8340+-0.4245            3.7025+-0.1662          might be 1.0355x faster
   assign-custom-setter                               4.8879+-0.0579            4.8844+-0.0417        
   basic-set                                         11.7330+-1.2766           11.3451+-0.8319          might be 1.0342x faster
   big-int-mul                                        4.8669+-0.1588     ?      4.9516+-0.2835        ? might be 1.0174x slower
   boolean-test                                       4.0267+-0.1106     ?      4.0734+-0.2921        ? might be 1.0116x slower
   branch-fold                                        5.0902+-0.2187            4.9797+-0.0914          might be 1.0222x faster
   by-val-generic                                    10.4959+-0.3450           10.2039+-0.0516          might be 1.0286x faster
   call-spread-apply                                 37.3091+-0.6324     ?     37.9414+-1.4357        ? might be 1.0169x slower
   call-spread-call                                  31.8012+-1.1532           31.3204+-1.1177          might be 1.0154x faster
   captured-assignments                               0.5448+-0.0194            0.5320+-0.0136          might be 1.0240x faster
   cast-int-to-double                                 6.7421+-0.0614     ?      6.8518+-0.1399        ? might be 1.0163x slower
   cell-argument                                      8.8896+-0.1756     ?      9.0823+-0.3423        ? might be 1.0217x slower
   cfg-simplify                                       4.0385+-0.0935            4.0264+-0.0987        
   chain-getter-access                               12.9458+-0.0863     ?     13.0929+-0.4136        ? might be 1.0114x slower
   cmpeq-obj-to-obj-other                            16.4757+-1.1568     ?     16.5135+-0.4348        ?
   constant-test                                      6.4360+-0.0679     ?      6.4599+-0.1436        ?
   create-lots-of-functions                          12.9023+-0.6246     ?     13.1475+-0.4476        ? might be 1.0190x slower
   DataView-custom-properties                        47.0756+-1.8637     ?     49.5034+-2.4772        ? might be 1.0516x slower
   deconstructing-parameters-overridden-by-function   
                                                      0.6020+-0.0329     ?      0.6228+-0.0683        ? might be 1.0346x slower
   delay-tear-off-arguments-strictmode               17.0798+-0.2453     !     17.5766+-0.2280        ! definitely 1.0291x slower
   deltablue-varargs                                209.9329+-1.9116     ^    206.0461+-1.6999        ^ definitely 1.0189x faster
   destructuring-arguments                           19.3271+-0.7224     ?     20.0355+-0.5516        ? might be 1.0366x slower
   destructuring-swap                                 6.6596+-0.1285            6.6259+-0.1229        
   direct-arguments-getbyval                          1.5932+-0.1093            1.5779+-0.0704        
   div-boolean-double                                 7.6252+-0.2375            7.5154+-0.0452          might be 1.0146x faster
   div-boolean                                       11.7355+-0.0870     ?     11.7370+-0.0702        ?
   double-get-by-val-out-of-bounds                    5.8394+-0.2639            5.7353+-0.3145          might be 1.0182x faster
   double-pollution-getbyval                         12.4930+-0.2073     ^     12.0243+-0.1415        ^ definitely 1.0390x faster
   double-pollution-putbyoffset                       6.2518+-0.8303            5.4622+-0.1721          might be 1.1446x faster
   double-to-int32-typed-array-no-inline              2.8945+-0.0712     ?      2.9097+-0.1803        ?
   double-to-int32-typed-array                        2.4481+-0.1793            2.4303+-0.1429        
   double-to-uint32-typed-array-no-inline             3.3903+-0.7217            3.0542+-0.1518          might be 1.1101x faster
   double-to-uint32-typed-array                       2.4654+-0.0433     ?      2.4997+-0.1041        ? might be 1.0139x slower
   elidable-new-object-dag                           50.7652+-2.5448           50.1287+-0.6402          might be 1.0127x faster
   elidable-new-object-roflcopter                    54.9682+-1.4482           54.8502+-2.3408        
   elidable-new-object-then-call                     46.2423+-1.1315           46.0019+-0.7929        
   elidable-new-object-tree                          53.8323+-2.6113           53.3582+-2.2619        
   empty-string-plus-int                              6.6888+-0.1316     ?      6.7816+-0.2957        ? might be 1.0139x slower
   emscripten-cube2hash                              40.6670+-2.8861           39.6838+-0.8475          might be 1.0248x faster
   exit-length-on-plain-object                       17.7862+-0.5378           17.6921+-0.2034        
   external-arguments-getbyval                        1.6318+-0.1754            1.6270+-0.1447        
   external-arguments-putbyval                        2.9572+-0.1950            2.8865+-0.1044          might be 1.0245x faster
   fixed-typed-array-storage-var-index                1.6136+-0.0274     ?      1.6145+-0.0649        ?
   fixed-typed-array-storage                          1.1335+-0.0443            1.1270+-0.0279        
   Float32Array-matrix-mult                           5.4991+-0.1525            5.4430+-0.0599          might be 1.0103x faster
   Float32Array-to-Float64Array-set                  68.9124+-1.0857           68.5424+-0.5084        
   Float64Array-alloc-long-lived                     86.0849+-5.1336           82.2695+-2.2282          might be 1.0464x faster
   Float64Array-to-Int16Array-set                    85.1279+-1.1475     ?     85.2009+-1.3112        ?
   fold-double-to-int                                17.9659+-0.3470     ?     17.9780+-0.3285        ?
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     13.8480+-1.2285     ?     14.5080+-0.8669        ? might be 1.0477x slower
   fold-get-by-id-to-multi-get-by-offset             10.9937+-0.8287           10.7315+-0.5084          might be 1.0244x faster
   fold-multi-get-by-offset-to-get-by-offset   
                                                     10.2020+-1.3146     ?     11.5621+-1.9774        ? might be 1.1333x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                     10.4425+-1.3248     ?     10.8192+-1.9745        ? might be 1.0361x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      9.8945+-1.6400     ?     10.4341+-1.0846        ? might be 1.0545x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                      5.6930+-0.9979     ?      6.5261+-1.2423        ? might be 1.1464x slower
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     12.3356+-2.0190           12.1596+-1.4839          might be 1.0145x faster
   fold-put-by-id-to-multi-put-by-offset             11.6135+-0.5703     ?     11.9728+-0.9390        ? might be 1.0309x slower
   fold-put-structure                                 5.2809+-0.7587            5.0601+-0.2848          might be 1.0436x faster
   for-of-iterate-array-entries                       5.7679+-0.2669     ?      6.0310+-0.3845        ? might be 1.0456x slower
   for-of-iterate-array-keys                          4.8017+-0.3987     ?      4.8314+-0.3507        ?
   for-of-iterate-array-values                        4.4502+-0.1356     ?      4.4736+-0.1647        ?
   fround                                            25.2957+-0.4140     ?     25.3485+-0.2247        ?
   ftl-library-inlining-dataview                     83.9480+-0.5773     ?     84.9423+-0.7008        ? might be 1.0118x slower
   ftl-library-inlining                             162.0490+-0.3040     ?    162.1562+-0.5429        ?
   function-dot-apply                                 2.7780+-0.0932     ?      2.7903+-0.1174        ?
   function-test                                      4.0978+-0.1102     ?      4.1375+-0.0554        ?
   function-with-eval                               131.6442+-1.7195          130.8906+-1.7076        
   gcse-poly-get-less-obvious                        20.6654+-0.1705     ?     20.8150+-0.3593        ?
   gcse-poly-get                                     23.1433+-0.1822     ?     23.4481+-0.7473        ? might be 1.0132x slower
   gcse                                               5.4810+-0.1916     ?      5.6754+-0.3167        ? might be 1.0355x slower
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.6733+-0.1785            3.6383+-0.1370        
   get-by-id-bimorphic-check-structure-elimination   
                                                      8.2531+-0.0596            8.1804+-0.0418        
   get-by-id-chain-from-try-block                     9.2895+-0.1992     ?      9.4149+-0.4505        ? might be 1.0135x slower
   get-by-id-check-structure-elimination              6.2816+-0.1761            6.2751+-0.1353        
   get-by-id-proto-or-self                           20.7586+-1.0152     ?     22.1797+-2.1518        ? might be 1.0685x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      4.2340+-0.3105            4.0663+-0.0545          might be 1.0412x faster
   get-by-id-self-or-proto                           21.3423+-1.2369     ?     21.7273+-1.8625        ? might be 1.0180x slower
   get-by-val-out-of-bounds                           5.6410+-0.2287            5.3852+-0.1599          might be 1.0475x faster
   get_callee_monomorphic                             3.3355+-0.1269     ?      3.3605+-0.2632        ?
   get_callee_polymorphic                             4.8358+-0.1860     ?      4.9346+-0.1842        ? might be 1.0204x slower
   getter-no-activation                               6.8124+-0.2224     ?      6.9586+-0.3366        ? might be 1.0215x slower
   getter-richards                                  164.8857+-21.8011         159.7603+-9.6267          might be 1.0321x faster
   getter                                             7.5975+-0.5268     ?      7.8785+-0.8698        ? might be 1.0370x slower
   global-var-const-infer-fire-from-opt               1.2217+-0.1482     ?      1.2412+-0.1056        ? might be 1.0160x slower
   global-var-const-infer                             0.9795+-0.1230     ?      1.1546+-0.3398        ? might be 1.1788x slower
   HashMap-put-get-iterate-keys                      34.1730+-1.4078           33.6089+-0.7869          might be 1.0168x faster
   HashMap-put-get-iterate                           33.7718+-0.9651           33.5199+-1.2326        
   HashMap-string-put-get-iterate                    33.6732+-1.2045     ?     34.1111+-1.5828        ? might be 1.0130x slower
   hoist-make-rope                                   11.0444+-0.6927     ?     11.0572+-0.6943        ?
   hoist-poly-check-structure-effectful-loop   
                                                      5.9280+-0.1787            5.9049+-0.2000        
   hoist-poly-check-structure                         4.5099+-0.0397     ?      4.7035+-0.2068        ? might be 1.0429x slower
   imul-double-only                                   9.7502+-0.2343     ?      9.9810+-0.7782        ? might be 1.0237x slower
   imul-int-only                                     12.0295+-0.9203           11.4329+-0.1441          might be 1.0522x faster
   imul-mixed                                         8.9814+-0.3525     ?      9.2716+-0.5015        ? might be 1.0323x slower
   in-four-cases                                     22.7079+-0.7465     !     24.9793+-0.6688        ! definitely 1.1000x slower
   in-one-case-false                                 12.8998+-1.0191     ?     14.1915+-0.3418        ? might be 1.1001x slower
   in-one-case-true                                  12.3425+-0.9739     ?     16.4780+-6.0808        ? might be 1.3351x slower
   in-two-cases                                      12.4235+-0.4865     !     14.9775+-0.9099        ! definitely 1.2056x slower
   indexed-properties-in-objects                      3.9235+-0.0303            3.9226+-0.0391        
   infer-closure-const-then-mov-no-inline             4.2638+-0.0854     ?      4.2774+-0.1533        ?
   infer-closure-const-then-mov                      25.2234+-2.0313           24.2030+-0.6968          might be 1.0422x faster
   infer-closure-const-then-put-to-scope-no-inline   
                                                     17.5800+-0.1869           17.5057+-0.0878        
   infer-closure-const-then-put-to-scope             33.7038+-0.3759     ?     33.9355+-0.5716        ?
   infer-closure-const-then-reenter-no-inline   
                                                     82.5398+-1.1291           82.2486+-0.4925        
   infer-closure-const-then-reenter                  34.0998+-0.3059           33.9509+-0.2157        
   infer-constant-global-property                    43.6280+-0.2978     ?     43.8018+-0.6004        ?
   infer-constant-property                            3.6366+-0.0747     ?      3.6645+-0.0565        ?
   infer-one-time-closure-ten-vars                   12.0878+-0.2827           11.9136+-0.2211          might be 1.0146x faster
   infer-one-time-closure-two-vars                   11.4641+-0.2119     ?     11.5442+-0.4158        ?
   infer-one-time-closure                            11.4811+-0.3591           11.3285+-0.2372          might be 1.0135x faster
   infer-one-time-deep-closure                       18.5288+-0.6627           18.0950+-0.3185          might be 1.0240x faster
   inline-arguments-access                            5.4014+-0.1474     ?      5.4306+-0.3685        ?
   inline-arguments-aliased-access                    5.5306+-0.4374            5.3790+-0.2301          might be 1.0282x faster
   inline-arguments-local-escape                      5.7385+-0.4929     ?      5.9489+-1.4345        ? might be 1.0367x slower
   inline-get-scoped-var                              6.6644+-0.3773            6.5432+-0.1817          might be 1.0185x faster
   inlined-put-by-id-transition                      14.2867+-0.4365           13.6209+-1.2416          might be 1.0489x faster
   int-or-other-abs-then-get-by-val                   6.3645+-0.1585     ?      6.4600+-0.3463        ? might be 1.0150x slower
   int-or-other-abs-zero-then-get-by-val             23.4662+-0.7929           23.4082+-0.2240        
   int-or-other-add-then-get-by-val                   5.8218+-0.2467            5.6551+-0.1836          might be 1.0295x faster
   int-or-other-add                                   6.9211+-0.2762     ?      7.0061+-0.2975        ? might be 1.0123x slower
   int-or-other-div-then-get-by-val                   5.4639+-0.1312     ?      5.6455+-0.2717        ? might be 1.0332x slower
   int-or-other-max-then-get-by-val                   5.6665+-0.1317     ?      5.6898+-0.1692        ?
   int-or-other-min-then-get-by-val                   5.8276+-0.1989            5.7896+-0.1171        
   int-or-other-mod-then-get-by-val                   5.0000+-0.0758            4.9682+-0.0662        
   int-or-other-mul-then-get-by-val                   5.2790+-0.1399            5.2327+-0.1461        
   int-or-other-neg-then-get-by-val                   6.0826+-0.1359     ?      6.5420+-0.6837        ? might be 1.0755x slower
   int-or-other-neg-zero-then-get-by-val             22.9501+-0.3233     ?     23.6600+-0.6484        ? might be 1.0309x slower
   int-or-other-sub-then-get-by-val                   5.8338+-0.0427     ?      5.8398+-0.0330        ?
   int-or-other-sub                                   4.7829+-0.1050            4.7537+-0.0773        
   int-overflow-local                                 6.0306+-0.2159     ?      6.5289+-1.0016        ? might be 1.0826x slower
   Int16Array-alloc-long-lived                       65.2782+-3.0349     ?     65.4358+-3.1503        ?
   Int16Array-bubble-sort-with-byteLength            24.9865+-0.3973     ?     25.2877+-0.9761        ? might be 1.0121x slower
   Int16Array-bubble-sort                            24.4202+-0.3140           24.2767+-0.2445        
   Int16Array-load-int-mul                            1.9372+-0.0442     ?      1.9844+-0.0770        ? might be 1.0244x slower
   Int16Array-to-Int32Array-set                      65.2681+-0.3611           64.1526+-0.8236          might be 1.0174x faster
   Int32Array-alloc-large                            17.3995+-0.8504     ?     17.8610+-1.9985        ? might be 1.0265x slower
   Int32Array-alloc-long-lived                       70.3215+-2.7090     ?     71.9063+-2.6969        ? might be 1.0225x slower
   Int32Array-alloc                                   3.8875+-0.2323     ?      4.1591+-0.5985        ? might be 1.0699x slower
   Int32Array-Int8Array-view-alloc                    8.8730+-0.1578     ?      9.0479+-0.4057        ? might be 1.0197x slower
   int52-spill                                        8.3245+-0.4263     ?      8.3797+-0.4003        ?
   Int8Array-alloc-long-lived                        58.7860+-2.8916           58.5892+-1.9016        
   Int8Array-load-with-byteLength                     4.7588+-0.0433     ?      4.8701+-0.3496        ? might be 1.0234x slower
   Int8Array-load                                     4.7578+-0.0654            4.7362+-0.0499        
   integer-divide                                    15.0181+-0.1512     ?     15.0365+-0.2532        ?
   integer-modulo                                     2.2538+-0.0578     ?      2.2858+-0.1379        ? might be 1.0142x slower
   large-int-captured                                 5.6747+-0.2848     ?      5.6750+-0.3869        ?
   large-int-neg                                     20.9629+-0.3815           20.9384+-0.3044        
   large-int                                         19.9993+-0.1551     ?     20.0737+-0.4116        ?
   logical-not                                        5.9327+-0.2914            5.7823+-0.1301          might be 1.0260x faster
   lots-of-fields                                    14.1362+-0.2800     ?     14.3491+-0.4816        ? might be 1.0151x slower
   make-indexed-storage                               3.8891+-0.2631     ?      3.9018+-0.2663        ?
   make-rope-cse                                      5.3976+-0.1687     ?      5.4202+-0.6482        ?
   marsaglia-larger-ints                             47.4499+-0.4900     ?     47.9634+-1.0151        ? might be 1.0108x slower
   marsaglia-osr-entry                               30.2344+-0.4539           30.1836+-0.4126        
   max-boolean                                        3.7865+-0.0888     ?      3.7929+-0.0311        ?
   method-on-number                                  25.1819+-4.5212           24.7209+-0.3691          might be 1.0186x faster
   min-boolean                                        3.9197+-0.3345            3.8307+-0.1021          might be 1.0232x faster
   minus-boolean-double                               4.3709+-0.0841     ?      4.4761+-0.2577        ? might be 1.0241x slower
   minus-boolean                                      3.2108+-0.0632     ?      3.2153+-0.0279        ?
   misc-strict-eq                                    42.5302+-0.3665     ?     42.9855+-0.6410        ? might be 1.0107x slower
   mod-boolean-double                                16.1608+-0.2946     ?     16.2891+-0.6693        ?
   mod-boolean                                       12.0037+-0.1698     ?     12.0837+-0.2006        ?
   mul-boolean-double                                 5.1882+-0.2082            5.1455+-0.1142        
   mul-boolean                                        3.9460+-0.0905            3.9320+-0.1143        
   neg-boolean                                        4.3519+-0.0760     ?      4.3783+-0.0723        ?
   negative-zero-divide                               0.4233+-0.0132            0.4191+-0.0106        
   negative-zero-modulo                               0.4188+-0.0171            0.4187+-0.0166        
   negative-zero-negate                               0.4059+-0.0305     ?      0.4120+-0.0297        ? might be 1.0150x slower
   nested-function-parsing                           47.4243+-0.5401           47.1072+-0.7733        
   new-array-buffer-dead                            118.9205+-2.0967     ?    121.5295+-3.1396        ? might be 1.0219x slower
   new-array-buffer-push                              8.0500+-0.1741     ?      8.5988+-0.7101        ? might be 1.0682x slower
   new-array-dead                                    19.6549+-0.2309           18.6282+-1.0570          might be 1.0551x faster
   new-array-push                                     4.8752+-0.3796            4.8608+-0.1845        
   no-inline-constructor                            135.1361+-1.8632     ?    135.2364+-2.4331        ?
   number-test                                        4.0086+-0.1502            3.9585+-0.1064          might be 1.0127x faster
   object-closure-call                                6.9781+-0.2230            6.9049+-0.2114          might be 1.0106x faster
   object-test                                        4.0233+-0.1010     ?      4.0480+-0.0818        ?
   obvious-sink-pathology-taken                     140.7052+-2.9268          138.5920+-0.9901          might be 1.0152x faster
   obvious-sink-pathology                           136.2088+-6.8387          132.9820+-1.7763          might be 1.0243x faster
   obviously-elidable-new-object                     41.5916+-2.2868           40.0575+-1.1313          might be 1.0383x faster
   plus-boolean-arith                                 3.3011+-0.0892            3.2981+-0.0767        
   plus-boolean-double                                4.4174+-0.2169            4.3665+-0.0568          might be 1.0117x faster
   plus-boolean                                       3.6480+-0.2164            3.6182+-0.0989        
   poly-chain-access-different-prototypes-simple   
                                                      3.8614+-0.2454     ?      3.8916+-0.4153        ?
   poly-chain-access-different-prototypes             3.5074+-0.0690     ?      3.5892+-0.1294        ? might be 1.0233x slower
   poly-chain-access-simpler                          3.7676+-0.0443            3.7655+-0.0370        
   poly-chain-access                                  3.5995+-0.2587            3.4692+-0.0575          might be 1.0376x faster
   poly-stricteq                                     75.4893+-0.3383     ?     76.0457+-0.4813        ?
   polymorphic-array-call                             1.5205+-0.0670     ?      1.6516+-0.2202        ? might be 1.0862x slower
   polymorphic-get-by-id                              3.9685+-0.0247     ?      3.9806+-0.0408        ?
   polymorphic-put-by-id                             35.1902+-0.4481     ?     35.5481+-0.9757        ? might be 1.0102x slower
   polymorphic-structure                             18.9527+-0.1370     ?     19.1239+-0.3573        ?
   polyvariant-monomorphic-get-by-id                  9.8743+-1.2148     ?     10.6134+-1.4454        ? might be 1.0749x slower
   proto-getter-access                               12.9716+-0.2757           12.8059+-0.2741          might be 1.0129x faster
   put-by-id-replace-and-transition                  10.4371+-0.4745     ?     11.1864+-0.8636        ? might be 1.0718x slower
   put-by-id-slightly-polymorphic                     3.5330+-0.0880     ?      3.5917+-0.0515        ? might be 1.0166x slower
   put-by-id                                         13.7085+-0.5875           13.4425+-0.7098          might be 1.0198x faster
   put-by-val-direct                                  0.5562+-0.0309            0.5458+-0.0173          might be 1.0191x faster
   put-by-val-large-index-blank-indexing-type   
                                                      7.4006+-0.4019     ?      7.4917+-0.3353        ? might be 1.0123x slower
   put-by-val-machine-int                             3.5645+-0.1694            3.4688+-0.1157          might be 1.0276x faster
   rare-osr-exit-on-local                            21.6645+-1.5251           21.0756+-0.4299          might be 1.0279x faster
   register-pressure-from-osr                        24.8343+-0.4871           24.3025+-0.2041          might be 1.0219x faster
   setter                                             7.8890+-0.4947     ?      8.0522+-0.5356        ? might be 1.0207x slower
   simple-activation-demo                            35.1101+-0.4004     ?     35.1249+-0.3191        ?
   simple-getter-access                              17.0806+-0.3081           16.8875+-0.3432          might be 1.0114x faster
   simple-poly-call-nested                           12.8877+-0.7417           12.8057+-0.5395        
   simple-poly-call                                   1.6882+-0.0662            1.6554+-0.0317          might be 1.0198x faster
   sin-boolean                                       24.9261+-0.8228     ?     26.0091+-0.9221        ? might be 1.0434x slower
   singleton-scope                                   94.1577+-0.7094           93.8234+-0.2531        
   sink-function                                     21.8820+-1.1524     ^     14.0673+-1.0145        ^ definitely 1.5555x faster
   sinkable-new-object-dag                           82.6204+-2.5215           82.4327+-3.0211        
   sinkable-new-object-taken                         64.6302+-1.9491           64.0863+-1.1714        
   sinkable-new-object                               44.5973+-2.6627           43.2218+-0.4689          might be 1.0318x faster
   slow-array-profile-convergence                     3.5258+-0.1742     ?      3.7479+-0.3006        ? might be 1.0630x slower
   slow-convergence                                   3.3783+-0.0364     ?      3.5123+-0.3466        ? might be 1.0397x slower
   sorting-benchmark                                 30.2190+-0.3333     ?     30.6529+-0.6779        ? might be 1.0144x slower
   sparse-conditional                                 1.4833+-0.0301     ?      1.5570+-0.1026        ? might be 1.0497x slower
   splice-to-remove                                  19.4879+-0.2275     !     20.0320+-0.2181        ! definitely 1.0279x slower
   string-char-code-at                               19.6391+-0.2637     ?     19.7431+-0.3479        ?
   string-concat-object                               2.9910+-0.0983     ?      3.3200+-0.3588        ? might be 1.1100x slower
   string-concat-pair-object                          3.0854+-0.0990            2.9858+-0.1704          might be 1.0333x faster
   string-concat-pair-simple                         13.4008+-0.7647           12.7008+-0.2112          might be 1.0551x faster
   string-concat-simple                              13.8055+-1.6417           13.5256+-0.8905          might be 1.0207x faster
   string-cons-repeat                                 9.7275+-0.9873            9.3255+-0.7243          might be 1.0431x faster
   string-cons-tower                                  9.5732+-0.2590     ?      9.9065+-0.6705        ? might be 1.0348x slower
   string-equality                                   21.6092+-0.8069           21.3510+-0.2020          might be 1.0121x faster
   string-get-by-val-big-char                         9.4860+-0.3417            9.2716+-0.2783          might be 1.0231x faster
   string-get-by-val-out-of-bounds-insane             4.4837+-0.1269     ?      4.5728+-0.2321        ? might be 1.0199x slower
   string-get-by-val-out-of-bounds                    5.6753+-0.0641     ?      5.7453+-0.1000        ? might be 1.0123x slower
   string-get-by-val                                  4.0157+-0.2491     ?      4.0295+-0.2058        ?
   string-hash                                        2.5627+-0.1271            2.5491+-0.0881        
   string-long-ident-equality                        17.8746+-0.5089     ?     17.9563+-0.7332        ?
   string-out-of-bounds                              14.9657+-0.4943           14.7142+-0.2041          might be 1.0171x faster
   string-repeat-arith                               38.3680+-0.1246           38.2082+-0.2546        
   string-sub                                        75.2728+-0.7563     !     77.1105+-0.6414        ! definitely 1.0244x slower
   string-test                                        3.7490+-0.0599     ?      3.8890+-0.1406        ? might be 1.0373x slower
   string-var-equality                               36.0415+-0.0966     !     39.4209+-0.1472        ! definitely 1.0938x slower
   structure-hoist-over-transitions                   3.2940+-0.2480     ?      3.3136+-0.1305        ?
   substring-concat-weird                            51.7722+-0.4674           51.7008+-1.0010        
   substring-concat                                  54.7672+-2.0032     ?     54.7927+-1.3746        ?
   substring                                         61.8758+-0.9330     ?     62.5852+-0.8863        ? might be 1.0115x slower
   switch-char-constant                               3.6641+-0.0936            3.6227+-0.0461          might be 1.0114x faster
   switch-char                                        8.5632+-0.7290     ?      9.8455+-1.3281        ? might be 1.1498x slower
   switch-constant                                   11.7530+-0.4672           11.0983+-0.9927          might be 1.0590x faster
   switch-string-basic-big-var                       18.2638+-0.0907           18.1834+-0.0913        
   switch-string-basic-big                           18.3196+-0.1923     ?     18.3871+-0.3124        ?
   switch-string-basic-var                           17.7168+-0.2098     ?     17.9502+-0.6766        ? might be 1.0132x slower
   switch-string-basic                               17.6410+-0.3404     ?     17.8693+-0.5072        ? might be 1.0129x slower
   switch-string-big-length-tower-var                26.6746+-0.3808           26.4782+-0.2735        
   switch-string-length-tower-var                    18.5502+-0.1209           18.5240+-0.1498        
   switch-string-length-tower                        16.8087+-0.1485           16.7603+-0.0951        
   switch-string-short                               16.8464+-0.2768     ?     16.8986+-0.3607        ?
   switch                                            17.1270+-1.0656     ?     17.2012+-1.2018        ?
   tear-off-arguments-simple                          4.2629+-0.2063     ?      4.2970+-0.1643        ?
   tear-off-arguments                                 5.9936+-0.4899            5.9231+-0.4797          might be 1.0119x faster
   temporal-structure                                17.4377+-0.2923     ?     17.4447+-0.2354        ?
   to-int32-boolean                                  18.5954+-0.3948           18.4288+-0.1161        
   try-catch-get-by-val-cloned-arguments             18.5626+-0.3223     ?     18.7638+-0.6902        ? might be 1.0108x slower
   try-catch-get-by-val-direct-arguments              8.2036+-0.1786     ?      8.5107+-0.3148        ? might be 1.0374x slower
   try-catch-get-by-val-scoped-arguments             10.1815+-0.3660           10.0420+-0.3860          might be 1.0139x faster
   undefined-property-access                        322.1055+-0.4974     ?    322.6034+-1.1442        ?
   undefined-test                                     4.0368+-0.1711     ?      4.1702+-0.2753        ? might be 1.0331x slower
   unprofiled-licm                                   20.1143+-0.1412     ?     20.2863+-0.5892        ?
   varargs-call                                      19.4628+-0.1933           19.1355+-0.3765          might be 1.0171x faster
   varargs-construct-inline                          25.4820+-0.5293     ?     26.0420+-1.5046        ? might be 1.0220x slower
   varargs-construct                                 41.5338+-0.6977           41.4970+-0.9044        
   varargs-inline                                    12.3410+-0.2812           12.2428+-0.1333        
   varargs-strict-mode                               13.5096+-0.1970           13.4462+-0.1057        
   varargs                                           13.3926+-0.0833     ?     13.5978+-0.4147        ? might be 1.0153x slower
   weird-inlining-const-prop                          2.9438+-0.2240            2.8226+-0.2837          might be 1.0429x faster

   <geometric>                                       10.9240+-0.0367     ?     10.9664+-0.0386        ? might be 1.0039x slower

                                                          Trunk                SinkNewFunction                                  
AsmBench:
   bigfib.cpp                                       658.6932+-6.9943          657.2699+-1.9962        
   cray.c                                           580.5135+-3.0012          579.9958+-1.5288        
   dry.c                                            616.5087+-26.6806    ?    653.7879+-15.1693       ? might be 1.0605x slower
   FloatMM.c                                       1031.5182+-0.5962         1031.0532+-1.0475        
   gcc-loops.cpp                                   5234.4017+-40.0608        5213.4405+-9.3436        
   n-body.c                                        1229.7462+-0.9184         1229.2448+-0.9159        
   Quicksort.c                                      606.5915+-6.6561     ?    611.4886+-2.1544        ?
   stepanov_container.cpp                          5449.0375+-75.9359        5447.8392+-49.8665       
   Towers.c                                         350.3289+-0.9622          350.1884+-0.3470        

   <geometric>                                     1068.2206+-6.2764     ?   1075.2191+-3.3968        ? might be 1.0066x slower

                                                          Trunk                SinkNewFunction                                  
CompressionBench:
   huffman                                          442.9074+-2.8072     !    448.1654+-1.8558        ! definitely 1.0119x slower
   arithmetic-simple                                510.3425+-3.5839     ?    510.5959+-6.6406        ?
   arithmetic-precise                               402.8929+-14.6677         394.9258+-1.9138          might be 1.0202x faster
   arithmetic-complex-precise                       393.4967+-1.2208     ?    394.4382+-3.8564        ?
   arithmetic-precise-order-0                       526.7729+-4.8011          523.4777+-6.8427        
   arithmetic-precise-order-1                       441.6063+-2.0145     ?    441.6759+-2.5982        ?
   arithmetic-precise-order-2                       495.6534+-1.9804     ?    496.9294+-3.7131        ?
   arithmetic-simple-order-1                        491.5868+-2.9979     ?    492.2852+-3.1231        ?
   arithmetic-simple-order-2                        569.8405+-3.9782     ?    570.9934+-6.4206        ?
   lz-string                                        460.9897+-13.7496    ?    466.7519+-13.2443       ? might be 1.0125x slower

   <geometric>                                      470.6325+-2.2728     ?    470.9774+-1.1982        ? might be 1.0007x slower

                                                          Trunk                SinkNewFunction                                  
Geomean of preferred means:
   <scaled-result>                                   82.3947+-0.3655     ?     82.6624+-0.3859        ? might be 1.0032x slower
Comment 2 Basile Clement 2015-04-23 18:33:15 PDT
Created attachment 251524 [details]
patch

This should be correct, and I can't think of other relevant tests.
Comment 3 WebKit Commit Bot 2015-04-23 18:35:50 PDT
Attachment 251524 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:787:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 4 Filip Pizlo 2015-04-23 18:37:29 PDT
Comment on attachment 251524 [details]
patch

Nice!
Comment 5 Basile Clement 2015-04-23 18:39:34 PDT
(In reply to comment #3)
> Attachment 251524 [details] did not pass style-queue:
> 
> 
> ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:787: 
> Place brace on its own line for function definitions.  [whitespace/braces]
> [4]
> Total errors found: 1 in 23 files
> 
> 
> If any of these errors are false positives, please file a bug against
> check-webkit-style.

I followed the style of other lambdas on that one ; should I fix it?
Comment 6 Filip Pizlo 2015-04-23 18:48:40 PDT
Comment on attachment 251524 [details]
patch

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

> Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:566
> +                        Node* executable = m_insertionSet.insertConstant(
> +                            nodeIndex + 1, node->origin, node->cellOperand());

You could add the cellOperand as a strong constant. This means doing:

m_insertionSet.insertConstant(nodeIndex + 1, node->origin, m_graph.freezeStrong(node->cellOperand()));
Comment 7 Filip Pizlo 2015-04-23 18:49:04 PDT
Comment on attachment 251524 [details]
patch

Clearing cq because there is one small refinement that could be made.
Comment 8 Filip Pizlo 2015-04-23 18:52:26 PDT
(In reply to comment #5)
> (In reply to comment #3)
> > Attachment 251524 [details] did not pass style-queue:
> > 
> > 
> > ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:787: 
> > Place brace on its own line for function definitions.  [whitespace/braces]
> > [4]
> > Total errors found: 1 in 23 files
> > 
> > 
> > If any of these errors are false positives, please file a bug against
> > check-webkit-style.
> 
> I followed the style of other lambdas on that one ; should I fix it?

It's a bug in stylebot. It doesn't parse lambdas correctly, yet.  We ignore these errors for lambdas.
Comment 9 Filip Pizlo 2015-04-23 18:56:29 PDT
(In reply to comment #6)
> Comment on attachment 251524 [details]
> patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=251524&action=review
> 
> > Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:566
> > +                        Node* executable = m_insertionSet.insertConstant(
> > +                            nodeIndex + 1, node->origin, node->cellOperand());
> 
> You could add the cellOperand as a strong constant. This means doing:
> 
> m_insertionSet.insertConstant(nodeIndex + 1, node->origin,
> m_graph.freezeStrong(node->cellOperand()));

Actually, cellOperand() is a FrozenValue* and it's already strong. So the current code is correct and what I'm suggesting is wrong.
Comment 10 Filip Pizlo 2015-04-23 18:56:43 PDT
Comment on attachment 251524 [details]
patch

It's good to land!
Comment 11 WebKit Commit Bot 2015-04-23 19:24:46 PDT
Comment on attachment 251524 [details]
patch

Clearing flags on attachment: 251524

Committed r183235: <http://trac.webkit.org/changeset/183235>
Comment 12 WebKit Commit Bot 2015-04-23 19:24:49 PDT
All reviewed patches have been landed.  Closing bug.