Bug 137168 - FTL should sink PutLocals
Summary: FTL should sink PutLocals
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Filip Pizlo
URL:
Keywords:
Depends on: 137242 137315 137408
Blocks: 137126
  Show dependency treegraph
 
Reported: 2014-09-26 20:22 PDT by Filip Pizlo
Modified: 2014-10-04 10:19 PDT (History)
17 users (show)

See Also:


Attachments
it begins (21.67 KB, patch)
2014-09-28 10:30 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
more (31.13 KB, patch)
2014-09-28 14:54 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
it is written (46.21 KB, patch)
2014-09-28 15:13 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
it compiles! (46.23 KB, patch)
2014-09-28 15:53 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
it's getting real (52.71 KB, patch)
2014-09-29 19:52 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
it runs more things (55.14 KB, patch)
2014-09-30 09:22 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
slightly different approach (56.42 KB, patch)
2014-09-30 17:41 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
better (74.72 KB, patch)
2014-09-30 20:41 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (66.56 KB, patch)
2014-10-02 18:21 PDT, Filip Pizlo
oliver: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Filip Pizlo 2014-09-26 20:22:33 PDT
This'll be fun.
Comment 1 Filip Pizlo 2014-09-28 10:30:18 PDT
Created attachment 238816 [details]
it begins
Comment 2 Filip Pizlo 2014-09-28 14:54:10 PDT
Created attachment 238823 [details]
more
Comment 3 Filip Pizlo 2014-09-28 15:13:00 PDT
Created attachment 238826 [details]
it is written
Comment 4 Filip Pizlo 2014-09-28 15:53:22 PDT
Created attachment 238829 [details]
it compiles!
Comment 5 Filip Pizlo 2014-09-29 19:52:55 PDT
Created attachment 238903 [details]
it's getting real

This is now allowing allocation sinking in raytrace.
Comment 6 WebKit Commit Bot 2014-09-29 19:55:48 PDT
Attachment 238903 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGSetLocalSinkingPhase.cpp:89:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSetLocalSinkingPhase.cpp:93:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/dfg/DFGSetLocalSinkingPhase.cpp:99:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSetLocalSinkingPhase.cpp:154:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSetLocalSinkingPhase.cpp:163:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSetLocalSinkingPhase.cpp:303:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSetLocalSinkingPhase.cpp:329:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:25:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:41:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:42:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:43:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:44:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:45:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 13 in 26 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 7 Filip Pizlo 2014-09-30 09:22:19 PDT
Created attachment 238928 [details]
it runs more things
Comment 8 Oliver Hunt 2014-09-30 10:01:22 PDT
Comment on attachment 238928 [details]
it runs more things

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

> Source/JavaScriptCore/dfg/DFGClobberSet.h:108
> +    mutable bool m_result;

mmmmmmmmmmmutable

> Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:105
> +            m_read(virtualRegisterForArgument(i));

a quick question - i'm totally out of date with the behaviour of the dfg - what happens with captured arguments that have been moved? Also, what happens if i put captured arguments into the activation - so they become GetFromScope

> Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:145
> +    const ReadFunctor& m_read;
> +    const WriteFunctor& m_write;
> +    const DefFunctor& m_def;

