Bug 143735

Summary: DFG should insert Phantoms late using BytecodeKills and block-local OSR availability
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, benjamin, commit-queue, ggaren, mark.lam, mhahnenb, mmirman, msaboff, nrotem, oliver, saam, sam
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on: 126778, 144084    
Bug Blocks: 144086, 143733, 143736    
Attachments:
Description Flags
work in progress
none
it works but it might be slow
none
probably fast enough
none
more speed
none
the patch
ggaren: review+
the patch ggaren: review+

Description Filip Pizlo 2015-04-14 15:56:27 PDT
This will remove bugs where we inserted a Phantom on the wrong thing, or we inserted a Phantom on the right thing but subsequent transformations caused the Phantom to no longer refer to the same thing as the desired MovHint.
Comment 1 Filip Pizlo 2015-04-19 16:27:32 PDT
Created attachment 251135 [details]
work in progress

Currently this crashes instantly. :-)
Comment 2 Filip Pizlo 2015-04-21 16:24:50 PDT
Created attachment 251274 [details]
it works but it might be slow

Still checking performance and such.
Comment 3 Filip Pizlo 2015-04-21 19:23:59 PDT
Created attachment 251292 [details]
probably fast enough

Still doing more tests though.
Comment 4 Filip Pizlo 2015-04-22 19:10:15 PDT
Created attachment 251396 [details]
more speed
Comment 5 Filip Pizlo 2015-04-22 19:37:47 PDT
Latest perf numbers:


Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on dethklok (MacBookPro9,1).

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc (r183094)
"Phantoms" at /Volumes/Data/pizlo/quartary/OpenSource/WebKitBuild/Release/jsc (r183094)

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.

                                                        TipOfTree                  Phantoms                                     
SunSpider:
   3d-cube                                            5.0424+-0.2432            4.9709+-0.0769          might be 1.0144x faster
   3d-morph                                           5.8194+-0.2026            5.7551+-0.0908          might be 1.0112x faster
   3d-raytrace                                        6.4419+-0.3398     ?      6.5358+-0.2105        ? might be 1.0146x slower
   access-binary-trees                                2.2443+-0.1253     ?      2.3378+-0.2136        ? might be 1.0417x slower
   access-fannkuch                                    5.9147+-0.1739     ?      6.2483+-0.3825        ? might be 1.0564x slower
   access-nbody                                       3.1857+-0.3602            3.0734+-0.3406          might be 1.0365x faster
   access-nsieve                                      3.3650+-0.1554     ?      3.4170+-0.0838        ? might be 1.0155x slower
   bitops-3bit-bits-in-byte                           1.6069+-0.1172            1.5570+-0.0550          might be 1.0320x faster
   bitops-bits-in-byte                                3.5409+-0.3095            3.4112+-0.0548          might be 1.0380x faster
   bitops-bitwise-and                                 2.1278+-0.1107     ?      2.2472+-0.2231        ? might be 1.0561x slower
   bitops-nsieve-bits                                 3.3204+-0.0766            3.2814+-0.0566          might be 1.0119x faster
   controlflow-recursive                              2.2146+-0.1053     ?      2.3051+-0.1209        ? might be 1.0408x slower
   crypto-aes                                         4.1592+-0.1234     ?      4.2738+-0.2241        ? might be 1.0276x slower
   crypto-md5                                         2.4593+-0.2196            2.4097+-0.0891          might be 1.0206x faster
   crypto-sha1                                        2.5687+-0.2184     ?      2.6690+-0.2436        ? might be 1.0391x slower
   date-format-tofte                                  9.4229+-0.2422     ?      9.5609+-0.2631        ? might be 1.0146x slower
   date-format-xparb                                  5.5837+-0.1316     ?      6.2437+-0.6387        ? might be 1.1182x slower
   math-cordic                                        3.1552+-0.1329     ?      3.2006+-0.1118        ? might be 1.0144x slower
   math-partial-sums                                  5.8656+-0.8592            5.4100+-0.1252          might be 1.0842x faster
   math-spectral-norm                                 1.9286+-0.0797     ?      2.0343+-0.2256        ? might be 1.0548x slower
   regexp-dna                                         7.8387+-1.2663            7.4255+-0.3229          might be 1.0556x faster
   string-base64                                      4.7788+-0.5722     ?      5.5030+-0.9712        ? might be 1.1515x slower
   string-fasta                                       7.0892+-0.4499            6.9015+-0.6429          might be 1.0272x faster
   string-tagcloud                                    9.9109+-0.4872            9.6383+-0.1528          might be 1.0283x faster
   string-unpack-code                                20.0622+-0.4602           19.8360+-1.3514          might be 1.0114x faster
   string-validate-input                              4.9967+-0.3327            4.9472+-0.1065          might be 1.0100x faster

   <arithmetic>                                       5.1786+-0.0732     ?      5.1998+-0.0941        ? might be 1.0041x slower

                                                        TipOfTree                  Phantoms                                     
LongSpider:
   3d-cube                                          869.8075+-7.6573          865.3125+-4.3515        
   3d-morph                                        1528.4201+-4.3344     ?   1528.6641+-3.5679        ?
   3d-raytrace                                      733.2135+-3.0039     ?    743.2482+-7.1808        ? might be 1.0137x slower
   access-binary-trees                             1022.4955+-8.2002     ?   1030.2060+-9.3154        ?
   access-fannkuch                                  345.5316+-3.1564          333.7206+-12.4381         might be 1.0354x faster
   access-nbody                                     610.9330+-1.8580     ?    613.3153+-8.2762        ?
   access-nsieve                                    856.5666+-5.8369     ?    860.7399+-11.5757       ?
   bitops-3bit-bits-in-byte                          44.2078+-0.7678     ?     46.1954+-3.8980        ? might be 1.0450x slower
   bitops-bits-in-byte                              103.4895+-1.5742     ?    104.1345+-2.6413        ?
   bitops-nsieve-bits                               634.8919+-9.5213     ?    636.4028+-2.7411        ?
   controlflow-recursive                            476.3420+-0.5529     !    479.8759+-0.8461        ! definitely 1.0074x slower
   crypto-aes                                       699.7954+-6.4900     ?    710.0792+-7.1895        ? might be 1.0147x slower
   crypto-md5                                       552.1233+-5.4077          549.7647+-6.2009        
   crypto-sha1                                      602.3127+-4.0319          595.1420+-8.7440          might be 1.0120x faster
   date-format-tofte                                752.2622+-16.7335    ?    757.0235+-12.7832       ?
   date-format-xparb                                832.9229+-42.4996         798.0126+-9.9324          might be 1.0437x faster
   math-cordic                                      592.3583+-3.9580     ?    592.5445+-2.0979        ?
   math-partial-sums                                513.7517+-2.5461          510.1917+-1.9971        
   math-spectral-norm                               564.9075+-2.5067          564.7650+-1.7519        
   string-base64                                    382.2008+-8.5241          378.9279+-3.2620        
   string-fasta                                     441.9298+-3.8990          438.7849+-3.3526        
   string-tagcloud                                  216.1237+-2.7379     ?    219.7808+-3.1449        ? might be 1.0169x slower

   <geometric>                                      498.9609+-1.1659     ?    499.0528+-2.1702        ? might be 1.0002x slower

                                                        TipOfTree                  Phantoms                                     
