Bug 136330

Summary: FTL should sink object allocations
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, benjamin, cmarcelo, commit-queue, ggaren, gyuyoung.kim, mark.lam, mhahnenb, mmirman, msaboff, nrotem, oliver, rakuco, ryuan.choi, sam, sergio
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on: 136331, 136811, 136860, 136963, 136977, 136978, 136983, 136992, 137006    
Bug Blocks: 136924, 136927, 136988, 137073, 137074, 137124, 137126    
Attachments:
Description Flags
it begins
none
more
none
more
none
a bit more
none
the easy part is done
none
it's coming along
none
and now without the phi sinking
none
the phase is complete
none
and now, with an OSR availability story!
none
it's getting interesting!
none
OSR exit story is coming together
none
OSR exit is almost done
none
OSR exit is done
none
filling in the inner bits
none
getting close
none
it is written
none
progress towards compiling
none
it compiles!
none
more
none
it sank a couple object allocations
none
starting to really work
none
and now, with more sensible heuristics!
none
more
none
the patch
oliver: review+
some fixes towards landing
none
more try to fix
none
so much fix
none
moer tests none

Description Filip Pizlo 2014-08-27 21:35:00 PDT
...
Comment 1 Filip Pizlo 2014-09-14 22:29:00 PDT
Created attachment 238103 [details]
it begins
Comment 2 Filip Pizlo 2014-09-15 18:03:05 PDT
Created attachment 238151 [details]
more
Comment 3 Filip Pizlo 2014-09-15 20:47:46 PDT
Created attachment 238154 [details]
more
Comment 4 Oliver Hunt 2014-09-16 09:59:58 PDT
Comment on attachment 238154 [details]
more

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

> Source/JavaScriptCore/dfg/DFGObjectMaterializationData.h:54
> +    float oneWaySimilarityScore(const ObjectMaterializationData&) const;
> +    
> +    // The minimum of the two possible one-way scores.
> +    float similarityScore(const ObjectMaterializationData&) const;