I don't like these names - I think it would be clearer if you actually name them m_readFunctor or some such
Comment 9 Filip Pizlo 2014-09-30 12:30:14 PDT
(In reply to comment #8)
> (From update of attachment 238928 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=238928&action=review
> 
> > Source/JavaScriptCore/dfg/DFGClobberSet.h:108
> > +    mutable bool m_result;
> 
> mmmmmmmmmmmutable
> 
> > Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:105
> > +            m_read(virtualRegisterForArgument(i));
> 
> a quick question - i'm totally out of date with the behaviour of the dfg - what happens with captured arguments that have been moved?

What do you mean by moved?

> Also, what happens if i put captured arguments into the activation - so they become GetFromScope

Last I checked there was the whole SlowArguments thing.

> 
> > Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:145
> > +    const ReadFunctor& m_read;
> > +    const WriteFunctor& m_write;
> > +    const DefFunctor& m_def;
> 
> I don't like these names - I think it would be clearer if you actually name them m_readFunctor or some such

read/write/def as opposed to readFunctor/writeFunctor/defFunctor is what clobberize() has always used.  I think it's better for the names of these functions to be a verb.
Comment 10 Filip Pizlo 2014-09-30 17:41:39 PDT
Created attachment 238983 [details]
slightly different approach
Comment 11 Filip Pizlo 2014-09-30 20:41:42 PDT
Created attachment 238991 [details]
better

This includes the code for https://bugs.webkit.org/show_bug.cgi?id=137242.  This should be a much saner approach.
Comment 12 Filip Pizlo 2014-10-02 18:11:26 PDT
Wow.  2% speed-up on Octane because of a tremendous win on Raytrace, as expected.  Also a big win on AsmBench.  But then there's a regression on SunSpider and CompressionBench, and I'm sort of not sure why.

I'll need to verify these results.  It's probably good enough to land.


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

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r174225)
"PutLocalSink" at /Volumes/Data/fromMiniMe/primary/OpenSource/WebKitBuild/Release/jsc (r174225)

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                PutLocalSink                                   
SunSpider:
   3d-cube                                            8.0375+-0.1264     ?      8.0461+-0.1806        ?
   3d-morph                                           9.7625+-0.0890            9.6490+-0.0909          might be 1.0118x faster
   3d-raytrace                                        9.7220+-0.1254     ?      9.7865+-0.2430        ?
   access-binary-trees                                2.9493+-0.1175     ?      2.9830+-0.1403        ? might be 1.0114x slower
   access-fannkuch                                    9.5824+-0.1100     ?      9.6967+-0.1534        ? might be 1.0119x slower
   access-nbody                                       4.7216+-0.1084     ?      4.7677+-0.0866        ?
   access-nsieve                                      5.6322+-0.0498            5.5173+-0.0954          might be 1.0208x faster
   bitops-3bit-bits-in-byte                           2.0195+-0.0437     ?      2.0346+-0.0336        ?
   bitops-bits-in-byte                                6.8996+-0.1632     ?      7.0101+-0.0960        ? might be 1.0160x slower
   bitops-bitwise-and                                 3.3562+-0.0120     ?      3.3866+-0.0240        ?
   bitops-nsieve-bits                                 5.8123+-0.1191     ?      5.8406+-0.0267        ?
   controlflow-recursive                              3.0934+-0.0115     ?      3.1336+-0.0392        ? might be 1.0130x slower
   crypto-aes                                         6.2886+-0.1243     ?      6.3477+-0.0428        ?
   crypto-md5                                         3.6616+-0.0694     ?      3.7114+-0.0779        ? might be 1.0136x slower
   crypto-sha1                                        3.8406+-0.0196     ?      3.9175+-0.0764        ? might be 1.0200x slower
   date-format-tofte                                 13.1297+-0.2357           12.9888+-0.1922          might be 1.0109x faster
   date-format-xparb                                  8.3951+-0.2125            8.1937+-0.1587          might be 1.0246x faster
   math-cordic                                        4.8265+-0.0447            4.8107+-0.0486        
   math-partial-sums                                 10.6298+-0.1045     ?     10.6470+-0.1428        ?
   math-spectral-norm                                 3.2342+-0.0561     ?      3.2474+-0.0508        ?
   regexp-dna                                        11.8535+-0.0513     ?     12.0653+-0.2202        ? might be 1.0179x slower
   string-base64                                      6.5574+-0.0902     ?      6.5656+-0.0287        ?
   string-fasta                                      10.4286+-0.1458           10.3933+-0.2569        
   string-tagcloud                                   15.0290+-0.1655     ?     15.1302+-0.1355        ?
   string-unpack-code                                31.5492+-0.2459     !     33.4525+-1.2767        ! definitely 1.0603x slower
   string-validate-input                              7.3988+-0.1496     ?      7.5411+-0.0765        ? might be 1.0192x slower

   <arithmetic> *                                     8.0158+-0.0252     !      8.1101+-0.0650        ! definitely 1.0118x slower
   <geometric>                                        6.6214+-0.0212     ?      6.6642+-0.0283        ? might be 1.0065x slower
   <harmonic>                                         5.5777+-0.0238     ?      5.6137+-0.0196        ? might be 1.0064x slower

                                                        TipOfTree                PutLocalSink                                   
LongSpider:
   3d-cube                                         1395.2070+-12.9071        1387.8363+-10.8838       
   3d-morph                                        2279.8200+-6.4583         2278.5280+-8.1088        
   3d-raytrace                                     1293.4965+-19.0228        1287.7495+-7.7043        
   access-binary-trees                             1628.0865+-5.4993         1625.7843+-5.5841        
   access-fannkuch                                  522.7480+-12.7587    ?    528.3347+-20.3430       ? might be 1.0107x slower
   access-nbody                                    1223.3409+-1.1760     ?   1223.6287+-4.2173        ?
   access-nsieve                                   1538.3647+-3.6213         1536.4247+-5.6844        
   bitops-3bit-bits-in-byte                          57.1924+-0.6823     ?     57.6049+-0.5589        ?
   bitops-bits-in-byte                              384.5490+-11.6905         376.4255+-6.4065          might be 1.0216x faster
   bitops-nsieve-bits                              1141.7739+-1.9863     ?   1150.9476+-7.3881        ?
   controlflow-recursive                            870.5566+-1.5206          869.7130+-1.3920        
   crypto-aes                                      1100.8203+-5.6821     ?   1103.9043+-4.0001        ?
   crypto-md5                                       961.3815+-4.0116          961.3782+-4.1599        
   crypto-sha1                                     1204.7223+-3.4645     ^   1163.0105+-11.4018       ^ definitely 1.0359x faster
   date-format-tofte                               1149.1792+-10.2197    ?   1167.2183+-10.4733       ? might be 1.0157x slower
   date-format-xparb                               1175.1964+-11.3258    ?   1219.2829+-141.5483      ? might be 1.0375x slower
   math-cordic                                      815.2417+-3.9016          813.4804+-0.9454        
   math-partial-sums                               1318.9708+-4.2953     ?   1337.4242+-29.8783       ? might be 1.0140x slower
   math-spectral-norm                              1300.7848+-1.9529         1299.6128+-2.3694        
   string-base64                                    573.8923+-3.5138          571.7122+-2.9024        
   string-fasta                                     706.1168+-5.8596          705.4448+-6.6123        
   string-tagcloud                                  358.5563+-1.0827     ?    365.6825+-7.4426        ? might be 1.0199x slower

   <arithmetic>                                    1045.4544+-2.0210     ?   1046.8695+-6.6075        ? might be 1.0014x slower
   <geometric> *                                    872.9867+-2.0795     ?    874.2492+-5.3086        ? might be 1.0014x slower
   <harmonic>                                       533.4850+-2.5238     ?    535.4293+-3.4760        ? might be 1.0036x slower

                                                        TipOfTree                PutLocalSink                                   
V8Spider:
   crypto                                            83.6087+-0.9985           82.7563+-0.5410          might be 1.0103x faster
   deltablue                                        119.8343+-0.9417          119.4505+-0.8887        
   earley-boyer                                      73.3476+-1.7161           71.4194+-2.0498          might be 1.0270x faster
   raytrace                                          44.1761+-1.0614     ?     45.1481+-0.9010        ? might be 1.0220x slower
   regexp                                           105.4157+-0.3850     !    106.8053+-0.1847        ! definitely 1.0132x slower
   richards                                         112.1943+-1.0281     ?    112.6431+-0.7042        ?
   splay                                             49.8605+-1.2182     ?     51.0800+-0.9879        ? might be 1.0245x slower

   <arithmetic>                                      84.0625+-0.5979     ?     84.1861+-0.2666        ? might be 1.0015x slower
   <geometric> *                                     78.9588+-0.7326     ?     79.2169+-0.3180        ? might be 1.0033x slower
   <harmonic>                                        73.6464+-0.8425     ?     74.1183+-0.4248        ? might be 1.0064x slower

                                                        TipOfTree                PutLocalSink                                   
Octane:
   encrypt                                           0.40642+-0.00539    ^     0.38971+-0.00415       ^ definitely 1.0429x faster
   decrypt                                           7.17428+-0.02471    ^     6.82313+-0.02210       ^ definitely 1.0515x faster
   deltablue                                x2       0.32356+-0.00059    ^     0.32120+-0.00145       ^ definitely 1.0073x faster
   earley                                            1.35665+-0.01112          1.34826+-0.00324       
   boyer                                            10.07429+-0.07817    ^     9.87321+-0.07221       ^ definitely 1.0204x faster
   navier-stokes                            x2       7.75663+-0.00730    ?     7.76416+-0.01272       ?
   raytrace                                 x2       2.53314+-0.02206    ^     1.98765+-0.01142       ^ definitely 1.2744x faster
   richards                                 x2       0.20099+-0.00206    ?     0.20269+-0.00384       ?
   splay                                    x2       0.60640+-0.00312          0.60474+-0.00450       
   regexp                                   x2      60.52546+-0.41683    !    61.54964+-0.29370       ! definitely 1.0169x slower
   pdfjs                                    x2      84.49160+-0.45755    !    85.62928+-0.26531       ! definitely 1.0135x slower
   mandreel                                 x2      91.95326+-0.30973    ^    89.09704+-0.24156       ^ definitely 1.0321x faster
   gbemu                                    x2      70.40447+-1.14746         70.39369+-1.28096       
   closure                                           0.90335+-0.00244    !     0.93227+-0.02362       ! definitely 1.0320x slower
   jquery                                           11.26889+-0.01984    !    11.43269+-0.02978       ! definitely 1.0145x slower
   box2d                                    x2      23.25676+-0.41223         22.91602+-0.13719         might be 1.0149x faster
   zlib                                     x2     787.36457+-2.87383        781.85160+-3.68591       
   typescript                               x2    1224.45365+-4.94409    ?  1231.24618+-7.91881       ?

   <arithmetic>                                    157.96416+-0.52502        157.93090+-0.49607         might be 1.0002x faster
   <geometric> *                                    11.77374+-0.01906    ^    11.54268+-0.03552       ^ definitely 1.0200x faster
   <harmonic>                                        1.18540+-0.00404          1.17277+-0.01137         might be 1.0108x faster

                                                        TipOfTree                PutLocalSink                                   
Kraken:
   ai-astar                                          530.529+-1.326      ?     530.938+-1.710         ?
   audio-beat-detection                              189.287+-4.227      !     199.380+-2.480         ! definitely 1.0533x slower
   audio-dft                                         254.313+-2.090      ?     260.222+-11.494        ? might be 1.0232x slower
   audio-fft                                         130.499+-0.694      ?     131.247+-0.476         ?
   audio-oscillator                                  375.881+-1.246      ?     376.092+-1.133         ?
   imaging-darkroom                                  288.255+-1.848            286.281+-1.447         
   imaging-desaturate                                113.815+-1.853      ?     113.991+-2.551         ?
   imaging-gaussian-blur                             184.172+-0.439            183.864+-1.945         
   json-parse-financial                               81.998+-0.937      !      85.306+-1.400         ! definitely 1.0403x slower
   json-stringify-tinderbox                           99.310+-0.925      ?     100.335+-0.510         ? might be 1.0103x slower
   stanford-crypto-aes                                99.732+-0.933      ?     100.153+-0.860         ?
   stanford-crypto-ccm                                96.915+-0.906             91.648+-10.947          might be 1.0575x faster
   stanford-crypto-pbkdf2                            272.993+-2.413      ?     276.242+-4.412         ? might be 1.0119x slower
   stanford-crypto-sha256-iterative                  107.059+-0.732      ?     107.516+-1.246         ?

   <arithmetic> *                                    201.768+-0.519      !     203.087+-0.563         ! definitely 1.0065x slower
   <geometric>                                       170.401+-0.338      ?     171.413+-1.078         ? might be 1.0059x slower
   <harmonic>                                        147.788+-0.207      ?     148.365+-1.969         ? might be 1.0039x slower

                                                        TipOfTree                PutLocalSink                                   
JSRegress:
   abs-boolean                                        4.4836+-0.1422            4.4650+-0.0846        
   adapt-to-double-divide                            20.4083+-0.3318     ?     20.4725+-0.4288        ?
   aliased-arguments-getbyval                         1.1741+-0.0179     ?      1.2030+-0.0364        ? might be 1.0246x slower
   allocate-big-object                                3.8801+-0.1162     ?      4.0445+-0.0696        ? might be 1.0424x slower
   arity-mismatch-inlining                            1.1425+-0.0138     ?      1.1521+-0.0186        ?
   array-access-polymorphic-structure                10.9283+-0.1376     ?     11.0759+-0.1088        ? might be 1.0135x slower
   array-nonarray-polymorhpic-access                 61.0306+-0.2757           60.9854+-1.1495        
   array-prototype-every                            121.9843+-1.7254     ?    124.7555+-2.5857        ? might be 1.0227x slower
   array-prototype-forEach                          121.5375+-2.3519     ?    122.0131+-1.0966        ?
   array-prototype-map                              145.4501+-0.6546     ?    147.4444+-2.4995        ? might be 1.0137x slower
   array-prototype-some                             120.2097+-0.5922     ?    123.6385+-5.6919        ? might be 1.0285x slower
   array-splice-contiguous                           68.7650+-0.6598           68.2942+-0.6264        
   array-with-double-add                              6.6000+-0.0562            6.5904+-0.0677        
   array-with-double-increment                        4.7726+-0.0442     ?      4.7758+-0.0551        ?
   array-with-double-mul-add                          8.4269+-0.1081            8.3258+-0.1722          might be 1.0121x faster
   array-with-double-sum                              5.0363+-0.0474     ?      5.1149+-0.0597        ? might be 1.0156x slower
   array-with-int32-add-sub                          11.2762+-0.2225     ?     11.3037+-0.1733        ?
   array-with-int32-or-double-sum                     5.2192+-0.0162            5.1918+-0.0737        
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     57.4394+-0.9837     ?     58.7526+-0.8771        ? might be 1.0229x slower
   ArrayBuffer-DataView-alloc-long-lived             23.1079+-0.3782     !     24.3758+-0.6677        ! definitely 1.0549x slower
   ArrayBuffer-Int32Array-byteOffset                  5.4712+-0.0724            5.4476+-0.0115        
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     61.1474+-2.0334     ?     63.7353+-1.0256        ? might be 1.0423x slower
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     39.2977+-1.0576     ?     40.0468+-0.5115        ? might be 1.0191x slower
   ArrayBuffer-Int8Array-alloc-long-lived            21.7593+-0.3732     !     23.3800+-0.5392        ! definitely 1.0745x slower
   ArrayBuffer-Int8Array-alloc                       18.3818+-0.4697     !     19.7210+-0.5349        ! definitely 1.0729x slower
   asmjs_bool_bug                                    10.3230+-0.1524     ?     10.3924+-0.1522        ?
   assign-custom-setter-polymorphic                   5.0320+-0.1362     ?      5.0530+-0.1761        ?
   assign-custom-setter                               6.7631+-0.0503     ?      6.7874+-0.1621        ?
   basic-set                                         15.4467+-0.1319     ?     15.8560+-0.5077        ? might be 1.0265x slower
   big-int-mul                                        6.7684+-0.1249     ?      6.8609+-0.1186        ? might be 1.0137x slower
   boolean-test                                       4.9744+-0.0893            4.9497+-0.0495        
   branch-fold                                        5.4201+-0.0601            5.3993+-0.0911        
   by-val-generic                                    12.9619+-0.3008           12.9048+-0.2793        
   call-spread-apply                                 20.8643+-0.1757     ?     21.2384+-0.6630        ? might be 1.0179x slower
   call-spread-call                                   9.1102+-0.1687            8.9875+-0.0469          might be 1.0137x faster
   captured-assignments                               0.6139+-0.0055     ?      0.6162+-0.0042        ?
   cast-int-to-double                                 9.5512+-0.0868     ?      9.6724+-0.1460        ? might be 1.0127x slower
   cell-argument                                     11.2406+-0.2816           11.1732+-0.2333        
   cfg-simplify                                       4.2650+-0.0109     ?      4.2968+-0.0333        ?
   chain-getter-access                               13.7425+-0.2860     ?     13.7826+-0.2177        ?
   cmpeq-obj-to-obj-other                            13.7468+-0.4113           13.5193+-0.3031          might be 1.0168x faster
   constant-test                                      8.9705+-0.2024     ?      9.0677+-0.0368        ? might be 1.0108x slower
   DataView-custom-properties                        65.7047+-0.9374     !     68.2561+-1.4540        ! definitely 1.0388x slower
   delay-tear-off-arguments-strictmode                3.7739+-0.0572     ?      3.7938+-0.0318        ?
   destructuring-arguments                            9.1611+-0.1673            9.1475+-0.1373        
   destructuring-swap                                 9.1839+-0.0851            9.1374+-0.1084        
   direct-arguments-getbyval                          1.2930+-0.0277     ?      1.3139+-0.0267        ? might be 1.0162x slower
   div-boolean-double                                 6.6388+-0.0352            6.5550+-0.1653          might be 1.0128x faster
   div-boolean                                       11.8409+-0.1247           11.7714+-0.1647        
   double-get-by-val-out-of-bounds                    6.7495+-0.1504     ?      7.0024+-0.3183        ? might be 1.0375x slower
   double-pollution-getbyval                         11.5356+-0.1379           11.5020+-0.2164        
   double-pollution-putbyoffset                       6.3817+-0.1274            6.3615+-0.1717        
   double-to-int32-typed-array-no-inline              3.2813+-0.0512            3.2593+-0.0630        
   double-to-int32-typed-array                        2.6712+-0.0631            2.6613+-0.0682        
   double-to-uint32-typed-array-no-inline             3.3429+-0.0616            3.3084+-0.0813          might be 1.0104x faster
   double-to-uint32-typed-array                       2.8814+-0.0487     ?      2.9148+-0.0692        ? might be 1.0116x slower
   elidable-new-object-dag                           63.0408+-0.7877     ?     63.5194+-1.8957        ?
   elidable-new-object-roflcopter                   241.8535+-1.7415     ?    248.9102+-6.5529        ? might be 1.0292x slower
   elidable-new-object-tree                          71.5932+-0.7162     ?     71.8291+-1.8671        ?
   empty-string-plus-int                              8.0030+-0.0369     !      8.3595+-0.1500        ! definitely 1.0445x slower
   emscripten-cube2hash                              53.3261+-0.5643     ?     53.5196+-0.5680        ?
   external-arguments-getbyval                        2.1694+-0.0210     ?      2.1855+-0.0290        ?
   external-arguments-putbyval                        3.1081+-0.0548     ?      3.1305+-0.0459        ?
   fixed-typed-array-storage-var-index                1.6306+-0.0177     ?      1.6660+-0.0378        ? might be 1.0217x slower
   fixed-typed-array-storage                          1.2256+-0.0221     ?      1.2556+-0.0566        ? might be 1.0245x slower
   Float32Array-matrix-mult                           6.7458+-0.0584     ?      6.7814+-0.0564        ?
   Float32Array-to-Float64Array-set                  91.6375+-1.6777     ?     92.2727+-1.4533        ?
   Float64Array-alloc-long-lived                    102.2153+-0.4961     ?    103.2623+-0.7992        ? might be 1.0102x slower
   Float64Array-to-Int16Array-set                   115.5170+-0.3154     ?    115.7315+-0.5616        ?
   fold-double-to-int                                19.9392+-0.1884     ?     20.0208+-0.3355        ?
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     24.6234+-0.4373           23.8928+-0.4702          might be 1.0306x faster
   fold-get-by-id-to-multi-get-by-offset             23.1231+-0.4750           22.6472+-0.4518          might be 1.0210x faster
   fold-multi-get-by-offset-to-get-by-offset   
                                                     17.8785+-0.1777           17.5278+-0.7393          might be 1.0200x faster
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                     18.0865+-0.2099     ^     17.4095+-0.1398        ^ definitely 1.0389x faster
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                     18.6677+-0.9554           18.1070+-0.5083          might be 1.0310x faster
   fold-multi-put-by-offset-to-put-by-offset   
                                                     16.3385+-0.0862     ^     15.7457+-0.2789        ^ definitely 1.0376x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     23.4566+-1.6513           22.5210+-0.5847          might be 1.0415x faster
   fold-put-by-id-to-multi-put-by-offset             23.7290+-0.4070           22.9810+-0.4511          might be 1.0325x faster
   fold-put-structure                                17.2961+-0.2436     ^     16.5260+-0.0810        ^ definitely 1.0466x faster
   for-of-iterate-array-entries                       8.5368+-0.1523     ?      8.6036+-0.1739        ?
   for-of-iterate-array-keys                          4.0226+-0.1177            4.0150+-0.0615        
   for-of-iterate-array-values                        3.3495+-0.0714     ?      3.4299+-0.0865        ? might be 1.0240x slower
   fround                                            23.9205+-0.2885           23.8842+-0.3121        
   ftl-library-inlining-dataview                    115.7030+-2.3449     ^    109.2030+-0.5038        ^ definitely 1.0595x faster
   ftl-library-inlining                             117.9329+-2.4829          117.8029+-2.6721        
   function-dot-apply                                 2.5385+-0.0966            2.5129+-0.0546          might be 1.0102x faster
   function-test                                      5.3416+-0.0430     ?      5.3691+-0.1027        ?
   function-with-eval                               106.6779+-1.4045     ?    107.5798+-0.8318        ?
   gcse-poly-get-less-obvious                        29.3077+-0.2306           29.2606+-0.5643        
   gcse-poly-get                                     29.7911+-0.2872           29.7078+-0.1664        
   gcse                                               7.6956+-0.0466     ?      7.6985+-0.0412        ?
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.7765+-0.0454     ?      3.8395+-0.0527        ? might be 1.0167x slower
   get-by-id-bimorphic-check-structure-elimination   
                                                      9.7909+-0.1419            9.7771+-0.2257        
   get-by-id-chain-from-try-block                     7.9877+-0.1998     ?      8.0298+-0.1153        ?
   get-by-id-check-structure-elimination              8.8942+-0.1005     ?      8.9187+-0.1241        ?
   get-by-id-proto-or-self                           25.3542+-2.1157           25.1075+-1.8095        
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      4.6045+-0.0414            4.5876+-0.0607        
   get-by-id-self-or-proto                           24.2843+-0.5256     ?     25.8223+-1.5392        ? might be 1.0633x slower
   get-by-val-out-of-bounds                           6.6788+-0.0739     ?      6.8077+-0.0699        ? might be 1.0193x slower
   get_callee_monomorphic                             5.8576+-0.2670     ?      6.0216+-0.1238        ? might be 1.0280x slower
   get_callee_polymorphic                             4.9295+-0.1020     ?      4.9609+-0.1233        ?
   getter-no-activation                               6.8763+-0.0599            6.8737+-0.0852        
   getter-richards                                  152.6164+-7.3798     ?    154.6352+-7.8504        ? might be 1.0132x slower
   getter                                             7.5853+-0.1179     ?      7.6901+-0.0952        ? might be 1.0138x slower
   global-var-const-infer-fire-from-opt               1.1723+-0.0245     ?      1.1850+-0.0176        ? might be 1.0109x slower
   global-var-const-infer                             1.2476+-0.0246     ?      1.2521+-0.0265        ?
   HashMap-put-get-iterate-keys                      40.8246+-0.3767           40.6982+-0.8830        
   HashMap-put-get-iterate                           40.9416+-0.8524           39.9241+-0.3872          might be 1.0255x faster
   HashMap-string-put-get-iterate                    38.5650+-0.7476     ?     39.4292+-0.4653        ? might be 1.0224x slower
   hoist-make-rope                                   14.7525+-1.9844           13.8047+-1.3201          might be 1.0687x faster
   hoist-poly-check-structure-effectful-loop   
                                                      7.6200+-0.2666            7.6061+-0.1272        
   hoist-poly-check-structure                         5.7345+-0.0838     ?      5.7645+-0.0574        ?
   imul-double-only                                   9.8451+-0.1774     ?     10.2891+-0.5421        ? might be 1.0451x slower
   imul-int-only                                     13.1496+-0.3708           12.9045+-0.3720          might be 1.0190x faster
   imul-mixed                                         9.9644+-0.5920            9.3471+-0.6640          might be 1.0660x faster
   in-four-cases                                     28.4803+-0.9682           28.2992+-0.4537        
   in-one-case-false                                 14.8944+-0.3362           14.8288+-0.1129        
   in-one-case-true                                  14.9668+-0.1093           14.9575+-0.3855        
   in-two-cases                                      15.5769+-0.3042           15.4682+-0.0860        
   indexed-properties-in-objects                      4.5035+-0.0792            4.4934+-0.0631        
   infer-closure-const-then-mov-no-inline             5.1448+-0.1723            5.1395+-0.1744        
   infer-closure-const-then-mov                      29.5859+-0.1301           29.5055+-0.4318        
   infer-closure-const-then-put-to-scope-no-inline   
                                                     17.5585+-0.1438     ?     17.6306+-0.1288        ?
   infer-closure-const-then-put-to-scope             33.3217+-0.1339     ?     33.4908+-0.2991        ?
   infer-closure-const-then-reenter-no-inline   
                                                     77.1855+-0.2127     ?     77.5270+-0.3015        ?
   infer-closure-const-then-reenter                  33.5004+-0.1494     ?     33.5604+-0.1555        ?
   infer-constant-global-property                     5.5315+-0.0315     ?      5.5604+-0.0591        ?
   infer-constant-property                            3.7983+-0.0704     ?      3.8304+-0.0635        ?
   infer-one-time-closure-ten-vars                   16.7059+-0.4264           16.5326+-0.1756          might be 1.0105x faster
   infer-one-time-closure-two-vars                   16.0446+-0.1591           15.8617+-0.2411          might be 1.0115x faster
   infer-one-time-closure                            15.9530+-0.2361           15.6367+-0.2456          might be 1.0202x faster
   infer-one-time-deep-closure                       28.4680+-0.3962           28.3368+-0.2079        
   inline-arguments-access                            2.4018+-0.0488     ?      2.4209+-0.0453        ?
   inline-arguments-aliased-access                    2.7249+-0.0854     ?      2.7650+-0.0807        ? might be 1.0147x slower
   inline-arguments-local-escape                     20.5462+-0.3971     ?     20.8547+-0.1991        ? might be 1.0150x slower
   inline-get-scoped-var                              6.6929+-0.0738            6.6221+-0.1279          might be 1.0107x faster
   inlined-put-by-id-transition                      16.0681+-0.1741           15.8001+-0.5245          might be 1.0170x faster
   int-or-other-abs-then-get-by-val                   8.1700+-0.1049            8.1517+-0.0614        
   int-or-other-abs-zero-then-get-by-val             30.3252+-0.2656           30.1698+-0.2931        
   int-or-other-add-then-get-by-val                   6.9668+-0.0843            6.9222+-0.1278        
   int-or-other-add                                   9.1660+-0.1382     ?      9.1706+-0.1443        ?
   int-or-other-div-then-get-by-val                   6.1233+-0.0630            6.1016+-0.0541        
   int-or-other-max-then-get-by-val                   7.7828+-0.3679            7.5603+-0.1251          might be 1.0294x faster
   int-or-other-min-then-get-by-val                   6.2184+-0.0556     ?      6.2310+-0.0830        ?
   int-or-other-mod-then-get-by-val                   6.0474+-0.0357            6.0257+-0.1146        
   int-or-other-mul-then-get-by-val                   5.8300+-0.1237            5.8153+-0.0303        
   int-or-other-neg-then-get-by-val                   7.3465+-0.1410            7.3000+-0.1641        
   int-or-other-neg-zero-then-get-by-val             30.3920+-0.1380     ?     30.4924+-0.4085        ?
   int-or-other-sub-then-get-by-val                   6.9756+-0.1303            6.9353+-0.1347        
   int-or-other-sub                                   6.0142+-0.1961     ?      6.1503+-0.0334        ? might be 1.0226x slower
   int-overflow-local                                 6.7642+-0.1413     ?      6.8440+-0.1659        ? might be 1.0118x slower
   Int16Array-alloc-long-lived                       73.2496+-1.0032           73.1989+-0.5509        
   Int16Array-bubble-sort-with-byteLength            45.0249+-0.6489           44.4467+-0.2454          might be 1.0130x faster
   Int16Array-bubble-sort                            43.1863+-0.1048     ?     43.6127+-0.5418        ?
   Int16Array-load-int-mul                            2.1979+-0.0444     ?      2.2158+-0.0507        ?
   Int16Array-to-Int32Array-set                      83.9347+-1.4090     ?     84.6241+-1.2826        ?
   Int32Array-alloc-large                            42.8000+-1.6346           42.7861+-1.9422        
   Int32Array-alloc-long-lived                       81.8606+-0.5959           81.7326+-1.1474        
   Int32Array-alloc                                   4.8693+-0.0492            4.8364+-0.1824        
   Int32Array-Int8Array-view-alloc                   11.3857+-0.2616     !     12.1136+-0.1776        ! definitely 1.0639x slower
   int52-spill                                       10.1145+-0.1064     ?     10.3122+-0.2623        ? might be 1.0195x slower
   Int8Array-alloc-long-lived                        67.5031+-0.8910           67.4471+-1.0539        
   Int8Array-load-with-byteLength                     5.5890+-0.0571     ?      5.5941+-0.0656        ?
   Int8Array-load                                     5.5468+-0.0781     ?      5.5968+-0.0689        ?
   integer-divide                                    17.0052+-0.2015     ?     17.1349+-0.2645        ?
   integer-modulo                                     3.1247+-0.2970     ?      3.1972+-0.2861        ? might be 1.0232x slower
   large-int-captured                                11.1353+-0.2908     ?     11.4019+-0.2432        ? might be 1.0239x slower
   large-int-neg                                     24.3664+-0.2934     ?     24.4308+-0.1494        ?
   large-int                                         21.5812+-0.1929     ?     21.6598+-0.2988        ?
   logical-not                                        6.9758+-0.0556     ?      7.2405+-0.2190        ? might be 1.0379x slower
   lots-of-fields                                    16.1184+-0.1119           16.1113+-0.1007        
   make-indexed-storage                               4.4699+-0.2787     ?      4.7961+-0.1377        ? might be 1.0730x slower
   make-rope-cse                                      6.2650+-0.0628     ?      6.3111+-0.0862        ?
   marsaglia-larger-ints                             60.4432+-0.5849     !     64.1210+-0.4854        ! definitely 1.0608x slower
   marsaglia-osr-entry                               31.9141+-0.4579           31.6181+-0.4615        
   max-boolean                                        4.0362+-0.3700            3.8654+-0.0636          might be 1.0442x faster
   method-on-number                                  28.3729+-1.2919     ?     29.2640+-0.9480        ? might be 1.0314x slower
   min-boolean                                        3.7749+-0.0887     ?      3.8064+-0.0504        ?
   minus-boolean-double                               4.9258+-0.0452     ?      4.9698+-0.0147        ?
   minus-boolean                                      3.7858+-0.0661     ?      3.8148+-0.0258        ?
   misc-strict-eq                                    58.2067+-0.8427     ?     58.3632+-0.8584        ?
   mod-boolean-double                                13.9601+-0.1907     ?     13.9615+-0.1282        ?
   mod-boolean                                       10.7300+-0.1268           10.6847+-0.2477        
   mul-boolean-double                                 5.7592+-0.0271     ?      5.7722+-0.0285        ?
   mul-boolean                                        4.0940+-0.0602     ?      4.1216+-0.0113        ?
   neg-boolean                                        5.0640+-0.0547            5.0636+-0.0283        
   negative-zero-divide                               0.4660+-0.0041     ?      0.4822+-0.0170        ? might be 1.0347x slower
   negative-zero-modulo                               0.4624+-0.0034     !      0.4726+-0.0030        ! definitely 1.0220x slower
   negative-zero-negate                               0.4321+-0.0024     !      0.4394+-0.0022        ! definitely 1.0168x slower
   nested-function-parsing                           46.0711+-0.4500           45.8176+-0.1988        
   new-array-buffer-dead                              4.2624+-0.1002            4.2499+-0.1013        
   new-array-buffer-push                             10.6513+-0.0890     ?     10.6696+-0.3118        ?
   new-array-dead                                    14.7337+-0.2964     ?     14.8127+-0.2650        ?
   new-array-push                                     7.3298+-0.2200     ?      7.5193+-0.1705        ? might be 1.0258x slower
   number-test                                        4.8477+-0.0604     ?      4.8660+-0.0467        ?
   object-closure-call                                9.3531+-0.1803     ?      9.4478+-0.1265        ? might be 1.0101x slower
   object-test                                        5.2103+-0.0595     ?      5.2984+-0.1663        ? might be 1.0169x slower
   obvious-sink-pathology-taken                     209.1611+-2.0163          208.8765+-2.1720        
   obvious-sink-pathology                           200.4086+-4.2908          199.2419+-0.8061        
   obviously-elidable-new-object                     51.2263+-0.5797     ?     52.0683+-1.3935        ? might be 1.0164x slower
   plus-boolean-arith                                 3.8468+-0.0656     ?      3.8713+-0.0654        ?
   plus-boolean-double                                4.9720+-0.0364     ?      4.9935+-0.0318        ?
   plus-boolean                                       3.7284+-0.0637            3.7013+-0.0508        
   poly-chain-access-different-prototypes-simple   
                                                      4.5620+-0.0537            4.5434+-0.0563        
   poly-chain-access-different-prototypes             3.7746+-0.0551            3.7615+-0.0205        
   poly-chain-access-simpler                          4.5244+-0.0566     ?      4.5444+-0.0697        ?
   poly-chain-access                                  3.2984+-0.4335     ?      3.3809+-0.3040        ? might be 1.0250x slower
   poly-stricteq                                     85.3973+-1.6788           84.3003+-0.1939          might be 1.0130x faster
   polymorphic-array-call                             2.3637+-0.0313     ?      2.3863+-0.0381        ?
   polymorphic-get-by-id                              4.9059+-0.0362     ?      4.9170+-0.0672        ?
   polymorphic-put-by-id                             74.4146+-25.3722    ?     79.7898+-47.0354       ? might be 1.0722x slower
   polymorphic-structure                             26.4555+-1.7997           26.2903+-1.5269        
   polyvariant-monomorphic-get-by-id                 13.0865+-0.3640           12.9796+-0.4143        
   proto-getter-access                               13.6796+-0.1839     ?     13.7382+-0.1424        ?
   put-by-id-replace-and-transition                  12.9830+-0.2162           12.8879+-0.2671        
   put-by-id-slightly-polymorphic                     4.1155+-0.0618     ?      4.1772+-0.0394        ? might be 1.0150x slower
   put-by-id                                         21.1279+-0.4370     ?     21.5806+-0.3607        ? might be 1.0214x slower
   put-by-val-direct                                  0.8050+-0.0010     !      0.8159+-0.0026        ! definitely 1.0136x slower
   put-by-val-large-index-blank-indexing-type   
                                                     10.3942+-0.2479            9.9355+-0.2352          might be 1.0462x faster
   put-by-val-machine-int                             4.7923+-0.2555     ?      4.8284+-0.0978        ?
   rare-osr-exit-on-local                            21.6075+-0.2433     ?     21.6197+-0.1068        ?
   register-pressure-from-osr                        31.8002+-0.2143           31.6907+-0.4097        
   setter                                             7.6876+-0.0659     ?      7.7124+-0.0785        ?
   simple-activation-demo                            35.1626+-0.0373     !     35.3582+-0.0803        ! definitely 1.0056x slower
   simple-getter-access                              20.1410+-0.2152     ?     20.3668+-0.1203        ? might be 1.0112x slower
   simple-poly-call-nested                           21.7451+-0.4591     ?     21.8466+-0.6845        ?
   simple-poly-call                                   1.7496+-0.0347     ?      1.7530+-0.0214        ?
   sin-boolean                                       23.6221+-0.8974     ?     24.2232+-0.8688        ? might be 1.0254x slower
   sinkable-new-object-dag                           95.7383+-1.0234     ?     96.6428+-1.0687        ?
   sinkable-new-object-taken                         79.4953+-0.6728           79.0372+-2.9783        
   sinkable-new-object                               54.8878+-1.6578     ?     55.1162+-1.3535        ?
   slow-array-profile-convergence                     4.2805+-0.1518            4.2802+-0.1214        
   slow-convergence                                   5.0830+-0.0292     ?      5.0944+-0.0312        ?
   sparse-conditional                                 1.6507+-0.0504            1.6443+-0.0183        
   splice-to-remove                                  27.6777+-0.9257     ?     27.9076+-0.3822        ?
   string-char-code-at                               23.5945+-0.1240           23.5803+-0.0872        
   string-concat-object                               3.3155+-0.1344            3.2806+-0.0955          might be 1.0106x faster
   string-concat-pair-object                          3.2028+-0.0922            3.1834+-0.0505        
   string-concat-pair-simple                         18.6085+-0.4158     ?     18.8378+-0.4007        ? might be 1.0123x slower
   string-concat-simple                              19.1068+-0.2977     ?     19.1179+-0.1410        ?
   string-cons-repeat                                11.9024+-0.1452     ?     11.9950+-0.2203        ?
   string-cons-tower                                 10.9368+-0.0601     ?     11.2723+-0.4056        ? might be 1.0307x slower
   string-equality                                   26.6673+-0.2848           26.5566+-0.1632        
   string-get-by-val-big-char                        11.5380+-0.3158     ?     12.0318+-0.2692        ? might be 1.0428x slower
   string-get-by-val-out-of-bounds-insane             6.4394+-0.2135            6.4274+-0.1707        
   string-get-by-val-out-of-bounds                    8.0011+-0.1876            7.9738+-0.0799        
   string-get-by-val                                  5.6567+-0.0448     ?      5.6954+-0.0462        ?
   string-hash                                        3.1427+-0.0530     ?      3.1474+-0.0492        ?
   string-long-ident-equality                        21.4320+-0.2419     ?     21.4421+-0.2406        ?
   string-repeat-arith                               48.7305+-0.4458     !     49.8230+-0.3007        ! definitely 1.0224x slower
   string-sub                                        96.2670+-0.9469     ?     97.0968+-0.9072        ?
   string-test                                        4.8658+-0.0638            4.8321+-0.0592        
   string-var-equality                               52.2812+-0.1589           52.2456+-0.2050        
   structure-hoist-over-transitions                   3.9223+-0.0941     ?      3.9471+-0.1392        ?
   substring-concat-weird                            62.5198+-0.7140     ?     62.6710+-0.4655        ?
   substring-concat                                  65.6963+-0.3381     ?     65.8656+-0.6028        ?
   substring                                         73.9785+-0.1767     ?     74.7710+-0.8264        ? might be 1.0107x slower
   switch-char-constant                               3.8459+-0.0326     ?      3.8786+-0.0510        ?
   switch-char                                        9.3674+-0.1151            9.3670+-0.1363        
   switch-constant                                   11.9442+-0.4000     !     16.2518+-2.2199        ! definitely 1.3606x slower
   switch-string-basic-big-var                       24.5665+-2.3352     ?     25.5165+-2.5044        ? might be 1.0387x slower
   switch-string-basic-big                           26.8410+-2.7623           26.3771+-3.1604          might be 1.0176x faster
   switch-string-basic-var                           33.5327+-0.6913           32.2789+-1.6204          might be 1.0388x faster
   switch-string-basic                               29.0537+-0.3494     ?     29.4135+-0.4890        ? might be 1.0124x slower
   switch-string-big-length-tower-var                30.1313+-0.1149     ?     30.1648+-0.1317        ?
   switch-string-length-tower-var                    24.1027+-0.1105     ?     24.3555+-0.4464        ? might be 1.0105x slower
   switch-string-length-tower                        17.8802+-0.1380           17.7303+-0.1192        
   switch-string-short                               17.7144+-0.2723     ?     17.8260+-0.0691        ?
   switch                                            19.3742+-0.1620           17.1014+-2.3226          might be 1.1329x faster
   tear-off-arguments-simple                          2.5948+-0.0735     ?      2.6314+-0.0488        ? might be 1.0141x slower
   tear-off-arguments                                 4.1078+-0.0180     ?      4.1189+-0.0803        ?
   temporal-structure                                20.5651+-0.2717           20.5529+-0.2154        
   to-int32-boolean                                  24.8319+-0.2677     ?     25.0665+-0.5040        ?
   undefined-test                                     5.0337+-0.0468            4.9941+-0.0619        
   unprofiled-licm                                   30.7004+-0.4629     !     31.5710+-0.3137        ! definitely 1.0284x slower
   weird-inlining-const-prop                          2.9589+-0.1059     ?      3.0392+-0.0384        ? might be 1.0271x slower

   <arithmetic>                                      24.3642+-0.1414     ?     24.5117+-0.1642        ? might be 1.0061x slower
   <geometric> *                                     11.9766+-0.0318     ?     12.0349+-0.0301        ? might be 1.0049x slower
   <harmonic>                                         5.9025+-0.0201     !      5.9544+-0.0149        ! definitely 1.0088x slower

                                                        TipOfTree                PutLocalSink                                   
AsmBench:
   bigfib.cpp                                       794.3587+-3.7223          793.3438+-2.3014        
   cray.c                                           792.5867+-2.4435     ?    801.5517+-17.7625       ? might be 1.0113x slower
   dry.c                                            788.6799+-2.1216     ?    790.1557+-16.5137       ?
   FloatMM.c                                       1151.0216+-1.8634         1149.9484+-1.8483        
   gcc-loops.cpp                                   7533.8278+-18.3277    ^   7086.1461+-15.2830       ^ definitely 1.0632x faster
   n-body.c                                        2035.7213+-2.3654     ^   2017.9369+-7.7172        ^ definitely 1.0088x faster
   Quicksort.c                                      711.8525+-1.6207     ^    701.8254+-3.8012        ^ definitely 1.0143x faster
   stepanov_container.cpp                          5810.2185+-8.7377     ^   5751.9154+-27.9677       ^ definitely 1.0101x faster
   Towers.c                                         472.0988+-2.1771     ^    465.1057+-2.0910        ^ definitely 1.0150x faster

   <arithmetic>                                    2232.2629+-2.2375     ^   2173.1032+-7.6397        ^ definitely 1.0272x faster
   <geometric> *                                   1371.0174+-1.7617     ^   1356.0795+-6.9380        ^ definitely 1.0110x faster
   <harmonic>                                      1002.6273+-1.9044          996.7420+-5.5238          might be 1.0059x faster

                                                        TipOfTree                PutLocalSink                                   
CompressionBench:
   huffman                                          721.8922+-2.4994     ?    722.0678+-4.9314        ?
   arithmetic-simple                                682.5204+-2.3997     ?    684.0263+-2.1909        ?
   arithmetic-precise                               506.9364+-2.1375     ?    510.8844+-5.0998        ?
   arithmetic-complex-precise                       504.8447+-1.5650          503.8185+-1.8638        
   arithmetic-precise-order-0                       726.1965+-7.2641     ?    734.5980+-7.8931        ? might be 1.0116x slower
   arithmetic-precise-order-1                       562.1729+-3.7369     ?    565.9546+-7.0548        ?
   arithmetic-precise-order-2                       625.9554+-3.2714     ?    627.2934+-5.5553        ?
   arithmetic-simple-order-1                        700.9144+-3.7195     ?    703.1039+-5.2511        ?
   arithmetic-simple-order-2                        787.6263+-4.5500          784.2328+-6.3608        
   lz-string                                        529.3470+-6.0566     ?    540.9207+-6.1717        ? might be 1.0219x slower

   <arithmetic>                                     634.8406+-0.7214     !    637.6900+-1.6896        ! definitely 1.0045x slower
   <geometric> *                                    627.1663+-0.8107     !    630.2359+-1.5474        ! definitely 1.0049x slower
   <harmonic>                                       619.4557+-0.9565     !    622.7261+-1.4368        ! definitely 1.0053x slower

                                                        TipOfTree                PutLocalSink                                   
All benchmarks:
   <arithmetic>                                     163.7660+-0.1794     ^    162.7220+-0.3727        ^ definitely 1.0064x faster
   <geometric>                                       20.4632+-0.0376     ?     20.5153+-0.0418        ? might be 1.0025x slower
   <harmonic>                                         5.1179+-0.0158     ?      5.1288+-0.0191        ? might be 1.0021x slower

                                                        TipOfTree                PutLocalSink                                   
Geomean of preferred means:
   <scaled-result>                                  103.8385+-0.1723     ?    103.8627+-0.1611        ? might be 1.0002x slower
Comment 13 Filip Pizlo 2014-10-02 18:21:37 PDT
Created attachment 239169 [details]
the patch
Comment 14 WebKit Commit Bot 2014-10-02 18:24:04 PDT
Attachment 239169 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:25:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:42:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:43:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:44:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:45:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:46:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/CMakeLists.txt:210:  There should be exactly one empty line instead of 0 between "disassembler/ARM64/A64DOpcode.cpp" and "disassembler/ARMv7/ARMv7DOpcode.cpp".  [list/emptyline] [5]
ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:458:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPutLocalSinkingPhase.cpp:167:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPutLocalSinkingPhase.cpp:171:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/dfg/DFGPutLocalSinkingPhase.cpp:177:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPutLocalSinkingPhase.cpp:245:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPutLocalSinkingPhase.cpp:254:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGPutLocalSinkingPhase.cpp:423:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 14 in 29 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 15 Filip Pizlo 2014-10-03 12:38:40 PDT
Landed in http://trac.webkit.org/changeset/174275
Comment 16 Beth Dakin 2014-10-03 15:01:00 PDT
This seems to be causing problems on the internal bots. Rolling out since I can't find Phil or Oliver.
Comment 17 Beth Dakin 2014-10-03 15:02:36 PDT
(In reply to comment #16)
> This seems to be causing problems on the internal bots. Rolling out since I can't find Phil or Oliver.

Phil I will email you the failures.
Comment 18 WebKit Commit Bot 2014-10-03 15:03:23 PDT
Re-opened since this is blocked by bug 137408
Comment 19 Filip Pizlo 2014-10-04 10:19:13 PDT
Relanded in http://trac.webkit.org/changeset/174318