V8Spider:
   crypto                                            54.6539+-1.7305     ?     57.2838+-2.1507        ? might be 1.0481x slower
   deltablue                                         98.2509+-7.0306           95.5972+-5.1723          might be 1.0278x faster
   earley-boyer                                      43.9778+-0.6343     !     45.2846+-0.4388        ! definitely 1.0297x slower
   raytrace                                          40.1969+-2.3162     ?     43.5972+-2.2466        ? might be 1.0846x slower
   regexp                                            86.3689+-2.2353           84.5293+-1.2271          might be 1.0218x faster
   richards                                          79.1830+-1.9402     ?     80.7668+-2.1827        ? might be 1.0200x slower
   splay                                             39.7161+-2.9009     ?     40.6805+-1.5302        ? might be 1.0243x slower

   <geometric>                                       59.2595+-1.4273     ?     60.5777+-0.8456        ? might be 1.0222x slower

                                                        TipOfTree                  Phantoms                                     
Octane:
   encrypt                                           0.21124+-0.02530          0.20216+-0.00097         might be 1.0449x faster
   decrypt                                           3.62029+-0.04894          3.59999+-0.06020       
   deltablue                                x2       0.20819+-0.00170    ?     0.20866+-0.00271       ?
   earley                                            0.53932+-0.00400    ?     0.54331+-0.00264       ?
   boyer                                             6.72513+-0.08745          6.64183+-0.03920         might be 1.0125x faster
   navier-stokes                            x2       5.17945+-0.01523    ?     5.18579+-0.01194       ?
   raytrace                                 x2       1.27475+-0.02932          1.26460+-0.04783       
   richards                                 x2       0.12186+-0.00125    ?     0.12222+-0.00179       ?
   splay                                    x2       0.39761+-0.00382    ?     0.39766+-0.00228       ?
   regexp                                   x2      33.37021+-0.19029         33.28366+-0.50253       
   pdfjs                                    x2      44.01472+-0.38588    ?    44.04534+-0.25861       ?
   mandreel                                 x2      50.29814+-0.45824    ?    50.33347+-0.19098       ?
   gbemu                                    x2      41.90829+-0.14969    ?    43.54967+-3.09998       ? might be 1.0392x slower
   closure                                           0.55079+-0.00405    !     0.56270+-0.00123       ! definitely 1.0216x slower
   jquery                                            6.99852+-0.03672    !     7.13284+-0.02626       ! definitely 1.0192x slower
   box2d                                    x2      12.24466+-0.06327         12.22918+-0.05730       
   zlib                                     x2     375.81528+-16.35704   ?   389.85517+-14.25274      ? might be 1.0374x slower
   typescript                               x2     832.00496+-6.88461    ?   836.61283+-8.33751       ?

   <geometric>                                       6.71983+-0.03768    ?     6.75115+-0.02550       ? might be 1.0047x slower

                                                        TipOfTree                  Phantoms                                     
Kraken:
   ai-astar                                          268.187+-0.909      ?     270.226+-1.936         ?
   audio-beat-detection                              107.015+-3.706            105.571+-0.801           might be 1.0137x faster
   audio-dft                                         149.854+-2.747      ?     151.217+-2.933         ?
   audio-fft                                          83.188+-3.844      ?      86.672+-1.405         ? might be 1.0419x slower
   audio-oscillator                                  208.212+-1.879            208.138+-2.023         
   imaging-darkroom                                  106.028+-1.648      ?     106.521+-1.416         ?
   imaging-desaturate                                 62.906+-1.656      ?      63.017+-1.628         ?
   imaging-gaussian-blur                             116.092+-5.361            114.200+-2.023           might be 1.0166x faster
   json-parse-financial                               45.870+-1.969      ?      46.983+-1.800         ? might be 1.0243x slower
   json-stringify-tinderbox                           58.609+-1.618             58.333+-2.318         
   stanford-crypto-aes                                63.697+-0.653      ?      63.780+-0.378         ?
   stanford-crypto-ccm                                54.249+-0.231      ?      59.235+-5.455         ? might be 1.0919x slower
   stanford-crypto-pbkdf2                            170.184+-2.743            170.034+-2.214         
   stanford-crypto-sha256-iterative                   56.848+-1.356             55.352+-1.343           might be 1.0270x faster

   <arithmetic>                                      110.781+-0.472      ?     111.377+-0.918         ? might be 1.0054x slower

                                                        TipOfTree                  Phantoms                                     