why float rather than double? (i'm simply asking as in most places we just use double so i was wondering what the specific reason was)
Comment 5 Filip Pizlo 2014-09-16 10:16:56 PDT
(In reply to comment #4)
> (From update of attachment 238154 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=238154&action=review
> 
> > Source/JavaScriptCore/dfg/DFGObjectMaterializationData.h:54
> > +    float oneWaySimilarityScore(const ObjectMaterializationData&) const;
> > +    
> > +    // The minimum of the two possible one-way scores.
> > +    float similarityScore(const ObjectMaterializationData&) const;
> 
> why float rather than double? (i'm simply asking as in most places we just use double so i was wondering what the specific reason was)

Well, I think that our approach of using double everywhere is basically broken.  It's better to carry 32 bits rather than 64 bits if at all possible.

That being said, in this particular place, having a float serves as a good signal that the information is very low fidelity.  That's why I used float here.
Comment 6 Filip Pizlo 2014-09-16 16:45:03 PDT
Created attachment 238219 [details]
a bit more
Comment 7 Filip Pizlo 2014-09-16 19:02:11 PDT
Created attachment 238232 [details]
the easy part is done
Comment 8 Filip Pizlo 2014-09-18 11:56:19 PDT
Created attachment 238317 [details]
it's coming along
Comment 9 Filip Pizlo 2014-09-18 13:00:08 PDT
Created attachment 238320 [details]
and now without the phi sinking

made more progress, but removed one of the more complex features: Phi sinking. I'll implement that later.
Comment 10 Filip Pizlo 2014-09-18 16:56:35 PDT
Created attachment 238334 [details]
the phase is complete

I still have to do the whole OSR exit story.  And the lowering.  And dragging the new node types through the whole compiler.
Comment 11 Oliver Hunt 2014-09-18 17:27:58 PDT
Comment on attachment 238334 [details]
the phase is complete

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

> Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:657
> +            DFG_CRASH(m_graph, where, "Bad escapee op");

the more i see dfg_crash the more i wonder if we want to make this a syslog event, but keep on going and just nuke the dfg compilation
Comment 12 Filip Pizlo 2014-09-18 18:05:43 PDT
(In reply to comment #11)
> (From update of attachment 238334 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=238334&action=review
> 
> > Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:657
> > +            DFG_CRASH(m_graph, where, "Bad escapee op");
> 
> the more i see dfg_crash the more i wonder if we want to make this a syslog event, but keep on going and just nuke the dfg compilation

Sounds like a nice idea, but how do you "nuke" the DFG compilation?

DFG_CRASH() can come from an arbitrarily deep stack.  Even if the DFG had allocated things only using RAII, we wouldn't be able to "nuke" anything unless we switched to using C++ exceptions.

Even then, this feels like an extremely risky proposition.  I don't like it.
Comment 13 Oliver Hunt 2014-09-18 18:08:36 PDT
(In reply to comment #12)
> (In reply to comment #11)
> > (From update of attachment 238334 [details] [details])
> > View in context: https://bugs.webkit.org/attachment.cgi?id=238334&action=review
> > 
> > > Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:657
> > > +            DFG_CRASH(m_graph, where, "Bad escapee op");
> > 
> > the more i see dfg_crash the more i wonder if we want to make this a syslog event, but keep on going and just nuke the dfg compilation
> 
> Sounds like a nice idea, but how do you "nuke" the DFG compilation?
> 
> DFG_CRASH() can come from an arbitrarily deep stack.  Even if the DFG had allocated things only using RAII, we wouldn't be able to "nuke" anything unless we switched to using C++ exceptions.
> 
> Even then, this feels like an extremely risky proposition.  I don't like it.

True, i forget that the reason for the crash is that the dfg itself is in an inconsistent state, so our usual "compilation failed" flag is not sufficient as we could just end up wandering into the weeds of progressively worse compiler state. So i agree, this is actually just a terrible idea :)
Comment 14 Filip Pizlo 2014-09-18 18:13:05 PDT
Created attachment 238343 [details]
and now, with an OSR availability story!

Now I just need to:

- Drag the new nodes through the compiler.
- Teach the FTL OSR exit compiler to materialize objects.  We now have basically all of the necessary information right up until the point where we create FTL::OSRExits.
Comment 15 Filip Pizlo 2014-09-20 12:35:13 PDT
Created attachment 238415 [details]
it's getting interesting!

Started doing the OSR exit story
Comment 16 Filip Pizlo 2014-09-20 19:00:21 PDT
Created attachment 238419 [details]
OSR exit story is coming together
Comment 17 Filip Pizlo 2014-09-21 10:21:06 PDT
Created attachment 238425 [details]
OSR exit is almost done
Comment 18 Filip Pizlo 2014-09-21 13:26:34 PDT
Created attachment 238432 [details]
OSR exit is done

Now I've gotta drap those new node types through the DFG and FTL.
Comment 19 Filip Pizlo 2014-09-21 17:38:19 PDT
Created attachment 238441 [details]
filling in the inner bits

Started hacking on the DFG IR changes.
Comment 20 Filip Pizlo 2014-09-22 10:48:52 PDT
Created attachment 238487 [details]
getting close
Comment 21 Filip Pizlo 2014-09-22 13:18:07 PDT
Created attachment 238493 [details]
it is written

Haven't tried compiling it yet.
Comment 22 Filip Pizlo 2014-09-22 14:37:59 PDT
Created attachment 238496 [details]
progress towards compiling

Fixed a lot of errors, still a lot to go.
Comment 23 Filip Pizlo 2014-09-22 18:01:57 PDT
Created attachment 238508 [details]
it compiles!

OMG!
Comment 24 Filip Pizlo 2014-09-22 20:29:17 PDT
Created attachment 238514 [details]
more

It's at the point where it's trying to sink some stuff, and of course it crashes.
Comment 25 Filip Pizlo 2014-09-22 22:44:32 PDT
Created attachment 238516 [details]
it sank a couple object allocations
Comment 26 Filip Pizlo 2014-09-23 17:06:58 PDT
Created attachment 238577 [details]
starting to really work

It did elision of an object tree.  The actual sinking is also starting to work.
Comment 27 Filip Pizlo 2014-09-24 13:23:17 PDT
Created attachment 238607 [details]
and now, with more sensible heuristics!
Comment 28 Filip Pizlo 2014-09-24 17:32:03 PDT
Created attachment 238629 [details]
more

Starting to pass tests!
Comment 29 Filip Pizlo 2014-09-25 12:26:32 PDT
Preliminary micro benchmark numbers.  Note that they get bigger speed-ups if you let them run longer, since for these short runs we're seeing some FTL latency.


Benchmark report for JSRegress on hodor (MacBookPro11,3).

VMs tested:
"TipOfTree" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r173938)
"ObjectSink" at /Volumes/Data/primary/OpenSource/WebKitBuild/Release/jsc (r173938)

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                 ObjectSink                                    

elidable-new-object-tree           193.8035+-2.2718     ^     36.1748+-0.9195        ^ definitely 5.3574x faster
obvious-sink-pathology-taken       104.1289+-0.8131     ?    104.5268+-1.7585        ?
obvious-sink-pathology             101.1687+-1.4329          100.7952+-0.5291        
obviously-elidable-new-object      100.5957+-1.5293     ^     26.4845+-1.9935        ^ definitely 3.7983x faster
sinkable-new-object-taken          103.9939+-0.5044     ^     42.9507+-0.9302        ^ definitely 2.4212x faster
sinkable-new-object                101.2094+-1.1888     ^     29.0160+-0.8383        ^ definitely 3.4881x faster

<arithmetic>                       117.4833+-0.6296     ^     56.6580+-0.7623        ^ definitely 2.0736x faster
<geometric> *                      113.7051+-0.5540     ^     48.2083+-0.9274        ^ definitely 2.3586x faster
<harmonic>                         110.9271+-0.5235     ^     42.0238+-1.0623        ^ definitely 2.6396x faster
Comment 30 Filip Pizlo 2014-09-25 13:03:39 PDT
No speed-up on Octane yet despite the fact that Octane should be benefiting.  There's probably something else weird going on.  But I'm tempted to say that the patch should just be landed in its current form and then we can start seeing its bugtail while I also investigate performance issues.


Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on hodor (MacBookPro11,3).

VMs tested:
"TipOfTree" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r173938)
"ObjectSink" at /Volumes/Data/primary/OpenSource/WebKitBuild/Release/jsc (r173938)

Collected 10 samples per benchmark/VM, with 10 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                 ObjectSink                                    
SunSpider:
   3d-cube                                            4.0736+-0.0935     ?      4.1312+-0.1616        ? might be 1.0141x slower
   3d-morph                                           5.4933+-0.2909            5.4244+-0.1540          might be 1.0127x faster
   3d-raytrace                                        4.9840+-0.0668     ?      4.9866+-0.0821        ?
   access-binary-trees                                1.8164+-0.1974            1.7719+-0.1091          might be 1.0251x faster
   access-fannkuch                                    5.0638+-0.1562     ?      5.0938+-0.1613        ?
   access-nbody                                       2.4461+-0.1068     ?      2.4748+-0.0974        ? might be 1.0117x slower
   access-nsieve                                      3.4502+-0.1021     ?      3.5499+-0.2022        ? might be 1.0289x slower
   bitops-3bit-bits-in-byte                           1.3635+-0.0280     ?      1.4013+-0.0721        ? might be 1.0277x slower
   bitops-bits-in-byte                                3.0401+-0.0915     ?      3.1281+-0.1884        ? might be 1.0289x slower
   bitops-bitwise-and                                 2.0086+-0.0438     ?      2.0283+-0.0957        ?
   bitops-nsieve-bits                                 3.4272+-0.1663            3.3948+-0.1693        
   controlflow-recursive                              1.9515+-0.1387            1.9248+-0.2362          might be 1.0139x faster
   crypto-aes                                         3.5477+-0.3550            3.4591+-0.1342          might be 1.0256x faster
   crypto-md5                                         2.0466+-0.0906            2.0364+-0.0608        
   crypto-sha1                                        2.5480+-0.2958            2.2750+-0.0755          might be 1.1200x faster
   date-format-tofte                                  6.2456+-0.1098     ?      6.2512+-0.1385        ?
   date-format-xparb                                  4.3795+-0.1604            4.3265+-0.1826          might be 1.0122x faster
   math-cordic                                        2.7758+-0.1448            2.7480+-0.0848          might be 1.0101x faster
   math-partial-sums                                  4.5306+-0.1648     ?      4.6414+-0.2299        ? might be 1.0244x slower
   math-spectral-norm                                 1.6880+-0.0510     ?      1.7427+-0.1111        ? might be 1.0324x slower
   regexp-dna                                         6.1733+-0.0871     ?      6.2123+-0.1281        ?
   string-base64                                      3.9752+-0.3076            3.7006+-0.0941          might be 1.0742x faster
   string-fasta                                       5.6504+-0.0785     ?      5.7506+-0.2350        ? might be 1.0177x slower
   string-tagcloud                                    8.4470+-0.1550            8.3314+-0.1664          might be 1.0139x faster
   string-unpack-code                                18.5340+-0.6170     ?     19.2565+-0.6157        ? might be 1.0390x slower
   string-validate-input                              4.1061+-0.0964     ?      4.1275+-0.0798        ?

   <arithmetic> *                                     4.3756+-0.0393     ?      4.3911+-0.0219        ? might be 1.0035x slower
   <geometric>                                        3.6571+-0.0359            3.6497+-0.0236          might be 1.0020x faster
   <harmonic>                                         3.1677+-0.0330            3.1589+-0.0255          might be 1.0028x faster

                                                        TipOfTree                 ObjectSink                                    
LongSpider:
   3d-cube                                          795.1711+-3.4328     ?    797.9087+-14.8610       ?
   3d-morph                                        1488.6118+-19.8436        1480.7921+-3.3760        
   3d-raytrace                                      658.5779+-12.2231    ?    744.7528+-141.2347      ? might be 1.1308x slower
   access-binary-trees                              823.9434+-5.5104          821.8312+-5.2494        
   access-fannkuch                                  255.1417+-3.8811     ?    258.5003+-5.9060        ? might be 1.0132x slower
   access-nbody                                     564.4917+-12.0718         555.1010+-1.0184          might be 1.0169x faster
   access-nsieve                                    716.0643+-8.0197     ?    723.0205+-4.2389        ?
   bitops-3bit-bits-in-byte                          39.8579+-0.7522     ?     42.9928+-6.6219        ? might be 1.0787x slower
   bitops-bits-in-byte                               94.7468+-2.3418           90.3479+-2.4748          might be 1.0487x faster
   bitops-nsieve-bits                               680.9602+-15.5628         673.5003+-4.5675          might be 1.0111x faster
   controlflow-recursive                            437.7117+-1.8036     ?    444.0010+-12.4956       ? might be 1.0144x slower
   crypto-aes                                       538.9334+-9.4448          530.2676+-2.0969          might be 1.0163x faster
   crypto-md5                                       576.1292+-8.0603          569.4491+-13.7574         might be 1.0117x faster
   crypto-sha1                                      640.2897+-5.8471          640.0480+-17.7962       
   date-format-tofte                                530.1172+-12.9145         529.9203+-26.7574       
   date-format-xparb                                614.5069+-12.7331         605.3984+-2.8488          might be 1.0150x faster
   math-cordic                                      496.4863+-1.4884     ?    499.1370+-2.6744        ?
   math-partial-sums                                481.3513+-1.8898     ?    482.7122+-2.5399        ?
   math-spectral-norm                               548.1732+-1.7979     ?    549.1584+-3.8932        ?
   string-base64                                    301.7307+-3.4415          301.3638+-4.0392        
   string-fasta                                     365.8233+-4.7293     ?    366.0346+-2.6741        ?
   string-tagcloud                                  196.2323+-1.4259          195.7555+-2.0510        

   <arithmetic>                                     538.4115+-1.4627     ?    540.9997+-6.5171        ? might be 1.0048x slower
   <geometric> *                                    439.0358+-0.8266     ?    440.6401+-3.9258        ? might be 1.0037x slower
   <harmonic>                                       286.0557+-1.4330     ?    289.5098+-10.4457       ? might be 1.0121x slower

                                                        TipOfTree                 ObjectSink                                    
V8Spider:
   crypto                                            48.2752+-1.3846     ?     49.1520+-1.6951        ? might be 1.0182x slower
   deltablue                                         91.1672+-1.8436     ?     92.9556+-1.6750        ? might be 1.0196x slower
   earley-boyer                                      36.8777+-0.8371     ?     38.4437+-1.1980        ? might be 1.0425x slower
   raytrace                                          29.3090+-1.0112     ?     30.5416+-1.2061        ? might be 1.0421x slower
   regexp                                            52.6772+-1.4316     ?     52.7314+-1.0905        ?
   richards                                          85.5490+-1.4632     ?     85.5571+-1.9301        ?
   splay                                             28.3698+-1.2065           27.4055+-0.4333          might be 1.0352x faster

   <arithmetic>                                      53.1750+-0.3373     ?     53.8267+-0.5322        ? might be 1.0123x slower
   <geometric> *                                     48.2125+-0.4646     ?     48.8167+-0.4806        ? might be 1.0125x slower
   <harmonic>                                        44.0103+-0.6092     ?     44.5336+-0.4755        ? might be 1.0119x slower

                                                        TipOfTree                 ObjectSink                                    
Octane:
   encrypt                                           0.20831+-0.01086    ?     0.20881+-0.01219       ?
   decrypt                                           3.55320+-0.01119    ?     3.56184+-0.02193       ?
   deltablue                                x2       0.16184+-0.00065    ?     0.16313+-0.00101       ?
   earley                                            0.61592+-0.01129    ?     0.61606+-0.00509       ?
   boyer                                             4.17331+-0.07435          4.17235+-0.06964       
   navier-stokes                            x2       4.99902+-0.03372          4.97954+-0.02711       
   raytrace                                 x2       1.19487+-0.01466          1.17445+-0.01119         might be 1.0174x faster
   richards                                 x2       0.10919+-0.00393          0.10850+-0.00100       
   splay                                    x2       0.32842+-0.00852          0.32676+-0.00237       
   regexp                                   x2      29.74622+-0.58037         29.30978+-0.21414         might be 1.0149x faster
   pdfjs                                    x2      45.56425+-0.55162    ?    45.58118+-0.47688       ?
   mandreel                                 x2      46.67298+-0.57235    ?    46.76793+-0.23432       ?
   gbemu                                    x2      34.99173+-0.24599    ?    35.34839+-0.26059       ? might be 1.0102x slower
   closure                                           0.48194+-0.00389    ?     0.48719+-0.00280       ? might be 1.0109x slower
   jquery                                            5.87499+-0.03814    ?     5.87953+-0.05988       ?
   box2d                                    x2      11.54561+-0.07878         11.52141+-0.09609       
   zlib                                     x2     409.66416+-3.77304    ?   411.51576+-8.78836       ?
   typescript                               x2     654.76238+-9.14946    ?   655.98979+-7.21481       ?

   <arithmetic>                                     83.14630+-0.57663    ?    83.34997+-0.81999       ? might be 1.0024x slower
   <geometric> *                                     6.06269+-0.03433          6.05741+-0.01698         might be 1.0009x faster
   <harmonic>                                        0.61887+-0.00741          0.61865+-0.00320         might be 1.0004x faster

                                                        TipOfTree                 ObjectSink                                    
Kraken:
   ai-astar                                          278.688+-5.290            274.488+-6.025           might be 1.0153x faster
   audio-beat-detection                               97.423+-0.625      !     100.738+-1.185         ! definitely 1.0340x slower
   audio-dft                                         169.115+-3.034            168.868+-3.858         
   audio-fft                                          72.711+-3.063             70.899+-1.958           might be 1.0256x faster
   audio-oscillator                                  211.389+-2.564      ?     211.468+-1.867         ?
   imaging-darkroom                                  151.301+-1.230      ?     151.388+-1.205         ?
   imaging-desaturate                                 55.795+-1.368             55.020+-2.027           might be 1.0141x faster
   imaging-gaussian-blur                              86.034+-0.870      ?      86.890+-2.702         ?
   json-parse-financial                               37.014+-0.742             36.187+-0.734           might be 1.0228x faster
   json-stringify-tinderbox                           50.535+-0.753             49.506+-0.978           might be 1.0208x faster
   stanford-crypto-aes                                51.111+-0.340      ?      52.131+-1.002         ? might be 1.0200x slower
   stanford-crypto-ccm                                46.894+-3.749      ?      49.027+-3.443         ? might be 1.0455x slower
   stanford-crypto-pbkdf2                            152.052+-3.484            150.703+-1.962         
   stanford-crypto-sha256-iterative                   48.492+-1.401             47.862+-0.826           might be 1.0132x faster

   <arithmetic> *                                    107.754+-0.706            107.513+-0.772           might be 1.0022x faster
   <geometric>                                        88.029+-0.672             87.955+-0.729           might be 1.0008x faster
   <harmonic>                                         73.822+-0.822             73.737+-0.824           might be 1.0012x faster

                                                        TipOfTree                 ObjectSink                                    
JSRegress:
   abs-boolean                                        2.4977+-0.3128            2.4763+-0.1959        
   adapt-to-double-divide                            16.6671+-0.7815           16.2563+-0.4523          might be 1.0253x faster
   aliased-arguments-getbyval                         0.7130+-0.0161     ?      0.7225+-0.0216        ? might be 1.0134x slower
   allocate-big-object                                2.0362+-0.1960     ?      2.0880+-0.1208        ? might be 1.0255x slower
   arity-mismatch-inlining                            0.7836+-0.1638            0.7450+-0.0461          might be 1.0518x faster
   array-access-polymorphic-structure                 5.6320+-0.0939            5.5184+-0.1136          might be 1.0206x faster
   array-nonarray-polymorhpic-access                 27.5406+-0.5950     ?     27.8803+-0.7238        ? might be 1.0123x slower
   array-prototype-every                             66.9343+-0.9828     ?     68.0013+-1.4046        ? might be 1.0159x slower
   array-prototype-forEach                           67.1717+-1.9965     ?     68.5246+-3.0798        ? might be 1.0201x slower
   array-prototype-map                               83.7254+-1.2155     ?     84.2883+-1.6497        ?
   array-prototype-some                              66.5180+-1.2629     ?     66.8806+-1.2210        ?
   array-splice-contiguous                           37.4641+-1.2011     ?     37.8989+-1.0139        ? might be 1.0116x slower
   array-with-double-add                              3.3758+-0.0666     ?      3.5399+-0.2501        ? might be 1.0486x slower
   array-with-double-increment                        2.9201+-0.0799            2.8869+-0.0575          might be 1.0115x faster
   array-with-double-mul-add                          3.9558+-0.1030     ?      3.9781+-0.0914        ?
   array-with-double-sum                              3.0035+-0.0317     ?      3.1011+-0.0854        ? might be 1.0325x slower
   array-with-int32-add-sub                           6.1066+-0.2869            6.0283+-0.2405          might be 1.0130x faster
   array-with-int32-or-double-sum                     3.1036+-0.0768     ?      3.2001+-0.1349        ? might be 1.0311x slower
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     27.3382+-0.9101           27.0634+-0.5593          might be 1.0102x faster
   ArrayBuffer-DataView-alloc-long-lived             12.0789+-0.2517     ?     12.2303+-0.1847        ? might be 1.0125x slower
   ArrayBuffer-Int32Array-byteOffset                  3.3123+-0.1240            3.1966+-0.0715          might be 1.0362x faster
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     27.7476+-0.8544           27.4184+-1.0899          might be 1.0120x faster
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     19.6701+-0.8196     ?     20.4470+-1.0799        ? might be 1.0395x slower
   ArrayBuffer-Int8Array-alloc-long-lived            11.9355+-0.5108           11.7742+-0.4802          might be 1.0137x faster
   ArrayBuffer-Int8Array-alloc                        9.8973+-0.3981     ?     10.0576+-0.3808        ? might be 1.0162x slower
   asmjs_bool_bug                                     6.9984+-0.1550            6.8838+-0.0531          might be 1.0166x faster
   assign-custom-setter-polymorphic                   2.5300+-0.3132            2.4694+-0.0950          might be 1.0245x faster
   assign-custom-setter                               3.3851+-0.1888            3.3411+-0.1666          might be 1.0131x faster
   basic-set                                          9.2971+-0.4447     ?      9.3129+-0.4484        ?
   big-int-mul                                        3.3720+-0.0935            3.3231+-0.0525          might be 1.0147x faster
   boolean-test                                       2.7256+-0.0573            2.6797+-0.0489          might be 1.0171x faster
   branch-fold                                        3.5352+-0.2576            3.4659+-0.1135          might be 1.0200x faster
   by-val-generic                                     7.2828+-0.1004            7.1778+-0.1369          might be 1.0146x faster
   call-spread-apply                                 12.3573+-0.3657     ?     12.4610+-0.3853        ?
   call-spread-call                                   4.9333+-0.1398     ?      5.1968+-0.3278        ? might be 1.0534x slower
   captured-assignments                               0.3679+-0.0284            0.3670+-0.0146        
   cast-int-to-double                                 4.7381+-0.1098            4.6739+-0.0537          might be 1.0137x faster
   cell-argument                                      6.1764+-0.2611     ?      6.2663+-0.4247        ? might be 1.0146x slower
   cfg-simplify                                       2.8943+-0.1820            2.8235+-0.1160          might be 1.0250x faster
   chain-getter-access                                8.6803+-0.1774            8.6802+-0.0924        
   cmpeq-obj-to-obj-other                             8.6430+-0.9815            8.6296+-0.9591        
   constant-test                                      4.4998+-0.1802            4.4147+-0.0578          might be 1.0193x faster
   DataView-custom-properties                        31.8510+-0.6835           31.5125+-0.9157          might be 1.0107x faster
   delay-tear-off-arguments-strictmode                2.1968+-0.0556     ?      2.2016+-0.0596        ?
   destructuring-arguments                            4.5750+-0.1008     ?      4.7267+-0.1946        ? might be 1.0332x slower
   destructuring-swap                                 4.4839+-0.0825     ?      4.4896+-0.0747        ?
   direct-arguments-getbyval                          0.8526+-0.0582            0.7887+-0.0442          might be 1.0809x faster
   div-boolean-double                                 5.2054+-0.0388     ?      5.2383+-0.0705        ?
   div-boolean                                        8.0819+-0.1166     ?      8.1092+-0.1482        ?
   double-get-by-val-out-of-bounds                    3.8500+-0.1698            3.8338+-0.1515        
   double-pollution-getbyval                          8.5983+-0.1455     ?      8.6469+-0.3196        ?
   double-pollution-putbyoffset                       3.6946+-0.1900            3.5471+-0.0620          might be 1.0416x faster
   double-to-int32-typed-array-no-inline              2.0319+-0.1097            1.9634+-0.0498          might be 1.0349x faster
   double-to-int32-typed-array                        1.6265+-0.1112     ?      1.8396+-0.3586        ? might be 1.1310x slower
   double-to-uint32-typed-array-no-inline             2.1698+-0.2807            2.0485+-0.1065          might be 1.0592x faster
   double-to-uint32-typed-array                       1.6839+-0.0625     ?      1.6976+-0.0824        ?
   elidable-new-object-tree                         192.1520+-0.9611     ^     36.0336+-0.7570        ^ definitely 5.3326x faster
   empty-string-plus-int                              4.4591+-0.0955            4.3887+-0.0980          might be 1.0160x faster
   emscripten-cube2hash                              26.8159+-0.6860     ?     27.4151+-0.9972        ? might be 1.0223x slower
   external-arguments-getbyval                        1.2734+-0.2778            1.1295+-0.0320          might be 1.1274x faster
   external-arguments-putbyval                        1.6586+-0.0262     ?      1.7846+-0.1228        ? might be 1.0759x slower
   fixed-typed-array-storage-var-index                1.2426+-0.1401            1.1740+-0.0342          might be 1.0585x faster
   fixed-typed-array-storage                          0.7655+-0.0487            0.7580+-0.0391        
   Float32Array-matrix-mult                           3.7107+-0.0664     ?      3.9534+-0.3206        ? might be 1.0654x slower
   Float32Array-to-Float64Array-set                  49.4643+-1.9229           47.8994+-0.7557          might be 1.0327x faster
   Float64Array-alloc-long-lived                     52.7043+-0.4012     ?     53.5983+-0.9620        ? might be 1.0170x slower
   Float64Array-to-Int16Array-set                    60.2679+-0.7872           58.2927+-1.2109          might be 1.0339x faster
   fold-double-to-int                                12.5828+-0.2230           12.3338+-0.1805          might be 1.0202x faster
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     17.5861+-0.4263     ?     17.7643+-0.4967        ? might be 1.0101x slower
   fold-get-by-id-to-multi-get-by-offset             16.0603+-0.3640           16.0524+-0.4169        
   fold-multi-get-by-offset-to-get-by-offset   
                                                     11.6422+-0.3407     ?     13.6084+-1.6528        ? might be 1.1689x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                     13.4373+-1.6078           12.4829+-0.9769          might be 1.0765x faster
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                     13.2919+-1.0189           13.0447+-0.7048          might be 1.0189x faster
   fold-multi-put-by-offset-to-put-by-offset   
                                                     11.4587+-0.6320     ?     12.3055+-0.9200        ? might be 1.0739x slower
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     15.1763+-0.4160           15.0043+-0.7178          might be 1.0115x faster
   fold-put-by-id-to-multi-put-by-offset             18.6723+-0.9867           17.7198+-0.3614          might be 1.0538x faster
   fold-put-structure                                11.9634+-0.7794     ?     12.3123+-0.6146        ? might be 1.0292x slower
   for-of-iterate-array-entries                       4.8536+-0.0610     ?      5.1951+-0.3776        ? might be 1.0704x slower
   for-of-iterate-array-keys                          2.5821+-0.1625     ?      2.5960+-0.0799        ?
   for-of-iterate-array-values                        2.4642+-0.3641            2.3087+-0.1497          might be 1.0674x faster
   fround                                            18.0632+-0.5367           17.7431+-0.5797          might be 1.0180x faster
   ftl-library-inlining-dataview                     61.0953+-0.6705     ?     61.7800+-0.9525        ? might be 1.0112x slower
   ftl-library-inlining                             139.1096+-2.0872     ^    134.3826+-2.0039        ^ definitely 1.0352x faster
   function-dot-apply                                 1.2747+-0.0676     ?      1.3027+-0.1021        ? might be 1.0219x slower
   function-test                                      2.8359+-0.0500     ?      2.9792+-0.2852        ? might be 1.0505x slower
   function-with-eval                                55.8743+-1.0483     ?     56.1193+-0.6306        ?
   gcse-poly-get-less-obvious                        14.7894+-0.5713           14.7025+-0.6703        
   gcse-poly-get                                     16.1627+-0.4214           16.0224+-0.4872        
   gcse                                               3.7293+-0.2337     ?      3.8074+-0.2005        ? might be 1.0209x slower
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.5549+-0.1565            2.4774+-0.0347          might be 1.0313x faster
   get-by-id-bimorphic-check-structure-elimination   
                                                      5.5846+-0.0252     ?      5.6271+-0.1490        ?
   get-by-id-chain-from-try-block                     5.6171+-0.1255     ?      5.6760+-0.2103        ? might be 1.0105x slower
   get-by-id-check-structure-elimination              4.3319+-0.1697            4.2347+-0.0818          might be 1.0229x faster
   get-by-id-proto-or-self                           15.0178+-0.6360           14.2012+-0.5634          might be 1.0575x faster
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      2.8883+-0.2196            2.8355+-0.0850          might be 1.0186x faster
   get-by-id-self-or-proto                           14.2965+-0.5798     ?     14.5163+-0.6144        ? might be 1.0154x slower
   get-by-val-out-of-bounds                           3.6082+-0.1144            3.5605+-0.0712          might be 1.0134x faster
   get_callee_monomorphic                             3.2533+-0.1546            3.1869+-0.1467          might be 1.0208x faster
   get_callee_polymorphic                             2.9238+-0.1166            2.9160+-0.0771        
   getter-no-activation                               4.7400+-0.1079     ?      4.7638+-0.2108        ?
   getter-richards                                  130.2109+-9.6182          126.6986+-4.7308          might be 1.0277x faster
   getter                                             4.7292+-0.1122     ?      4.7882+-0.1458        ? might be 1.0125x slower
   global-var-const-infer-fire-from-opt               0.8324+-0.0915     ?      0.8810+-0.0783        ? might be 1.0583x slower
   global-var-const-infer                             0.8095+-0.0788     ?      0.8194+-0.0282        ? might be 1.0123x slower
   HashMap-put-get-iterate-keys                      23.2031+-0.2597           23.1815+-0.2333        
   HashMap-put-get-iterate                           23.0100+-0.3339     ?     23.1941+-0.3968        ?
   HashMap-string-put-get-iterate                    23.7296+-0.9371           23.4650+-0.6760          might be 1.0113x faster
   hoist-make-rope                                    8.5847+-0.7919     ?      8.7686+-0.6625        ? might be 1.0214x slower
   hoist-poly-check-structure-effectful-loop   
                                                      4.0337+-0.0613     ?      4.2646+-0.4978        ? might be 1.0573x slower
   hoist-poly-check-structure                         3.3769+-0.3637            3.1933+-0.0883          might be 1.0575x faster
   imul-double-only                                   6.2315+-0.1101     ?      6.3415+-0.0628        ? might be 1.0177x slower
   imul-int-only                                      8.2176+-0.2691            8.0062+-0.1970          might be 1.0264x faster
   imul-mixed                                         6.2714+-0.2595     ?      6.6688+-0.8013        ? might be 1.0634x slower
   in-four-cases                                     16.1066+-1.3121           15.5806+-0.5029          might be 1.0338x faster
   in-one-case-false                                  8.1014+-0.2791            7.9196+-0.2077          might be 1.0230x faster
   in-one-case-true                                   8.0199+-0.1943            8.0172+-0.2467        
   in-two-cases                                       8.2323+-0.1718     ?      8.7496+-0.4244        ? might be 1.0628x slower
   indexed-properties-in-objects                      2.8366+-0.2333            2.7590+-0.1159          might be 1.0281x faster
   infer-closure-const-then-mov-no-inline             3.0397+-0.1311     ?      3.0686+-0.1375        ?
   infer-closure-const-then-mov                      21.1604+-0.4181           21.1325+-0.4221        
   infer-closure-const-then-put-to-scope-no-inline   
                                                     10.4272+-0.2436     ?     10.5067+-0.2203        ?
   infer-closure-const-then-put-to-scope             23.0290+-1.6025           23.0263+-0.5942        
   infer-closure-const-then-reenter-no-inline   
                                                     47.4242+-0.4443     ?     47.6812+-0.8344        ?
   infer-closure-const-then-reenter                  22.8062+-0.3962     ?     22.8651+-0.5010        ?
   infer-constant-global-property                     3.3049+-0.1267     ?      3.3066+-0.1330        ?
   infer-constant-property                            2.6667+-0.3068            2.5104+-0.0666          might be 1.0623x faster
   infer-one-time-closure-ten-vars                    8.7719+-0.2851            8.6339+-0.1452          might be 1.0160x faster
   infer-one-time-closure-two-vars                    8.3203+-0.2396            8.1988+-0.1530          might be 1.0148x faster
   infer-one-time-closure                             8.1994+-0.1889            8.1846+-0.1777        
   infer-one-time-deep-closure                       12.8553+-0.4267     ?     13.1153+-0.3687        ? might be 1.0202x slower
   inline-arguments-access                            1.2391+-0.0370     ?      1.3156+-0.2098        ? might be 1.0618x slower
   inline-arguments-aliased-access                    1.4250+-0.0475     ?      1.4421+-0.0668        ? might be 1.0120x slower
   inline-arguments-local-escape                     10.6137+-0.4971     ?     10.9561+-0.4715        ? might be 1.0323x slower
   inline-get-scoped-var                              4.6015+-0.0507     ?      4.8238+-0.2316        ? might be 1.0483x slower
   inlined-put-by-id-transition                       8.2964+-0.5003     ?      9.2620+-2.9210        ? might be 1.1164x slower
   int-or-other-abs-then-get-by-val                   4.5252+-0.1218     ?      4.7322+-0.4623        ? might be 1.0458x slower
   int-or-other-abs-zero-then-get-by-val             16.1546+-0.3996           16.0283+-0.3481        
   int-or-other-add-then-get-by-val                   3.8491+-0.0543     ?      4.1172+-0.4772        ? might be 1.0697x slower
   int-or-other-add                                   4.7224+-0.0999            4.6678+-0.0697          might be 1.0117x faster
   int-or-other-div-then-get-by-val                   3.8703+-0.1453            3.7320+-0.0553          might be 1.0371x faster
   int-or-other-max-then-get-by-val                   3.8453+-0.0515     ?      3.9910+-0.1416        ? might be 1.0379x slower
   int-or-other-min-then-get-by-val                   4.0648+-0.0960            4.0153+-0.1371          might be 1.0123x faster
   int-or-other-mod-then-get-by-val                   3.4830+-0.0803            3.4715+-0.0828        
   int-or-other-mul-then-get-by-val                   3.5251+-0.0812            3.4950+-0.1432        
   int-or-other-neg-then-get-by-val                   4.3030+-0.1097     ?      4.4106+-0.1433        ? might be 1.0250x slower
   int-or-other-neg-zero-then-get-by-val             16.3695+-0.9442           15.8948+-0.4074          might be 1.0299x faster
   int-or-other-sub-then-get-by-val                   3.8834+-0.0771            3.8667+-0.0387        
   int-or-other-sub                                   3.2907+-0.1140     ?      3.3075+-0.1415        ?
   int-overflow-local                                 4.0237+-0.1165     ?      4.0473+-0.1671        ?
   Int16Array-alloc-long-lived                       41.2958+-0.9484     ?     41.3176+-1.1737        ?
   Int16Array-bubble-sort-with-byteLength            19.5621+-0.3715           19.2634+-0.2882          might be 1.0155x faster
   Int16Array-bubble-sort                            18.4691+-0.2694           18.2361+-0.4722          might be 1.0128x faster
   Int16Array-load-int-mul                            1.3416+-0.0359     ?      1.3723+-0.1302        ? might be 1.0229x slower
   Int16Array-to-Int32Array-set                      45.9481+-1.2005           45.5389+-1.0413        
   Int32Array-alloc-large                            13.5084+-0.5417           13.2779+-0.3994          might be 1.0174x faster
   Int32Array-alloc-long-lived                       45.3691+-0.9131           44.9739+-0.7876        
   Int32Array-alloc                                   2.7514+-0.3290            2.4681+-0.2195          might be 1.1148x faster
   Int32Array-Int8Array-view-alloc                    5.5932+-0.1133     ?      5.9610+-0.5617        ? might be 1.0658x slower
   int52-spill                                        5.8257+-0.3397     ?      5.8678+-0.1426        ?
   Int8Array-alloc-long-lived                        37.5829+-1.0634           37.1983+-0.5187          might be 1.0103x faster
   Int8Array-load-with-byteLength                     3.4852+-0.2141            3.3818+-0.1788          might be 1.0306x faster
   Int8Array-load                                     3.4187+-0.1605            3.3555+-0.1055          might be 1.0188x faster
   integer-divide                                    10.5611+-0.4348           10.4792+-0.2025        
   integer-modulo                                     1.6044+-0.0949            1.5588+-0.0394          might be 1.0293x faster
   large-int-captured                                 5.6357+-0.2564            5.6291+-0.0710        
   large-int-neg                                     14.6240+-0.3948     ?     15.0808+-0.5619        ? might be 1.0312x slower
   large-int                                         13.9895+-0.2306     ?     14.0241+-0.4464        ?
   logical-not                                        4.1399+-0.0902            4.1284+-0.0411        
   lots-of-fields                                     7.9228+-0.4614            7.7933+-0.3505          might be 1.0166x faster
   make-indexed-storage                               2.6175+-0.1626            2.5509+-0.0982          might be 1.0261x faster
   make-rope-cse                                      3.5274+-0.2196     ?      3.6290+-0.1344        ? might be 1.0288x slower
   marsaglia-larger-ints                             33.6250+-0.6190     ?     34.2191+-0.8002        ? might be 1.0177x slower
   marsaglia-osr-entry                               21.0481+-0.4517           20.9798+-0.3999        
   max-boolean                                        2.6057+-0.0454     ?      2.6341+-0.0815        ? might be 1.0109x slower
   method-on-number                                  16.9605+-0.4034           16.4185+-0.5228          might be 1.0330x faster
   min-boolean                                        2.6031+-0.1442     ?      2.7127+-0.3725        ? might be 1.0421x slower
   minus-boolean-double                               3.0024+-0.1634     ?      3.0529+-0.0926        ? might be 1.0168x slower
   minus-boolean                                      2.2715+-0.1288     ?      2.3237+-0.2183        ? might be 1.0230x slower
   misc-strict-eq                                    29.6593+-0.9268           28.9559+-0.8031          might be 1.0243x faster
   mod-boolean-double                                11.1813+-0.4374           10.9201+-0.1414          might be 1.0239x faster
   mod-boolean                                        8.3763+-0.4028            8.1697+-0.0439          might be 1.0253x faster
   mul-boolean-double                                 3.4836+-0.0580     ?      3.6108+-0.1818        ? might be 1.0365x slower
   mul-boolean                                        2.7771+-0.1976            2.6611+-0.0206          might be 1.0436x faster
   neg-boolean                                        2.9905+-0.0633            2.9558+-0.0414          might be 1.0118x faster
   negative-zero-divide                               0.2980+-0.0155     ?      0.3089+-0.0417        ? might be 1.0366x slower
   negative-zero-modulo                               0.3124+-0.0333            0.2818+-0.0146          might be 1.1084x faster
   negative-zero-negate                               0.3196+-0.0718            0.2691+-0.0150          might be 1.1877x faster
   nested-function-parsing                           19.1367+-0.5497           18.7544+-0.1880          might be 1.0204x faster
   new-array-buffer-dead                              2.5080+-0.0530     ?      2.5087+-0.0413        ?
   new-array-buffer-push                              6.1330+-0.2872            5.8667+-0.3493          might be 1.0454x faster
   new-array-dead                                     9.5724+-0.4620            9.4393+-0.2437          might be 1.0141x faster
   new-array-push                                     4.8258+-0.3809            4.6522+-0.2440          might be 1.0373x faster
   number-test                                        2.8395+-0.1731            2.7692+-0.1838          might be 1.0254x faster
   object-closure-call                                5.0110+-0.2938            4.9249+-0.1476          might be 1.0175x faster
   object-test                                        2.7165+-0.0466     ?      2.7912+-0.1877        ? might be 1.0275x slower
   obvious-sink-pathology-taken                     103.6374+-0.5915     ?    103.9123+-1.0516        ?
   obvious-sink-pathology                           101.3354+-1.6224          100.4104+-0.6445        
   obviously-elidable-new-object                    100.8818+-2.4769     ^     26.9212+-0.8054        ^ definitely 3.7473x faster
   plus-boolean-arith                                 2.2871+-0.0639            2.2761+-0.0697        
   plus-boolean-double                                3.0035+-0.0563     ?      3.0513+-0.1168        ? might be 1.0159x slower
   plus-boolean                                       2.4507+-0.0761            2.4348+-0.0408        
   poly-chain-access-different-prototypes-simple   
                                                      2.6047+-0.0388     ?      2.6738+-0.0741        ? might be 1.0265x slower
   poly-chain-access-different-prototypes             2.5226+-0.1175            2.4460+-0.0875          might be 1.0313x faster
   poly-chain-access-simpler                          2.6588+-0.1113            2.5836+-0.0525          might be 1.0291x faster
   poly-chain-access                                  2.4416+-0.0969            2.3958+-0.0848          might be 1.0191x faster
   poly-stricteq                                     45.6808+-0.9633           44.6599+-0.2401          might be 1.0229x faster
   polymorphic-array-call                             1.6883+-0.1938            1.6055+-0.1028          might be 1.0516x faster
   polymorphic-get-by-id                              2.7107+-0.0420     ?      2.7348+-0.0412        ?
   polymorphic-put-by-id                             41.5403+-10.5325    ?     41.5893+-10.1140       ?
   polymorphic-structure                             13.6794+-0.2729     ?     13.7383+-0.2995        ?
   polyvariant-monomorphic-get-by-id                  6.0915+-0.4208     ?      6.2604+-0.5485        ? might be 1.0277x slower
   proto-getter-access                                8.8400+-0.2413            8.6919+-0.1265          might be 1.0170x faster
   put-by-id-replace-and-transition                   8.3090+-0.8889     ?      8.7114+-0.8032        ? might be 1.0484x slower
   put-by-id-slightly-polymorphic                     2.9132+-0.3636            2.5478+-0.0368          might be 1.1434x faster
   put-by-id                                         10.2434+-0.5038     ?     10.6390+-0.4789        ? might be 1.0386x slower
   put-by-val-direct                                  0.4559+-0.0340            0.4357+-0.0120          might be 1.0463x faster
   put-by-val-large-index-blank-indexing-type   
                                                      5.0969+-0.3985            5.0399+-0.1978          might be 1.0113x faster
   put-by-val-machine-int                             2.2712+-0.1595            2.1717+-0.0682          might be 1.0458x faster
   rare-osr-exit-on-local                            14.8765+-0.3570           14.8479+-0.3465        
   register-pressure-from-osr                        17.3780+-0.3441     ?     17.4374+-0.7102        ?
   setter                                             4.8177+-0.0592     ?      4.8587+-0.1138        ?
   simple-activation-demo                            24.3469+-0.5660           23.7469+-0.2517          might be 1.0253x faster
   simple-getter-access                              11.4966+-0.2551     ?     11.8112+-0.4003        ? might be 1.0274x slower
   simple-poly-call-nested                           14.6545+-0.4181     ?     15.1674+-0.6613        ? might be 1.0350x slower
   simple-poly-call                                   1.1253+-0.0844     ?      1.2076+-0.2049        ? might be 1.0731x slower
   sin-boolean                                       17.9101+-0.9738           17.6592+-0.5966          might be 1.0142x faster
   sinkable-new-object-taken                        104.1342+-0.5248     ^     43.0641+-0.8227        ^ definitely 2.4181x faster
   sinkable-new-object                              102.0675+-3.5197     ^     29.9952+-1.9130        ^ definitely 3.4028x faster
   slow-array-profile-convergence                     2.3635+-0.0629     ?      2.4928+-0.2101        ? might be 1.0547x slower
   slow-convergence                                   2.6899+-0.0998     ?      2.7552+-0.1488        ? might be 1.0243x slower
   sparse-conditional                                 1.0344+-0.0778            1.0201+-0.0939          might be 1.0140x faster
   splice-to-remove                                  14.0160+-0.6836     ?     14.2750+-0.4886        ? might be 1.0185x slower
   string-char-code-at                               15.7893+-0.5641           15.7596+-0.4819        
   string-concat-object                               1.8994+-0.1061     ?      1.9262+-0.2644        ? might be 1.0141x slower
   string-concat-pair-object                          1.8255+-0.1226            1.7513+-0.0517          might be 1.0424x faster
   string-concat-pair-simple                          8.9806+-0.1977            8.8425+-0.1948          might be 1.0156x faster
   string-concat-simple                               8.7995+-0.2410            8.7604+-0.1788        
   string-cons-repeat                                 7.1704+-0.5913            6.6959+-0.4249          might be 1.0709x faster
   string-cons-tower                                  6.6125+-0.2107     !      7.1434+-0.3193        ! definitely 1.0803x slower
   string-equality                                   15.8427+-0.5569     ?     15.9293+-0.5701        ?
   string-get-by-val-big-char                         5.9623+-0.1039     ?      6.0260+-0.1135        ? might be 1.0107x slower
   string-get-by-val-out-of-bounds-insane             3.3338+-0.2896            3.2443+-0.0978          might be 1.0276x faster
   string-get-by-val-out-of-bounds                    3.4736+-0.0681     ?      3.5509+-0.0622        ? might be 1.0222x slower
   string-get-by-val                                  2.8336+-0.3374            2.7382+-0.0614          might be 1.0348x faster
   string-hash                                        1.7808+-0.0607            1.7573+-0.0470          might be 1.0134x faster
   string-long-ident-equality                        12.6423+-0.1872     ?     12.9677+-0.5008        ? might be 1.0257x slower
   string-repeat-arith                               26.4250+-0.6059           26.0308+-0.6517          might be 1.0151x faster
   string-sub                                        52.9584+-0.7865     ^     51.2211+-0.6313        ^ definitely 1.0339x faster
   string-test                                        2.7051+-0.2015            2.5946+-0.0840          might be 1.0426x faster
   string-var-equality                               25.0191+-0.5535           24.2094+-0.3905          might be 1.0334x faster
   structure-hoist-over-transitions                   2.4462+-0.2230            2.4352+-0.3041        
   substring-concat-weird                            33.8556+-1.2410           33.0456+-1.5183          might be 1.0245x faster
   substring-concat                                  35.4133+-1.1494           34.9795+-1.0541          might be 1.0124x faster
   substring                                         41.0965+-1.3377           40.6512+-0.9491          might be 1.0110x faster
   switch-char-constant                               2.5446+-0.0394            2.5446+-0.0715        
   switch-char                                        5.6586+-0.5367     ?      5.9690+-0.5547        ? might be 1.0548x slower
   switch-constant                                    8.0878+-0.8791     ?      8.1041+-0.8340        ?
   switch-string-basic-big-var                       12.3510+-0.2071     ?     12.5717+-0.1633        ? might be 1.0179x slower
   switch-string-basic-big                           13.0217+-0.3990     ?     13.0870+-0.5074        ?
   switch-string-basic-var                           12.5366+-0.2031     ?     12.7722+-0.3651        ? might be 1.0188x slower
   switch-string-basic                               12.0497+-0.1225     ?     12.1650+-0.1240        ?
   switch-string-big-length-tower-var                18.6421+-0.4648     ?     18.7115+-0.5593        ?
   switch-string-length-tower-var                    13.1810+-0.8142           12.8715+-0.3063          might be 1.0240x faster
   switch-string-length-tower                        11.3980+-0.1659     ?     11.5776+-0.3514        ? might be 1.0158x slower
   switch-string-short                               11.2403+-0.1653     ?     11.2727+-0.1804        ?
   switch                                            10.7404+-0.4143           10.6732+-0.4012        
   tear-off-arguments-simple                          1.5788+-0.0571     ?      1.5838+-0.0579        ?
   tear-off-arguments                                 2.4222+-0.1041            2.3955+-0.0299          might be 1.0111x faster
   temporal-structure                                12.0908+-0.2647           11.9358+-0.2020          might be 1.0130x faster
   to-int32-boolean                                  12.6376+-0.4651           12.5973+-0.2219        
   undefined-test                                     2.7463+-0.0796     ?      2.7997+-0.1563        ? might be 1.0194x slower
   unprofiled-licm                                   14.3692+-0.5295           14.3647+-0.5408        
   weird-inlining-const-prop                          1.7434+-0.0886     ?      1.7991+-0.0615        ? might be 1.0320x slower

   <arithmetic>                                      14.5762+-0.0705     ^     13.2004+-0.0715        ^ definitely 1.1042x faster
   <geometric> *                                      6.8781+-0.0167     ^      6.7408+-0.0173        ^ definitely 1.0204x faster
   <harmonic>                                         3.5101+-0.0301            3.4706+-0.0171          might be 1.0114x faster

                                                        TipOfTree                 ObjectSink                                    
AsmBench:
   bigfib.cpp                                       448.6491+-5.0814     ?    448.8237+-2.7112        ?
   cray.c                                           421.9913+-3.5149          421.9230+-3.5864        
   dry.c                                            432.5320+-3.9651          431.8085+-3.7124        
   FloatMM.c                                        691.9233+-10.6060         688.9198+-4.1714        
   gcc-loops.cpp                                   3708.3694+-12.0621        3694.9740+-17.7422       
   n-body.c                                         834.8679+-9.3685          828.0024+-4.3331        
   Quicksort.c                                      394.4644+-3.6923     ?    396.5563+-5.7714        ?
   stepanov_container.cpp                          3572.5734+-23.8849    ?   3613.1833+-37.6013       ? might be 1.0114x slower
   Towers.c                                         248.5176+-2.7170          246.7283+-0.7155        

   <arithmetic>                                    1194.8765+-2.9186     ?   1196.7688+-4.4391        ? might be 1.0016x slower
   <geometric> *                                    733.4102+-2.1583          732.7537+-1.9108          might be 1.0009x faster
   <harmonic>                                       540.0599+-2.2758          539.0196+-1.9224          might be 1.0019x faster

                                                        TipOfTree                 ObjectSink                                    
CompressionBench:
   huffman                                          424.8505+-4.6706     ?    426.2677+-2.1205        ?
   arithmetic-simple                                382.9033+-3.4811          381.5706+-3.0676        
   arithmetic-precise                               284.8033+-1.5288     ?    286.7018+-5.9867        ?
   arithmetic-complex-precise                       283.9702+-2.0113     ?    288.3367+-3.5823        ? might be 1.0154x slower
   arithmetic-precise-order-0                       395.2314+-3.8755     ?    398.0531+-5.0015        ?
   arithmetic-precise-order-1                       338.4288+-3.5203     ?    340.5756+-5.8928        ?
   arithmetic-precise-order-2                       383.2335+-4.5624     ?    389.5520+-8.5857        ? might be 1.0165x slower
   arithmetic-simple-order-1                        382.8640+-7.8095     ?    387.5769+-7.7678        ? might be 1.0123x slower
   arithmetic-simple-order-2                        447.3676+-8.7591     ?    448.2073+-5.5202        ?
   lz-string                                        329.8115+-3.8129     ?    331.3137+-4.1542        ?

   <arithmetic>                                     365.3464+-1.2525     ?    367.8155+-1.4749        ? might be 1.0068x slower
   <geometric> *                                    361.4393+-1.2444     ?    363.9621+-1.3635        ? might be 1.0070x slower
   <harmonic>                                       357.4220+-1.2478     !    359.9891+-1.2686        ! definitely 1.0072x slower

                                                        TipOfTree                 ObjectSink                                    
All benchmarks:
   <arithmetic>                                      88.7996+-0.1910     ^     88.1110+-0.3689        ^ definitely 1.0078x faster
   <geometric>                                       11.5357+-0.0233     ^     11.3784+-0.0249        ^ definitely 1.0138x faster
   <harmonic>                                         2.8976+-0.0204            2.8781+-0.0117          might be 1.0068x faster

                                                        TipOfTree                 ObjectSink                                    
Geomean of preferred means:
   <scaled-result>                                   56.9275+-0.1799     ?     56.9442+-0.0894        ? might be 1.0003x slower
Comment 31 Filip Pizlo 2014-09-25 13:13:20 PDT
Created attachment 238668 [details]
the patch
Comment 32 WebKit Commit Bot 2014-09-25 13:15:48 PDT
Attachment 238668 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGOSRAvailabilityAnalysisPhase.cpp:162:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:146:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLOSRExitCompiler.cpp:52:  Declaration has space between type name and * in char *registerScratch  [whitespace/declaration] [3]
ERROR: Source/JavaScriptCore/dfg/DFGPhiChildren.h:73:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:60:  _node is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:61:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:62:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:62:  _childIdx is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:69:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:76:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:77:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:82:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:812:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromoteHeapAccess.h:47:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGPromoteHeapAccess.h:56:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGPromoteHeapAccess.h:64:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGPromoteHeapAccess.h:70:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/ftl/FTLOperations.h:38:  The parameter name "structure" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:163:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:166:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:270:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:277:  Declaration has space between type name and * in Node *materialize  [whitespace/declaration] [3]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:308:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:366:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:382:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:474:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:494:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:517:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:520:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:572:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:623:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:626:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:708:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:47:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:48:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:90:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:91:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:97:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGInsertOSRHintsForUpdate.h:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:4349:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6545:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1272:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1519:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 43 in 90 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 33 Oliver Hunt 2014-09-25 13:42:45 PDT
Comment on attachment 238668 [details]
the patch

r=me.  Would be good to see what is going on with octane :-/
Comment 34 Filip Pizlo 2014-09-25 14:57:08 PDT
(In reply to comment #33)
> (From update of attachment 238668 [details])
> r=me.  Would be good to see what is going on with octane :-/

Thanks!  I'll run some more tests and such, and maybe fix some of those style issues, and then I'll land.

I suspect that the problem in Octane is just that right now the "OMG it escapes" heuristic is very conservative.  There are probably some operations involved that don't actually involve escaping, but the phase doesn't know that yet.
Comment 35 Filip Pizlo 2014-09-25 16:48:23 PDT
Created attachment 238684 [details]
some fixes towards landing
Comment 36 WebKit Commit Bot 2014-09-25 16:50:26 PDT
Attachment 238684 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGOSRAvailabilityAnalysisPhase.cpp:162:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:146:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPhiChildren.h:73:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:60:  _node is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:61:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:62:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:62:  _childIdx is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:69:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:76:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:77:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:82:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:812:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:163:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:166:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:270:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:308:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:366:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:382:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:494:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:517:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:520:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:572:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:623:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:626:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:708:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:47:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:48:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:90:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:91:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:97:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:4349:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6545:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1272:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1519:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 34 in 90 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 37 Filip Pizlo 2014-09-25 17:35:16 PDT
Created attachment 238688 [details]
more try to fix
Comment 38 WebKit Commit Bot 2014-09-25 17:38:05 PDT
Attachment 238688 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGOSRAvailabilityAnalysisPhase.cpp:162:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:146:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPhiChildren.h:73:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:60:  _node is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:61:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:62:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:62:  _childIdx is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:69:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:76:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:77:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:82:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:812:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:163:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:166:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:270:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:308:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:366:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:382:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:494:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:517:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:520:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:572:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:623:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:626:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:708:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:47:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:48:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:90:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:91:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:97:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:4349:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6545:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1272:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1519:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 34 in 90 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 39 Filip Pizlo 2014-09-25 17:47:51 PDT
Created attachment 238689 [details]
so much fix
Comment 40 WebKit Commit Bot 2014-09-25 17:50:03 PDT
Attachment 238689 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGOSRAvailabilityAnalysisPhase.cpp:162:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:146:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPhiChildren.h:73:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:60:  _node is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:61:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:62:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:62:  _childIdx is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:69:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:76:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:77:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:82:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:812:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:163:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:166:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:270:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:308:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:366:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:382:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:494:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:517:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:520:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:572:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:623:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:626:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:708:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:47:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:48:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:90:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:91:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:97:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:4349:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6545:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1272:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1519:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 34 in 94 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 41 Filip Pizlo 2014-09-25 19:47:00 PDT
Created attachment 238692 [details]
moer tests

Added tests for object DAG creation.
Comment 42 WebKit Commit Bot 2014-09-25 19:50:35 PDT
Attachment 238692 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGOSRAvailabilityAnalysisPhase.cpp:162:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:146:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:4349:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6545:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPhiChildren.h:73:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:60:  _node is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:61:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:62:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:62:  _childIdx is incorrectly named. Don't use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:69:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:76:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:77:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:82:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:812:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:163:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:166:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:270:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:308:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:366:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:382:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:494:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:517:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:520:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:572:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:623:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:626:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:677:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:713:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:47:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:48:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:90:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:91:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPromotedHeapLocation.h:97:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1272:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1519:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 35 in 101 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 43 Filip Pizlo 2014-09-25 21:00:43 PDT
Landed in http://trac.webkit.org/changeset/173993