JSRegress:
   abs-boolean                                        2.6354+-0.0619     ?      2.7767+-0.3469        ? might be 1.0536x slower
   adapt-to-double-divide                            16.6226+-0.2391     ?     16.7762+-0.5813        ?
   aliased-arguments-getbyval                         1.2625+-0.0555     ?      1.2998+-0.1225        ? might be 1.0296x slower
   allocate-big-object                                2.8438+-0.2750            2.7919+-0.1251          might be 1.0186x faster
   arguments-named-and-reflective                    13.0054+-0.6453           12.7455+-0.3981          might be 1.0204x faster
   arguments-out-of-bounds                           14.8934+-0.3832     ?     14.9375+-0.2086        ?
   arguments-strict-mode                             12.3180+-0.6236           11.9248+-0.9248          might be 1.0330x faster
   arguments                                         10.3883+-0.5614     ?     10.8193+-0.8593        ? might be 1.0415x slower
   arity-mismatch-inlining                            0.8402+-0.0325     ?      0.8906+-0.0451        ? might be 1.0600x slower
   array-access-polymorphic-structure                 7.3348+-1.3299            7.1145+-0.6105          might be 1.0310x faster
   array-nonarray-polymorhpic-access                 36.0268+-2.1476           35.2161+-1.7095          might be 1.0230x faster
   array-prototype-every                             87.1536+-1.6249     ?     89.4181+-3.0521        ? might be 1.0260x slower
   array-prototype-forEach                           84.6139+-1.1761     ?     87.4924+-2.3482        ? might be 1.0340x slower
   array-prototype-map                               95.0697+-2.6412     ?     99.2421+-3.1479        ? might be 1.0439x slower
   array-prototype-some                              87.6648+-2.5079     ?     90.4334+-2.4814        ? might be 1.0316x slower
   array-splice-contiguous                           41.7525+-1.3606           41.1243+-1.0134          might be 1.0153x faster
   array-with-double-add                              4.3167+-0.3185            4.2378+-0.2537          might be 1.0186x faster
   array-with-double-increment                        3.3181+-0.0838     ?      3.3727+-0.3124        ? might be 1.0165x slower
   array-with-double-mul-add                          5.0398+-0.0950     ?      5.0481+-0.0709        ?
   array-with-double-sum                              3.3735+-0.1584            3.3302+-0.0883          might be 1.0130x faster
   array-with-int32-add-sub                           6.7124+-0.0838     ?      6.8888+-0.2422        ? might be 1.0263x slower
   array-with-int32-or-double-sum                     3.5771+-0.6135            3.3081+-0.0333          might be 1.0813x faster
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     32.8987+-1.5349     ?     35.9418+-1.7600        ? might be 1.0925x slower
   ArrayBuffer-DataView-alloc-long-lived             14.7145+-1.7410     ?     16.4810+-2.5726        ? might be 1.1201x slower
   ArrayBuffer-Int32Array-byteOffset                  3.7867+-0.1408     ?      3.8493+-0.0582        ? might be 1.0165x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     33.7231+-1.3960     ?     35.4100+-1.9501        ? might be 1.0500x slower
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     22.5824+-1.3601     ?     24.2017+-1.4287        ? might be 1.0717x slower
   ArrayBuffer-Int8Array-alloc-long-lived            14.1675+-1.6173     ?     15.2691+-1.7072        ? might be 1.0778x slower
   ArrayBuffer-Int8Array-alloc                       11.1627+-0.4232     ?     12.5942+-1.7899        ? might be 1.1282x slower
   asmjs_bool_bug                                     7.5929+-0.0540     ?      7.7052+-0.1856        ? might be 1.0148x slower
   assign-custom-setter-polymorphic                   3.1446+-0.3951     ?      3.2977+-0.3956        ? might be 1.0487x slower
   assign-custom-setter                               4.2607+-0.2029     ?      4.6628+-0.5714        ? might be 1.0944x slower
   basic-set                                          8.4494+-0.5870            8.3340+-0.1041          might be 1.0138x faster
   big-int-mul                                        4.0830+-0.0773     ^      3.9686+-0.0324        ^ definitely 1.0288x faster
   boolean-test                                       3.0603+-0.1351     ?      3.0912+-0.0862        ? might be 1.0101x slower
   branch-fold                                        3.7408+-0.0582            3.7269+-0.1166        
   by-val-generic                                     7.9459+-0.1436     ?      8.1209+-0.4206        ? might be 1.0220x slower
   call-spread-apply                                 29.1362+-0.9559     !     32.2539+-1.8851        ! definitely 1.1070x slower
   call-spread-call                                  25.7860+-2.4087     ?     27.2384+-1.6145        ? might be 1.0563x slower
   captured-assignments                               0.4703+-0.0651     ?      0.4808+-0.0564        ? might be 1.0225x slower
   cast-int-to-double                                 5.6497+-0.8765            5.3375+-0.0572          might be 1.0585x faster
   cell-argument                                      8.6250+-0.2717     ?      8.6957+-0.1837        ?
   cfg-simplify                                       2.9465+-0.0780     ?      2.9498+-0.1975        ?
   chain-getter-access                               10.0941+-0.2342           10.0170+-0.1892        
   cmpeq-obj-to-obj-other                            11.8979+-1.1029           11.4023+-0.9042          might be 1.0435x faster
   constant-test                                      4.8899+-0.0144     !      4.9896+-0.0234        ! definitely 1.0204x slower
   create-lots-of-functions                          12.0387+-0.6852           11.9248+-0.3206        
   DataView-custom-properties                        38.7274+-2.0451     ?     40.5913+-1.2696        ? might be 1.0481x slower
   deconstructing-parameters-overridden-by-function   
                                                      0.5326+-0.0276            0.5010+-0.0189          might be 1.0631x faster
   delay-tear-off-arguments-strictmode               14.4565+-1.1659           14.2883+-0.1742          might be 1.0118x faster
   deltablue-varargs                                201.3281+-2.9463     ?    203.8250+-1.1436        ? might be 1.0124x slower
   destructuring-arguments                           17.5599+-0.5067     ?     18.4723+-0.7892        ? might be 1.0520x slower
   destructuring-swap                                 5.0735+-0.0968            5.0704+-0.0207        
   direct-arguments-getbyval                          1.3149+-0.1846            1.2583+-0.1906          might be 1.0450x faster
   div-boolean-double                                 5.3170+-0.2323            5.2292+-0.0390          might be 1.0168x faster
   div-boolean                                        7.8220+-0.0429     ?      7.8265+-0.0928        ?
   double-get-by-val-out-of-bounds                    4.5457+-0.0710            4.5215+-0.0914        
   double-pollution-getbyval                          8.8473+-0.0277     ?      8.8667+-0.0535        ?
   double-pollution-putbyoffset                       4.4572+-0.1591     ?      4.4618+-0.1300        ?
   double-to-int32-typed-array-no-inline              2.2817+-0.1086            2.2200+-0.0764          might be 1.0278x faster
   double-to-int32-typed-array                        1.8393+-0.0651     ?      1.9467+-0.0570        ? might be 1.0584x slower
   double-to-uint32-typed-array-no-inline             2.3452+-0.2106            2.3412+-0.0555        
   double-to-uint32-typed-array                       1.9297+-0.0114     !      2.1941+-0.2411        ! definitely 1.1370x slower
   elidable-new-object-dag                           43.7360+-1.4893     ?     44.3418+-1.5628        ? might be 1.0139x slower
   elidable-new-object-roflcopter                    47.9366+-1.8151     ?     48.4495+-1.2890        ? might be 1.0107x slower
   elidable-new-object-then-call                     40.4362+-1.4537           39.1064+-0.8807          might be 1.0340x faster
   elidable-new-object-tree                          46.2928+-1.0917     ?     46.4242+-1.5003        ?
   empty-string-plus-int                              5.3992+-0.1043     ?      5.6059+-0.1513        ? might be 1.0383x slower
   emscripten-cube2hash                              39.5417+-1.0718     ?     39.7839+-1.4584        ?
   exit-length-on-plain-object                       15.2425+-0.8298           14.9673+-1.3502          might be 1.0184x faster
   external-arguments-getbyval                        1.3968+-0.2173            1.3134+-0.0263          might be 1.0635x faster
   external-arguments-putbyval                        2.5873+-0.8086            2.3147+-0.2346          might be 1.1178x faster
   fixed-typed-array-storage-var-index                1.2181+-0.0539     ?      1.2474+-0.0555        ? might be 1.0240x slower
   fixed-typed-array-storage                          0.9559+-0.0469            0.9497+-0.0216        
   Float32Array-matrix-mult                           4.5787+-0.5280            4.4221+-0.1567          might be 1.0354x faster
   Float32Array-to-Float64Array-set                  54.3658+-0.7831     !     55.8142+-0.4622        ! definitely 1.0266x slower
   Float64Array-alloc-long-lived                     73.5948+-1.7035     ?     74.5196+-1.8971        ? might be 1.0126x slower
   Float64Array-to-Int16Array-set                    68.4350+-1.9205     ?     68.6193+-1.9912        ?
   fold-double-to-int                                13.6452+-0.2637           13.4764+-0.3347          might be 1.0125x faster
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     11.1737+-1.7672            9.5597+-0.5011          might be 1.1688x faster
   fold-get-by-id-to-multi-get-by-offset              9.7513+-0.9540     ?     10.2514+-1.7118        ? might be 1.0513x slower
   fold-multi-get-by-offset-to-get-by-offset   
                                                      9.1371+-0.9534            8.8715+-1.5324          might be 1.0299x faster
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      9.1298+-0.6662     ?      9.1392+-0.6373        ?
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      9.3077+-0.7425     ?     10.1484+-0.8961        ? might be 1.0903x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                      5.9863+-1.2616            4.6207+-0.8036          might be 1.2955x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     10.0639+-0.5399     ?     10.1071+-0.5060        ?
   fold-put-by-id-to-multi-put-by-offset             10.0092+-1.3135     ?     11.4000+-0.8984        ? might be 1.1390x slower
   fold-put-structure                                 6.4770+-1.4869            4.6645+-0.6152          might be 1.3886x faster
   for-of-iterate-array-entries                       4.6789+-0.2190     ?      4.7780+-0.0978        ? might be 1.0212x slower
   for-of-iterate-array-keys                          4.0196+-0.4398            3.8187+-0.1949          might be 1.0526x faster
   for-of-iterate-array-values                        3.5969+-0.1432     ?      3.7429+-0.2113        ? might be 1.0406x slower
   fround                                            19.8766+-0.2944     ?     20.2817+-0.5798        ? might be 1.0204x slower
   ftl-library-inlining-dataview                     80.4601+-0.6447     ?     82.5903+-1.5552        ? might be 1.0265x slower
   ftl-library-inlining                              76.0899+-16.2283    ?     83.0909+-21.5231       ? might be 1.0920x slower
   function-dot-apply                                 2.2642+-0.0628     ?      2.2915+-0.0632        ? might be 1.0121x slower
   function-test                                      3.4134+-0.1954            3.3460+-0.0608          might be 1.0201x faster
   function-with-eval                               103.6036+-2.9617          103.0661+-2.7977        
   gcse-poly-get-less-obvious                        19.9333+-1.5948           19.3730+-1.6639          might be 1.0289x faster
   gcse-poly-get                                     21.3683+-1.7972     ?     21.9095+-1.4778        ? might be 1.0253x slower
   gcse                                               5.0028+-0.6436            4.3558+-0.0586          might be 1.1485x faster
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.8582+-0.2050            2.7687+-0.0944          might be 1.0323x faster
   get-by-id-bimorphic-check-structure-elimination   
                                                      6.1968+-0.3781            6.1022+-0.1347          might be 1.0155x faster
   get-by-id-chain-from-try-block                     6.8992+-0.7004            6.7407+-0.3575          might be 1.0235x faster
   get-by-id-check-structure-elimination              5.3055+-0.3247     ?      5.4245+-0.4771        ? might be 1.0224x slower
   get-by-id-proto-or-self                           17.9760+-0.4948           17.2282+-0.8134          might be 1.0434x faster
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      3.3424+-0.4155            3.2340+-0.1234          might be 1.0335x faster
   get-by-id-self-or-proto                           17.3678+-0.4074     ?     19.3097+-5.3717        ? might be 1.1118x slower
   get-by-val-out-of-bounds                           4.4098+-0.0697     ?      4.4586+-0.1106        ? might be 1.0111x slower
   get_callee_monomorphic                             2.7402+-0.0757     ?      2.8749+-0.2319        ? might be 1.0492x slower
   get_callee_polymorphic                             3.8886+-0.4049     ?      4.1922+-0.5601        ? might be 1.0781x slower
   getter-no-activation                               4.9361+-0.2251     ?      5.1210+-0.2985        ? might be 1.0374x slower
   getter-richards                                  134.5706+-23.4794         129.1708+-5.5608          might be 1.0418x faster
   getter                                             5.5548+-0.5899     ?      6.2629+-0.8419        ? might be 1.1275x slower
   global-var-const-infer-fire-from-opt               0.9598+-0.1037     ?      1.0114+-0.0182        ? might be 1.0538x slower
   global-var-const-infer                             0.7919+-0.0452     ?      0.8003+-0.1237        ? might be 1.0106x slower
   HashMap-put-get-iterate-keys                      27.1170+-0.4905           26.5796+-0.3534          might be 1.0202x faster
   HashMap-put-get-iterate                           27.2843+-0.8562           26.5205+-0.6198          might be 1.0288x faster
   HashMap-string-put-get-iterate                    27.2079+-1.4198           26.2659+-0.8603          might be 1.0359x faster
   hoist-make-rope                                   12.6641+-0.7898           11.9349+-0.8549          might be 1.0611x faster
   hoist-poly-check-structure-effectful-loop   
                                                      5.0643+-0.0896            5.0279+-0.0247        
   hoist-poly-check-structure                         3.6406+-0.0594     ?      3.7683+-0.2048        ? might be 1.0351x slower
   imul-double-only                                   8.5290+-0.6420     ?      9.2600+-0.7788        ? might be 1.0857x slower
   imul-int-only                                      9.8929+-0.2103            9.8811+-0.3732        
   imul-mixed                                         8.4248+-0.4893            8.3924+-0.3702        
   in-four-cases                                     18.9368+-0.3386     !     20.5354+-0.0691        ! definitely 1.0844x slower
   in-one-case-false                                 10.1924+-0.3472     ?     10.3354+-0.6285        ? might be 1.0140x slower
   in-one-case-true                                   9.9651+-0.3429     ?     10.0696+-0.4443        ? might be 1.0105x slower
   in-two-cases                                      10.6329+-0.6887           10.4830+-0.3787          might be 1.0143x faster
   indexed-properties-in-objects                      2.8717+-0.0320     !      3.0368+-0.0611        ! definitely 1.0575x slower
   infer-closure-const-then-mov-no-inline             4.5870+-0.4268            4.2021+-0.3517          might be 1.0916x faster
   infer-closure-const-then-mov                      19.2043+-0.1428     !     19.7883+-0.3837        ! definitely 1.0304x slower
   infer-closure-const-then-put-to-scope-no-inline   
                                                     15.3770+-1.4999           14.5754+-1.5172          might be 1.0550x faster
   infer-closure-const-then-put-to-scope             22.9858+-1.2240           22.6395+-1.3508          might be 1.0153x faster
   infer-closure-const-then-reenter-no-inline   
                                                     67.8719+-1.0366           66.5077+-1.7539          might be 1.0205x faster
   infer-closure-const-then-reenter                  22.4334+-0.8973     ?     22.6507+-1.0402        ?
   infer-constant-global-property                    30.9496+-1.5941     ?     31.1235+-1.3094        ?
   infer-constant-property                            2.8396+-0.3241            2.7179+-0.0559          might be 1.0448x faster
   infer-one-time-closure-ten-vars                   12.7043+-0.3855           12.5286+-0.2668          might be 1.0140x faster
   infer-one-time-closure-two-vars                   12.9353+-1.7823           12.8198+-1.4616        
   infer-one-time-closure                            12.9332+-1.5944           12.3585+-0.7340          might be 1.0465x faster
   infer-one-time-deep-closure                       22.2740+-2.1168           21.4410+-1.1130          might be 1.0389x faster
   inline-arguments-access                            4.7295+-0.1518     ?      4.7849+-0.4025        ? might be 1.0117x slower
   inline-arguments-aliased-access                    4.6505+-0.1803     ?      4.8250+-0.2479        ? might be 1.0375x slower
   inline-arguments-local-escape                      4.7391+-0.0685     ?      4.7773+-0.3469        ?
   inline-get-scoped-var                              4.8732+-0.2971     ?      4.9003+-0.2492        ?
   inlined-put-by-id-transition                      10.8020+-0.0926     !     11.5483+-0.4152        ! definitely 1.0691x slower
   int-or-other-abs-then-get-by-val                   4.8535+-0.1975            4.7444+-0.0985          might be 1.0230x faster
   int-or-other-abs-zero-then-get-by-val             17.4028+-0.9022     ?     18.1868+-1.0251        ? might be 1.0451x slower
   int-or-other-add-then-get-by-val                   4.3615+-0.0646            4.3390+-0.0720        
   int-or-other-add                                   5.3053+-0.0499            5.2941+-0.0425        
   int-or-other-div-then-get-by-val                   4.1285+-0.1168     !      4.3898+-0.1145        ! definitely 1.0633x slower
   int-or-other-max-then-get-by-val                   4.2846+-0.0784     ?      4.4648+-0.2407        ? might be 1.0420x slower
   int-or-other-min-then-get-by-val                   4.4198+-0.0208     ?      4.5505+-0.2255        ? might be 1.0296x slower
   int-or-other-mod-then-get-by-val                   3.8343+-0.0792     ?      3.9373+-0.0616        ? might be 1.0269x slower
   int-or-other-mul-then-get-by-val                   4.1888+-0.2432            3.9971+-0.1444          might be 1.0480x faster
   int-or-other-neg-then-get-by-val                   4.4754+-0.0632     ?      4.5474+-0.1226        ? might be 1.0161x slower
   int-or-other-neg-zero-then-get-by-val             17.2126+-1.0192     ?     17.4067+-0.3777        ? might be 1.0113x slower
   int-or-other-sub-then-get-by-val                   4.3766+-0.1472     ?      4.7120+-0.2923        ? might be 1.0766x slower
   int-or-other-sub                                   3.4814+-0.1142            3.4784+-0.0428        
   int-overflow-local                                 4.3173+-0.0396     !      4.4556+-0.0703        ! definitely 1.0320x slower
   Int16Array-alloc-long-lived                       52.7500+-0.9924     ?     52.9688+-1.9284        ?
   Int16Array-bubble-sort-with-byteLength            20.8311+-1.3772           20.5093+-1.4106          might be 1.0157x faster
   Int16Array-bubble-sort                            19.6806+-0.2016           19.6342+-0.2629        
   Int16Array-load-int-mul                            1.5905+-0.1671            1.5194+-0.0295          might be 1.0468x faster
   Int16Array-to-Int32Array-set                      59.0631+-2.7997     ^     53.4653+-1.8875        ^ definitely 1.1047x faster
   Int32Array-alloc-large                            25.2626+-1.7818           24.9707+-1.0133          might be 1.0117x faster
   Int32Array-alloc-long-lived                       58.0240+-2.0192     ?     58.8138+-1.9868        ? might be 1.0136x slower
   Int32Array-alloc                                   3.6794+-0.2109     ?      3.8342+-0.4754        ? might be 1.0421x slower
   Int32Array-Int8Array-view-alloc                    7.2453+-0.8101     ?      7.8004+-1.6554        ? might be 1.0766x slower
   int52-spill                                        6.4373+-0.0922     ?      6.5096+-0.1389        ? might be 1.0112x slower
   Int8Array-alloc-long-lived                        47.7861+-2.1150     ?     48.0362+-0.6007        ?
   Int8Array-load-with-byteLength                     3.4451+-0.2660            3.3846+-0.1174          might be 1.0179x faster
   Int8Array-load                                     3.4719+-0.2920            3.3967+-0.1904          might be 1.0221x faster
   integer-divide                                    11.6329+-0.1628           11.2756+-0.3890          might be 1.0317x faster
   integer-modulo                                     1.9588+-0.0572     ?      2.0308+-0.0620        ? might be 1.0367x slower
   large-int-captured                                 4.8144+-0.3769            4.6491+-0.0683          might be 1.0355x faster
   large-int-neg                                     17.7464+-1.7935           16.4386+-0.2760          might be 1.0796x faster
   large-int                                         16.0633+-1.4950           15.6182+-0.9464          might be 1.0285x faster
   logical-not                                        4.4630+-0.0384     ?      4.4911+-0.0359        ?
   lots-of-fields                                    12.9123+-0.3571     ?     13.2996+-0.5210        ? might be 1.0300x slower
   make-indexed-storage                               3.0963+-0.0667     ?      3.1394+-0.0614        ? might be 1.0139x slower
   make-rope-cse                                      4.9319+-0.3069     ?      5.1701+-0.6660        ? might be 1.0483x slower
   marsaglia-larger-ints                             35.7398+-0.6572           35.5125+-0.3703        
   marsaglia-osr-entry                               25.0204+-1.5964           23.8337+-0.6237          might be 1.0498x faster
   max-boolean                                        2.4061+-0.0243     ?      2.4911+-0.0866        ? might be 1.0353x slower
   method-on-number                                  17.3218+-0.4503     ?     17.4090+-0.2613        ?
   min-boolean                                        2.5316+-0.0900     ?      2.6317+-0.2182        ? might be 1.0395x slower
   minus-boolean-double                               3.1614+-0.0682     ?      3.1993+-0.0811        ? might be 1.0120x slower
   minus-boolean                                      2.3643+-0.1205            2.3119+-0.0520          might be 1.0227x faster
   misc-strict-eq                                    38.5804+-1.5467           37.4220+-0.6912          might be 1.0310x faster
   mod-boolean-double                                10.9295+-0.1903     ?     11.3193+-0.9252        ? might be 1.0357x slower
   mod-boolean                                        7.9762+-0.2585            7.8665+-0.1255          might be 1.0139x faster
   mul-boolean-double                                 3.8248+-0.2919            3.6990+-0.0474          might be 1.0340x faster
   mul-boolean                                        2.9231+-0.0656     ?      3.0174+-0.2259        ? might be 1.0323x slower
   neg-boolean                                        3.4657+-0.3498            3.4094+-0.4292          might be 1.0165x faster
   negative-zero-divide                               0.3610+-0.0415     ?      0.3960+-0.0914        ? might be 1.0971x slower
   negative-zero-modulo                               0.3450+-0.0074     ?      0.4211+-0.0929        ? might be 1.2207x slower
   negative-zero-negate                               0.3234+-0.0531     ?      0.3339+-0.0074        ? might be 1.0325x slower
   nested-function-parsing                           38.9415+-1.2277     ?     39.7703+-2.2490        ? might be 1.0213x slower
   new-array-buffer-dead                            111.6466+-1.3951     ?    113.0322+-2.1782        ? might be 1.0124x slower
   new-array-buffer-push                              7.9019+-1.2654            7.2448+-0.6498          might be 1.0907x faster
   new-array-dead                                    20.3440+-1.0986           19.3533+-0.5163          might be 1.0512x faster
   new-array-push                                     4.0097+-0.2606     ?      4.1059+-0.2186        ? might be 1.0240x slower
   no-inline-constructor                            125.7222+-1.3213     ?    125.8537+-1.6382        ?
   number-test                                        2.9968+-0.0747     ?      3.1403+-0.2979        ? might be 1.0479x slower
   object-closure-call                                5.7170+-0.3696            5.6768+-0.0748        
   object-test                                        3.2122+-0.3161            3.1675+-0.0542          might be 1.0141x faster
   obvious-sink-pathology-taken                     140.9941+-1.6366          140.5824+-1.8583        
   obvious-sink-pathology                           133.6877+-1.3876          133.2822+-3.2170        
   obviously-elidable-new-object                     35.9899+-2.3129           35.0474+-1.0954          might be 1.0269x faster
   plus-boolean-arith                                 2.5304+-0.0551            2.4875+-0.0851          might be 1.0172x faster
   plus-boolean-double                                3.2042+-0.0456     ?      3.2043+-0.0480        ?
   plus-boolean                                       2.4609+-0.1112            2.4024+-0.1192          might be 1.0244x faster
   poly-chain-access-different-prototypes-simple   
                                                      3.3431+-0.1683            3.2963+-0.0237          might be 1.0142x faster
   poly-chain-access-different-prototypes             2.6604+-0.3276            2.6097+-0.0476          might be 1.0194x faster
   poly-chain-access-simpler                          3.4639+-0.4781            3.3433+-0.1433          might be 1.0361x faster
   poly-chain-access                                  2.5854+-0.0619            2.5768+-0.0521        
   poly-stricteq                                     61.7244+-1.0675           60.0522+-0.7092          might be 1.0278x faster
   polymorphic-array-call                             1.1311+-0.0523     ?      1.2703+-0.1473        ? might be 1.1230x slower
   polymorphic-get-by-id                              3.2054+-0.0727            3.1314+-0.0327          might be 1.0236x faster
   polymorphic-put-by-id                             30.4344+-2.3992           29.1840+-1.3090          might be 1.0428x faster
   polymorphic-structure                             15.4368+-0.8542           15.1097+-0.8936          might be 1.0217x faster
   polyvariant-monomorphic-get-by-id                  8.6597+-0.3235     ?      8.7203+-0.1757        ?
   proto-getter-access                               10.1275+-0.2006            9.9927+-0.1516          might be 1.0135x faster
   put-by-id-replace-and-transition                   9.2397+-0.1285            9.2023+-0.4351        
   put-by-id-slightly-polymorphic                     3.0896+-0.2430            2.8431+-0.0481          might be 1.0867x faster
   put-by-id                                         12.7818+-0.4412     ?     13.2375+-0.4799        ? might be 1.0357x slower
   put-by-val-direct                                  0.4386+-0.0198     ?      0.4406+-0.0116        ?
   put-by-val-large-index-blank-indexing-type   
                                                      6.0708+-0.5027     ?      6.3074+-0.7633        ? might be 1.0390x slower
   put-by-val-machine-int                             2.8305+-0.1186            2.8187+-0.1277        
   rare-osr-exit-on-local                            15.4897+-1.2028     ?     15.9331+-1.3289        ? might be 1.0286x slower
   register-pressure-from-osr                        22.3381+-1.3280           21.6399+-0.2340          might be 1.0323x faster
   setter                                             5.6908+-0.5954     ?      6.2041+-0.8646        ? might be 1.0902x slower
   simple-activation-demo                            24.8530+-0.6202     ?     25.6334+-1.6716        ? might be 1.0314x slower
   simple-getter-access                              12.6529+-0.1765     ?     12.8226+-0.2845        ? might be 1.0134x slower
   simple-poly-call-nested                            8.5885+-0.6351            8.3855+-0.5024          might be 1.0242x faster
   simple-poly-call                                   1.3885+-0.2696            1.3632+-0.0761          might be 1.0185x faster
   sin-boolean                                       23.2449+-1.2936           23.1338+-0.6832        
   singleton-scope                                   69.1093+-1.3235           67.7059+-0.7031          might be 1.0207x faster
   sinkable-new-object-dag                           70.6011+-1.0439           70.2609+-1.2032        
   sinkable-new-object-taken                         50.9171+-2.8695     ?     53.8829+-1.9382        ? might be 1.0582x slower
   sinkable-new-object                               39.2499+-1.5391           39.0130+-1.5164        
   slow-array-profile-convergence                     2.9033+-0.2621            2.8421+-0.1975          might be 1.0215x faster
   slow-convergence                                   2.8220+-0.2936     ?      2.8831+-0.2825        ? might be 1.0216x slower
   sorting-benchmark                                 24.7218+-1.1157     ?     24.7409+-1.3203        ?
   sparse-conditional                                 1.1020+-0.0270     ?      1.2111+-0.1118        ? might be 1.0990x slower
   splice-to-remove                                  17.8827+-1.7345           17.6655+-2.0424          might be 1.0123x faster
   string-char-code-at                               16.4132+-0.2622     ?     17.3077+-1.2851        ? might be 1.0545x slower
   string-concat-object                               2.5758+-0.1425     ?      2.6901+-0.2194        ? might be 1.0444x slower
   string-concat-pair-object                          2.6036+-0.1560     ?      2.8464+-0.4162        ? might be 1.0932x slower
   string-concat-pair-simple                         11.9384+-0.7421           11.8477+-0.6327        
   string-concat-simple                              12.2691+-0.5947           12.2167+-0.5254        
   string-cons-repeat                                 8.2815+-0.7863     ?      9.1368+-0.7698        ? might be 1.1033x slower
   string-cons-tower                                  8.8721+-0.9923            8.1443+-0.2651          might be 1.0894x faster
   string-equality                                   17.7003+-0.3457           17.3968+-0.1797          might be 1.0174x faster
   string-get-by-val-big-char                         7.2655+-0.2662     ?      7.5064+-0.1486        ? might be 1.0332x slower
   string-get-by-val-out-of-bounds-insane             3.7850+-0.1282     ?      3.8710+-0.2632        ? might be 1.0227x slower
   string-get-by-val-out-of-bounds                    5.2295+-0.1733     ?      5.3647+-0.3142        ? might be 1.0259x slower
   string-get-by-val                                  3.2919+-0.0838     ?      3.5472+-0.4587        ? might be 1.0776x slower
   string-hash                                        2.1726+-0.2633            2.0413+-0.0429          might be 1.0643x faster
   string-long-ident-equality                        14.5866+-0.1702     ?     14.7464+-0.2420        ? might be 1.0110x slower
   string-out-of-bounds                              14.9314+-0.3362     ?     15.1408+-0.3133        ? might be 1.0140x slower
   string-repeat-arith                               32.2200+-2.0924     ?     34.0039+-1.8694        ? might be 1.0554x slower
   string-sub                                        64.8723+-3.3219     !     71.3544+-2.6844        ! definitely 1.0999x slower
   string-test                                        2.8597+-0.0313     !      2.9679+-0.0340        ! definitely 1.0378x slower
   string-var-equality                               31.2848+-1.5856     ?     31.3303+-1.7603        ?
   structure-hoist-over-transitions                   2.5527+-0.0791     ?      2.6463+-0.0772        ? might be 1.0367x slower
   substring-concat-weird                            40.5707+-1.3541     ?     41.9733+-1.7952        ? might be 1.0346x slower
   substring-concat                                  41.2804+-1.2445           41.1396+-1.2893        
   substring                                         46.2070+-0.7120     ?     47.1690+-2.0211        ? might be 1.0208x slower
   switch-char-constant                               2.7120+-0.0611     ?      2.7565+-0.0956        ? might be 1.0164x slower
   switch-char                                        7.2608+-0.9833     ?      7.3573+-1.0432        ? might be 1.0133x slower
   switch-constant                                    8.5667+-0.1409     ?      8.5725+-0.3166        ?
   switch-string-basic-big-var                       14.6858+-0.1965     ?     14.7923+-0.2366        ?
   switch-string-basic-big                           14.8506+-1.9251     ?     14.9808+-1.4210        ?
   switch-string-basic-var                           14.5263+-1.2412     ?     15.6058+-1.8520        ? might be 1.0743x slower
   switch-string-basic                               13.1682+-0.9675     ?     13.9244+-1.5739        ? might be 1.0574x slower
   switch-string-big-length-tower-var                21.2768+-1.6782           20.2014+-1.4072          might be 1.0532x faster
   switch-string-length-tower-var                    15.3482+-1.3119     ?     16.7479+-1.8560        ? might be 1.0912x slower
   switch-string-length-tower                        13.2568+-1.5719           12.8048+-0.1687          might be 1.0353x faster
   switch-string-short                               12.9726+-1.1473     ?     13.2367+-1.4812        ? might be 1.0204x slower
   switch                                            12.7676+-0.2847     ?     12.8370+-0.3421        ?
   tear-off-arguments-simple                          3.4485+-0.2029            3.4314+-0.0609        
   tear-off-arguments                                 4.8903+-0.3230            4.8397+-0.2843          might be 1.0105x faster
   temporal-structure                                12.9903+-1.2423           12.2935+-0.1544          might be 1.0567x faster
   to-int32-boolean                                  13.5859+-0.1159     ?     13.8393+-0.2969        ? might be 1.0186x slower
   try-catch-get-by-val-cloned-arguments             15.1652+-1.5299           14.4604+-0.2548          might be 1.0487x faster
   try-catch-get-by-val-direct-arguments              6.9480+-1.2827     ?      7.5710+-1.2586        ? might be 1.0897x slower
   try-catch-get-by-val-scoped-arguments              7.9561+-0.9713            7.6558+-0.1994          might be 1.0392x faster
   undefined-property-access                        360.8572+-3.1262     ^    354.7093+-2.3039        ^ definitely 1.0173x faster
   undefined-test                                     2.9883+-0.0403     !      3.1202+-0.0733        ! definitely 1.0441x slower
   unprofiled-licm                                   23.1141+-0.8690     ?     23.3839+-1.3723        ? might be 1.0117x slower
   varargs-call                                      16.1381+-0.9337           15.1843+-0.7494          might be 1.0628x faster
   varargs-construct-inline                          24.1261+-4.9809           22.3313+-1.2564          might be 1.0804x faster
   varargs-construct                                 31.6230+-0.6901     ?     31.6243+-1.1757        ?
   varargs-inline                                     9.7864+-0.3974     ?     11.3702+-2.9920        ? might be 1.1618x slower
   varargs-strict-mode                               10.7511+-0.2583     ?     11.5681+-0.7385        ? might be 1.0760x slower
   varargs                                           10.8944+-0.5477     ?     11.2509+-0.2293        ? might be 1.0327x slower
   weird-inlining-const-prop                          2.4908+-0.1789            2.4364+-0.1189          might be 1.0223x faster

   <geometric>                                        8.8798+-0.0319     ?      8.9376+-0.0305        ? might be 1.0065x slower

                                                        TipOfTree                  Phantoms                                     
AsmBench:
   bigfib.cpp                                       496.0093+-6.3499     ?    498.4882+-4.4010        ?
   cray.c                                           429.5101+-4.1117          427.0995+-1.9842        
   dry.c                                            489.0392+-1.7439     ?    528.4001+-99.3151       ? might be 1.0805x slower
   FloatMM.c                                        724.7298+-1.9210          724.4025+-2.2871        
   gcc-loops.cpp                                   4267.1177+-14.9088    ?   4268.7125+-9.1571        ?
   n-body.c                                         980.9612+-3.1286          980.1216+-3.8824        
   Quicksort.c                                      420.5817+-1.5779     ?    423.2050+-3.2098        ?
   stepanov_container.cpp                          3594.8186+-9.1786     ?   3611.5050+-11.2683       ?
   Towers.c                                         260.2696+-1.9962          259.7695+-0.7081        

   <geometric>                                      793.2457+-2.1551     ?    799.8487+-14.8687       ? might be 1.0083x slower

                                                        TipOfTree                  Phantoms                                     
CompressionBench:
   huffman                                          358.9065+-2.8377     !    370.7792+-2.5978        ! definitely 1.0331x slower
   arithmetic-simple                                396.2536+-3.3336     ?    398.1304+-3.5848        ?
   arithmetic-precise                               298.9169+-3.8824          298.8947+-3.2508        
   arithmetic-complex-precise                       303.1027+-1.8073          299.7120+-5.4083          might be 1.0113x faster
   arithmetic-precise-order-0                       422.6335+-9.2720          422.0087+-3.8899        
   arithmetic-precise-order-1                       328.3498+-7.8892          328.1267+-3.1208        
   arithmetic-precise-order-2                       357.9410+-4.8630     ?    364.2371+-2.7906        ? might be 1.0176x slower
   arithmetic-simple-order-1                        423.3739+-2.2525     ?    425.4653+-3.3612        ?
   arithmetic-simple-order-2                        472.3193+-11.8346    ?    474.5986+-14.2289       ?
   lz-string                                        325.7289+-3.3978     ?    326.5235+-4.4278        ?

   <geometric>                                      364.7323+-2.8637     ?    366.6881+-2.4185        ? might be 1.0054x slower

                                                        TipOfTree                  Phantoms                                     
Geomean of preferred means:
   <scaled-result>                                   64.3153+-0.2380     !     64.7699+-0.2056        ! definitely 1.0071x slower
Comment 6 Filip Pizlo 2015-04-22 19:43:05 PDT
Created attachment 251399 [details]
the patch
Comment 7 WebKit Commit Bot 2015-04-22 19:46:17 PDT
Attachment 251399 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGPhantomInsertionPhase.cpp:119:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPhantomInsertionPhase.cpp:125:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPhantomInsertionPhase.cpp:126:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGForAllKills.h:56:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGForAllKills.h:129:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.cpp:963:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:86:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:7206:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 8 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 8 Filip Pizlo 2015-04-22 19:53:43 PDT
(In reply to comment #7)
> Attachment 251399 [details] did not pass style-queue:
> 
> 
> ERROR: Source/JavaScriptCore/dfg/DFGPhantomInsertionPhase.cpp:119:  Place
> brace on its own line for function definitions.  [whitespace/braces] [4]
> ERROR: Source/JavaScriptCore/dfg/DFGPhantomInsertionPhase.cpp:125:  Place
> brace on its own line for function definitions.  [whitespace/braces] [4]
> ERROR: Source/JavaScriptCore/dfg/DFGPhantomInsertionPhase.cpp:126:  Multi
> line control clauses should use braces.  [whitespace/braces] [4]
> ERROR: Source/JavaScriptCore/dfg/DFGForAllKills.h:56:  Place brace on its
> own line for function definitions.  [whitespace/braces] [4]
> ERROR: Source/JavaScriptCore/dfg/DFGForAllKills.h:129:  Place brace on its
> own line for function definitions.  [whitespace/braces] [4]
> ERROR: Source/JavaScriptCore/dfg/DFGGraph.cpp:963:  Place brace on its own
> line for function definitions.  [whitespace/braces] [4]
> ERROR: Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:86:  Place brace
> on its own line for function definitions.  [whitespace/braces] [4]
> ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:7206:  Place brace on
> its own line for function definitions.  [whitespace/braces] [4]
> Total errors found: 8 in 20 files
> 
> 
> If any of these errors are false positives, please file a bug against
> check-webkit-style.

All of these errors are incorrect. I'm using the accepted style for lambdas.
Comment 9 Filip Pizlo 2015-04-23 11:20:11 PDT
Created attachment 251458 [details]
the patch

Fixed some comments.
Comment 10 WebKit Commit Bot 2015-04-23 11:22:18 PDT
Attachment 251458 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGPhantomInsertionPhase.cpp:119:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPhantomInsertionPhase.cpp:125:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPhantomInsertionPhase.cpp:126:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGForAllKills.h:56:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGForAllKills.h:129:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.cpp:963:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:86:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:7206:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:58:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:58:  Should have a space between // and comment  [whitespace/comments] [4]
ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:63:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:63:  Should have a space between // and comment  [whitespace/comments] [4]
Total errors found: 12 in 20 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 11 Filip Pizlo 2015-04-23 11:23:35 PDT
(In reply to comment #10)
> Attachment 251458 [details] did not pass style-queue:
> 
> 
> ERROR: Source/JavaScriptCore/dfg/DFGPhantomInsertionPhase.cpp:119:  Place
> brace on its own line for function definitions.  [whitespace/braces] [4]
> ERROR: Source/JavaScriptCore/dfg/DFGPhantomInsertionPhase.cpp:125:  Place
> brace on its own line for function definitions.  [whitespace/braces] [4]
> ERROR: Source/JavaScriptCore/dfg/DFGPhantomInsertionPhase.cpp:126:  Multi
> line control clauses should use braces.  [whitespace/braces] [4]
> ERROR: Source/JavaScriptCore/dfg/DFGForAllKills.h:56:  Place brace on its
> own line for function definitions.  [whitespace/braces] [4]
> ERROR: Source/JavaScriptCore/dfg/DFGForAllKills.h:129:  Place brace on its
> own line for function definitions.  [whitespace/braces] [4]
> ERROR: Source/JavaScriptCore/dfg/DFGGraph.cpp:963:  Place brace on its own
> line for function definitions.  [whitespace/braces] [4]
> ERROR: Source/JavaScriptCore/dfg/DFGMovHintRemovalPhase.cpp:86:  Place brace
> on its own line for function definitions.  [whitespace/braces] [4]
> ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:7206:  Place brace on
> its own line for function definitions.  [whitespace/braces] [4]
> ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:58:  One space before end of
> line comments  [whitespace/comments] [5]
> ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:58:  Should have a space
> between // and comment  [whitespace/comments] [4]
> ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:63:  One space before end of
> line comments  [whitespace/comments] [5]
> ERROR: Source/JavaScriptCore/dfg/DFGNodeType.h:63:  Should have a space
> between // and comment  [whitespace/comments] [4]
> Total errors found: 12 in 20 files
> 
> 
> If any of these errors are false positives, please file a bug against
> check-webkit-style.

The style bot still hasn't been updated for our style of lambdas. That's one these are all about.
Comment 12 Geoffrey Garen 2015-04-23 13:05:27 PDT
Comment on attachment 251399 [details]
the patch

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

r=me

> Source/JavaScriptCore/dfg/DFGGraph.h:722
> +            // op_call_varargs inlining. Save the 

"Save the"

> Source/JavaScriptCore/dfg/DFGNodeType.h:59
> +    macro(GetLocal, NodeResultJS | NodeMustGenerate) \

I'm surprised that this is required. Why is this required?
Comment 13 Filip Pizlo 2015-04-23 13:16:50 PDT
(In reply to comment #12)
> Comment on attachment 251399 [details]
> the patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=251399&action=review
> 
> r=me
> 
> > Source/JavaScriptCore/dfg/DFGGraph.h:722
> > +            // op_call_varargs inlining. Save the 
> 
> "Save the"

Yup, fixed locally. "See the comment above"

> 
> > Source/JavaScriptCore/dfg/DFGNodeType.h:59
> > +    macro(GetLocal, NodeResultJS | NodeMustGenerate) \
> 
> I'm surprised that this is required. Why is this required?

The comment above says:

    /* Note that GetLocal is MustGenerate because it's our only way of knowing that some other */\
    /* basic block might have read a local variable in bytecode. We only remove GetLocals if it */\
    /* is redundant because of an earlier GetLocal or SetLocal in the same block. We could make */\
    /* these not MustGenerate and use a more sophisticated analysis to insert PhantomLocals in */\
    /* the same way that we insert Phantoms. https://bugs.webkit.org/show_bug.cgi?id=144086 */\

It's the non-local equivalent of making MovHint a strong use, sort of. The associated bug that this references would be the more elegant solution, which I'll do in some future patch.
Comment 14 Filip Pizlo 2015-04-23 13:48:59 PDT
Landed in http://trac.webkit.org/changeset/183207