Bug 144348

Summary: FTL should fully support Switch (it currently lacks the SwitchString variant)
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, benjamin, commit-queue, ggaren, mark.lam, mhahnenb, mmirman, msaboff, nrotem, oliver, saam, sam
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 132356, 144368, 144369    
Attachments:
Description Flags
work in progress
none
more
none
the patch benjamin: review+

Description Filip Pizlo 2015-04-28 12:52:36 PDT
Patch forthcoming.
Comment 1 Filip Pizlo 2015-04-28 16:19:08 PDT
Created attachment 251894 [details]
work in progress

I think that I wrote the important parts.
Comment 2 Filip Pizlo 2015-04-28 18:21:46 PDT
Created attachment 251909 [details]
more
Comment 3 Filip Pizlo 2015-04-28 18:37:07 PDT
Created attachment 251912 [details]
the patch
Comment 4 WebKit Commit Bot 2015-04-28 18:38:51 PDT
Attachment 251912 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6211:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 5 Benjamin Poulain 2015-04-28 19:29:17 PDT
Comment on attachment 251912 [details]
the patch

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

> Source/JavaScriptCore/dfg/DFGCommon.cpp:49
> +bool stringLessThan(StringImpl* a, StringImpl* b)

Should be StringImpl&

> Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6214
> +            for (
> +                unsigned j = numChecked;
> +                j < std::min(cases[begin].string->length(), cases[i].string->length());
> +                ++j) {

This is not particularly readable. 
It would probably look nicer if std::min(cases[begin].string->length(), cases[i].string->length()) was just stored in a temporary.

> Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6242
> +            m_out.check(
> +                m_out.notEqual(
> +                    m_out.load8(buffer, m_heaps.characters8[i]),
> +                    m_out.constInt8(cases[begin].string->at(i))),
> +                unsure(fallThrough));

I wonder if LLVM can mutate this in whole-word load and compare.

> Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6268
> +            switchStringRecurse(
> +                data, buffer, length, cases, commonChars, begin + 1, end, minLength + 1, false);

Could be on one line.

> Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6300
> +            switchCases.append(SwitchCase(
> +                m_out.constInt8(characterCases[i].character), characterBlocks[i], Weight()));

Could be on one line.
Comment 6 Filip Pizlo 2015-04-28 19:46:58 PDT
(In reply to comment #5)
> Comment on attachment 251912 [details]
> the patch
> 
> View in context:
> https://bugs.webkit.org/attachment.cgi?id=251912&action=review
> 
> > Source/JavaScriptCore/dfg/DFGCommon.cpp:49
> > +bool stringLessThan(StringImpl* a, StringImpl* b)
> 
> Should be StringImpl&

I did this, and the code just became more awkward. Passing around StringImpl* is an idiom throughout the DFG/FTL. Using StringImpl& here means that both callers have to convert. It's not clear that this is better.

> 
> > Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6214
> > +            for (
> > +                unsigned j = numChecked;
> > +                j < std::min(cases[begin].string->length(), cases[i].string->length());
> > +                ++j) {
> 
> This is not particularly readable. 
> It would probably look nicer if std::min(cases[begin].string->length(),
> cases[i].string->length()) was just stored in a temporary.

Good call.

> 
> > Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6242
> > +            m_out.check(
> > +                m_out.notEqual(
> > +                    m_out.load8(buffer, m_heaps.characters8[i]),
> > +                    m_out.constInt8(cases[begin].string->at(i))),
> > +                unsure(fallThrough));
> 
> I wonder if LLVM can mutate this in whole-word load and compare.

What do you mean?  Like, converting multiple load-and-compare-byte's into a single load-and-compare-word?  There are probably super weird rules governing this.  Currently, LLVM emits something kind of gross:

      0x5a96e7603c9d: 	movzbl	2(%rax), %ecx
      0x5a96e7603ca1: 	cmpl	$97, %ecx
      0x5a96e7603ca4: 	jne	0x5a96e7603ce8

It's not clear why this isn't a cmpb.

> 
> > Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6268
> > +            switchStringRecurse(
> > +                data, buffer, length, cases, commonChars, begin + 1, end, minLength + 1, false);
> 
> Could be on one line.
> 
> > Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:6300
> > +            switchCases.append(SwitchCase(
> > +                m_out.constInt8(characterCases[i].character), characterBlocks[i], Weight()));
> 
> Could be on one line.
Comment 7 Filip Pizlo 2015-04-28 20:34:40 PDT
This appears to be generally good. There are probably still opportunities for improving the FTL codegen, though. The main bug for that is https://bugs.webkit.org/show_bug.cgi?id=144369.

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

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r183523)
"Terminals" at /Volumes/Data/pizlo/primary/OpenSource/WebKitBuild/Release/jsc (r183523)

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                 Terminals                                     
SunSpider:
   3d-cube                                            5.3543+-0.3548            5.1802+-0.1009          might be 1.0336x faster
   3d-morph                                           5.9595+-0.3917            5.7491+-0.0912          might be 1.0366x faster
   3d-raytrace                                        6.6210+-0.1638            6.6015+-0.1482        
   access-binary-trees                                2.3643+-0.1516     ?      2.4142+-0.2575        ? might be 1.0211x slower
   access-fannkuch                                    6.1366+-0.1046            5.9721+-0.2269          might be 1.0275x faster
   access-nbody                                       2.8062+-0.0508     ?      3.1547+-0.3853        ? might be 1.1242x slower
   access-nsieve                                      3.4931+-0.1653            3.3087+-0.0532          might be 1.0557x faster
   bitops-3bit-bits-in-byte                           1.5824+-0.0587     ?      1.6420+-0.1949        ? might be 1.0377x slower
   bitops-bits-in-byte                                3.3286+-0.0358     ?      3.3493+-0.0308        ?
   bitops-bitwise-and                                 2.4613+-0.3675            2.2797+-0.2896          might be 1.0797x faster
   bitops-nsieve-bits                                 3.3494+-0.1084     ?      3.5010+-0.0440        ? might be 1.0453x slower
   controlflow-recursive                              2.2801+-0.0926     ?      2.6474+-0.9948        ? might be 1.1611x slower
   crypto-aes                                         4.4760+-0.1885            4.4671+-0.2250        
   crypto-md5                                         3.1236+-0.2565     ^      2.6996+-0.0987        ^ definitely 1.1571x faster
   crypto-sha1                                        2.8200+-0.3372            2.8170+-0.3394        
   date-format-tofte                                  9.1293+-0.0785     !      9.3199+-0.0705        ! definitely 1.0209x slower
   date-format-xparb                                  5.6182+-0.0931     ?      5.7032+-0.1303        ? might be 1.0151x slower
   math-cordic                                        3.1801+-0.0951     ^      3.0370+-0.0205        ^ definitely 1.0471x faster
   math-partial-sums                                  5.6758+-0.5938            5.1611+-0.1023          might be 1.0997x faster
   math-spectral-norm                                 1.8988+-0.0367     ?      2.1923+-0.3723        ? might be 1.1545x slower
   regexp-dna                                         8.0303+-1.2339            7.5879+-0.3587          might be 1.0583x faster
   string-base64                                      5.0626+-0.8457     ?      5.1441+-0.9787        ? might be 1.0161x slower
   string-fasta                                       6.8106+-0.6028            6.6533+-0.1993          might be 1.0236x faster
   string-tagcloud                                   10.2061+-0.5869            9.6366+-0.2065          might be 1.0591x faster
   string-unpack-code                                19.4661+-0.4855           19.2476+-0.1938          might be 1.0114x faster
   string-validate-input                              4.9673+-0.1107            4.8568+-0.0529          might be 1.0227x faster

   <arithmetic>                                       5.2385+-0.0658            5.1663+-0.0207          might be 1.0140x faster

                                                        TipOfTree                 Terminals                                     
LongSpider:
   3d-cube                                          874.1553+-14.6006         873.9714+-9.4267        
   3d-morph                                        1527.2032+-1.4312     ?   1527.8996+-2.4811        ?
   3d-raytrace                                      729.5059+-6.5604     ?    741.5318+-6.0231        ? might be 1.0165x slower
   access-binary-trees                             1033.6076+-7.2170     ?   1036.3295+-4.9198        ?
   access-fannkuch                                  333.6738+-8.6508          328.2607+-8.2592          might be 1.0165x faster
   access-nbody                                     610.1186+-1.0428     ?    610.9359+-2.4936        ?
   access-nsieve                                    878.3144+-7.0189     ^    857.3562+-8.5277        ^ definitely 1.0244x faster
   bitops-3bit-bits-in-byte                          45.9904+-3.4009           44.5866+-0.6467          might be 1.0315x faster
   bitops-bits-in-byte                              101.0753+-1.3525          100.9071+-1.4578        
   bitops-nsieve-bits                               637.4696+-3.6806          636.5802+-4.4428        
   controlflow-recursive                            479.9611+-1.8852     ?    484.0185+-2.5203        ?
   crypto-aes                                       704.7030+-7.5512          704.4341+-7.8390        
   crypto-md5                                       528.8409+-12.8919         516.0682+-5.6817          might be 1.0248x faster
   crypto-sha1                                      602.9231+-17.1810         599.3675+-3.2430        
   date-format-tofte                                748.4829+-15.0739    ?    819.7740+-185.0228      ? might be 1.0952x slower
   date-format-xparb                                782.6889+-18.5365         770.1645+-21.8697         might be 1.0163x faster
   math-cordic                                      591.3864+-2.8311          590.3917+-1.6318        
   math-partial-sums                                506.8916+-2.2305          503.9038+-2.1031        
   math-spectral-norm                               565.7580+-2.6590          564.2144+-2.3893        
   string-base64                                    378.3989+-7.2973          374.0896+-6.6529          might be 1.0115x faster
   string-fasta                                     437.4173+-2.7056          437.3315+-4.7366        
   string-tagcloud                                  224.3921+-2.8835     ^    214.8813+-1.4074        ^ definitely 1.0443x faster

   <geometric>                                      497.2868+-2.0832          495.4879+-4.3402          might be 1.0036x faster

                                                        TipOfTree                 Terminals                                     
V8Spider:
   crypto                                            55.1071+-1.9533     ?     55.9237+-2.1187        ? might be 1.0148x slower
   deltablue                                        103.6455+-20.8532          98.2136+-5.2241          might be 1.0553x faster
   earley-boyer                                      44.8873+-1.3239     ?     45.4948+-0.9255        ? might be 1.0135x slower
   raytrace                                          41.6949+-1.9005           40.3507+-2.1623          might be 1.0333x faster
   regexp                                            80.3903+-1.6702     ?     83.7220+-2.6260        ? might be 1.0414x slower
   richards                                          79.8234+-0.6533           79.6188+-2.7412        
   splay                                             39.2321+-0.9938           39.1759+-1.8225        

   <geometric>                                       59.5556+-1.8556           59.4438+-0.8604          might be 1.0019x faster

                                                        TipOfTree                 Terminals                                     
Octane:
   encrypt                                           0.20376+-0.00182    ?     0.20473+-0.00218       ?
   decrypt                                           3.56558+-0.02625    ?     3.57213+-0.01568       ?
   deltablue                                x2       0.20806+-0.00323          0.20801+-0.00115       
   earley                                            0.53938+-0.00404          0.53903+-0.00754       
   boyer                                             6.69160+-0.03336          6.66578+-0.04062       
   navier-stokes                            x2       5.22408+-0.13524          5.19022+-0.03152       
   raytrace                                 x2       1.26482+-0.04865    ?     1.28234+-0.04380       ? might be 1.0138x slower
   richards                                 x2       0.12282+-0.00066    ?     0.12413+-0.00344       ? might be 1.0107x slower
   splay                                    x2       0.39894+-0.00038    ?     0.39957+-0.00350       ?
   regexp                                   x2      34.20295+-6.04788         31.57183+-0.10591         might be 1.0833x faster
   pdfjs                                    x2      43.56107+-0.36633    ?    43.89870+-0.20334       ?
   mandreel                                 x2      50.27427+-0.42446    ?    50.36641+-0.24247       ?
   gbemu                                    x2      41.66389+-0.32640    ?    42.12281+-0.83950       ? might be 1.0110x slower
   closure                                           0.55669+-0.00279          0.55504+-0.00200       
   jquery                                            7.06367+-0.01208    ^     7.01817+-0.02159       ^ definitely 1.0065x faster
   box2d                                    x2      12.26414+-0.05100    !    12.40304+-0.05474       ! definitely 1.0113x slower
   zlib                                     x2     393.75937+-2.59497        393.65640+-3.11857       
   typescript                               x2     831.85677+-7.85343        827.71370+-13.46260      

   <geometric>                                       6.73876+-0.07661          6.72592+-0.01912         might be 1.0019x faster

                                                        TipOfTree                 Terminals                                     
Kraken:
   ai-astar                                          271.553+-2.789            269.685+-1.419         
   audio-beat-detection                              107.219+-0.416            106.822+-0.967         
   audio-dft                                         148.165+-3.214      ?     151.206+-4.127         ? might be 1.0205x slower
   audio-fft                                          80.992+-1.404      ?      83.386+-4.045         ? might be 1.0296x slower
   audio-oscillator                                  207.298+-2.139      ?     207.578+-1.864         ?
   imaging-darkroom                                  105.222+-1.783            104.926+-1.798         
   imaging-desaturate                                 63.251+-1.423             63.241+-1.574         
   imaging-gaussian-blur                             113.191+-2.040      ?     113.397+-1.748         ?
   json-parse-financial                               56.222+-1.904      ^      45.671+-2.117         ^ definitely 1.2310x faster
   json-stringify-tinderbox                           57.459+-2.007      ?      57.560+-2.162         ?
   stanford-crypto-aes                                65.285+-0.840             64.933+-0.654         
   stanford-crypto-ccm                                55.403+-0.535             54.941+-0.537         
   stanford-crypto-pbkdf2                            168.524+-2.143      ?     171.076+-2.877         ? might be 1.0151x slower
   stanford-crypto-sha256-iterative                   55.034+-1.474      ?      56.026+-1.651         ? might be 1.0180x slower

   <arithmetic>                                      111.058+-0.310            110.746+-0.482           might be 1.0028x faster

                                                        TipOfTree                 Terminals                                     
JSRegress:
   abs-boolean                                        2.6748+-0.0547     ?      2.7028+-0.1269        ? might be 1.0105x slower
   adapt-to-double-divide                            16.8320+-0.5143     ?     16.9319+-0.7521        ?
   aliased-arguments-getbyval                         1.2622+-0.0646            1.2192+-0.0207          might be 1.0353x faster
   allocate-big-object                                2.8846+-0.1676     ?      3.0803+-0.5389        ? might be 1.0678x slower
   arguments-named-and-reflective                    12.6722+-0.3151     ?     13.5960+-1.2742        ? might be 1.0729x slower
   arguments-out-of-bounds                           14.6987+-0.1280     !     15.0413+-0.1904        ! definitely 1.0233x slower
   arguments-strict-mode                             12.7061+-1.5184           11.9705+-1.0020          might be 1.0615x faster
   arguments                                         10.9130+-1.0913     ?     11.0470+-1.1746        ? might be 1.0123x slower
   arity-mismatch-inlining                            0.8642+-0.0511     ?      0.9539+-0.2793        ? might be 1.1038x slower
   array-access-polymorphic-structure                 6.9828+-0.3438     ?      7.0872+-0.4011        ? might be 1.0150x slower
   array-nonarray-polymorhpic-access                 33.3645+-1.5401     ?     34.6131+-1.6635        ? might be 1.0374x slower
   array-prototype-every                             90.5893+-1.0248     ^     87.1557+-1.6225        ^ definitely 1.0394x faster
   array-prototype-forEach                           87.1612+-2.0687     ?     87.3557+-2.2626        ?
   array-prototype-map                               98.0798+-1.3631           93.7365+-3.2327          might be 1.0463x faster
   array-prototype-some                              90.5638+-1.3956           90.2819+-2.1775        
   array-splice-contiguous                           40.9797+-0.6826     ?     42.2029+-1.6058        ? might be 1.0298x slower
   array-with-double-add                              4.3008+-0.1901            4.0951+-0.0742          might be 1.0502x faster
   array-with-double-increment                        3.1980+-0.0271     ?      3.2689+-0.0642        ? might be 1.0222x slower
   array-with-double-mul-add                          5.1099+-0.2681            5.0349+-0.0997          might be 1.0149x faster
   array-with-double-sum                              3.2804+-0.0274     ?      3.4484+-0.4016        ? might be 1.0512x slower
   array-with-int32-add-sub                           7.4794+-1.8582            6.8204+-0.1154          might be 1.0966x faster
   array-with-int32-or-double-sum                     3.3136+-0.0300            3.3055+-0.0410        
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     37.8524+-6.9794     ?     39.0662+-1.7577        ? might be 1.0321x slower
   ArrayBuffer-DataView-alloc-long-lived             14.6647+-1.7984     !     17.6277+-0.9519        ! definitely 1.2021x slower
   ArrayBuffer-Int32Array-byteOffset                  3.8673+-0.0999     ?      3.9336+-0.2830        ? might be 1.0171x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     34.2815+-2.8311           32.8380+-0.9591          might be 1.0440x faster
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     24.5369+-2.0046           23.9162+-1.7467          might be 1.0260x faster
   ArrayBuffer-Int8Array-alloc-long-lived            13.7998+-1.7044     ?     14.0795+-1.6301        ? might be 1.0203x slower
   ArrayBuffer-Int8Array-alloc                       11.5745+-1.2511     ?     12.3962+-1.9041        ? might be 1.0710x slower
   asmjs_bool_bug                                     7.9771+-0.2937            7.6560+-0.1023          might be 1.0419x faster
   assign-custom-setter-polymorphic                   3.1385+-0.0570     ?      3.1853+-0.4096        ? might be 1.0149x slower
   assign-custom-setter                               4.5199+-0.2481            4.1438+-0.1326          might be 1.0908x faster
   basic-set                                          8.6023+-0.2689     ?      8.7197+-0.5806        ? might be 1.0137x slower
   big-int-mul                                        4.0173+-0.0758     ?      4.1272+-0.4603        ? might be 1.0274x slower
   boolean-test                                       3.2784+-0.3903            3.0503+-0.0396          might be 1.0748x faster
   branch-fold                                        3.7240+-0.0570     ?      3.8177+-0.3189        ? might be 1.0252x slower
   branch-on-string-as-boolean                       19.4287+-1.4203     ?     19.8091+-1.3357        ? might be 1.0196x slower
   by-val-generic                                     8.0669+-0.3758            8.0156+-0.4390        
   call-spread-apply                                 30.5898+-1.2614           30.4508+-1.3060        
   call-spread-call                                  24.7109+-0.6061     ?     24.7463+-0.3133        ?
   captured-assignments                               0.4750+-0.0971     ?      0.4788+-0.0284        ?
   cast-int-to-double                                 5.3840+-0.2658            5.2672+-0.0298          might be 1.0222x faster
   cell-argument                                      8.5710+-0.2864            8.5387+-0.2229        
   cfg-simplify                                       3.1154+-0.1437            3.0387+-0.1092          might be 1.0252x faster
   chain-getter-access                               11.2305+-3.0223            9.9807+-0.1025          might be 1.1252x faster
   cmpeq-obj-to-obj-other                            11.0646+-1.1299     ?     11.7672+-1.3661        ? might be 1.0635x slower
   constant-test                                      4.9379+-0.0264     ?      4.9494+-0.0351        ?
   create-lots-of-functions                          11.7059+-0.3221     ?     11.8120+-0.4339        ?
   DataView-custom-properties                        39.7018+-1.9457     !     44.3875+-0.7322        ! definitely 1.1180x slower
   deconstructing-parameters-overridden-by-function   
                                                      0.5103+-0.0390     ?      0.5149+-0.0671        ?
   delay-tear-off-arguments-strictmode               14.5728+-1.1654           14.5353+-1.0030        
   deltablue-varargs                                203.4777+-3.3522          203.0190+-1.9222        
   destructuring-arguments                           17.8840+-0.7646     ?     18.2347+-1.1878        ? might be 1.0196x slower
   destructuring-swap                                 5.0677+-0.0315     ?      5.1081+-0.0994        ?
   direct-arguments-getbyval                          1.2841+-0.1673            1.2815+-0.1616        
   div-boolean-double                                 5.2168+-0.0380     ?      5.2436+-0.0512        ?
   div-boolean                                        7.8272+-0.0646     ?      7.8385+-0.1263        ?
   double-get-by-val-out-of-bounds                    4.5444+-0.0831     ?      4.6110+-0.0704        ? might be 1.0147x slower
   double-pollution-getbyval                          8.8482+-0.0525     ?      8.9486+-0.2063        ? might be 1.0114x slower
   double-pollution-putbyoffset                       4.4757+-0.4607     ?      4.5290+-0.2026        ? might be 1.0119x slower
   double-to-int32-typed-array-no-inline              2.2733+-0.0888            2.2666+-0.0540        
   double-to-int32-typed-array                        1.9022+-0.0256     ?      1.9474+-0.0743        ? might be 1.0238x slower
   double-to-uint32-typed-array-no-inline             2.4384+-0.2560            2.3394+-0.2742          might be 1.0423x faster
   double-to-uint32-typed-array                       2.0805+-0.1404            2.0356+-0.1096          might be 1.0221x faster
   elidable-new-object-dag                           43.4681+-1.6821     ?     44.9207+-1.8449        ? might be 1.0334x slower
   elidable-new-object-roflcopter                    47.7045+-2.6726           46.5331+-0.7936          might be 1.0252x faster
   elidable-new-object-then-call                     38.7701+-1.0755     ?     39.5025+-1.9359        ? might be 1.0189x slower
   elidable-new-object-tree                          47.5940+-3.2415           45.8630+-1.7272          might be 1.0377x faster
   empty-string-plus-int                              5.5282+-0.1148     ?      5.5374+-0.2167        ?
   emscripten-cube2hash                              40.3355+-1.9809           38.7348+-1.2565          might be 1.0413x faster
   exit-length-on-plain-object                       15.7105+-2.3431           14.5216+-1.1599          might be 1.0819x faster
   external-arguments-getbyval                        1.3368+-0.1155            1.2714+-0.0560          might be 1.0514x faster
   external-arguments-putbyval                        2.3499+-0.1222            2.2948+-0.0577          might be 1.0240x faster
   fixed-typed-array-storage-var-index                1.3031+-0.1545            1.2826+-0.1530          might be 1.0160x faster
   fixed-typed-array-storage                          0.9422+-0.0796            0.9270+-0.0525          might be 1.0163x faster
   Float32Array-matrix-mult                           4.5040+-0.1303     ?      4.6139+-0.4878        ? might be 1.0244x slower
   Float32Array-to-Float64Array-set                  55.6069+-1.6692     ?     57.6822+-1.9317        ? might be 1.0373x slower
   Float64Array-alloc-long-lived                     74.5455+-2.3756           73.9613+-2.0857        
   Float64Array-to-Int16Array-set                    69.9509+-0.2347           69.4741+-1.6717        
   fold-double-to-int                                13.2622+-0.1791     ?     13.6732+-0.3782        ? might be 1.0310x slower
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     11.5358+-1.3182           11.4169+-2.1288          might be 1.0104x faster
   fold-get-by-id-to-multi-get-by-offset             10.2603+-0.6220           10.2065+-1.0509        
   fold-multi-get-by-offset-to-get-by-offset   
                                                      9.6280+-0.9382     ?      9.6835+-1.1025        ?
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      9.9385+-0.8200            9.2304+-1.3560          might be 1.0767x faster
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      9.2130+-0.8638     ?      9.5136+-1.0404        ? might be 1.0326x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                      5.0787+-0.9761     ?      5.7345+-1.2134        ? might be 1.1291x slower
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     10.0735+-0.4310     ?     10.5248+-1.0726        ? might be 1.0448x slower
   fold-put-by-id-to-multi-put-by-offset             10.8592+-1.3351           10.1503+-1.1576          might be 1.0698x faster
   fold-put-structure                                 4.1205+-0.1486     !      5.4808+-0.8417        ! definitely 1.3301x slower
   for-of-iterate-array-entries                       4.7305+-0.1185     ?      4.7675+-0.3292        ?
   for-of-iterate-array-keys                          3.7697+-0.1004            3.7624+-0.1343        
   for-of-iterate-array-values                        3.8255+-0.3107            3.8249+-0.3718        
   fround                                            21.1401+-0.8072     ?     21.5707+-0.6276        ? might be 1.0204x slower
   ftl-library-inlining-dataview                     66.4744+-2.7873     ?     68.6969+-3.4656        ? might be 1.0334x slower
   ftl-library-inlining                              67.4517+-2.2149     ?     72.8828+-15.8915       ? might be 1.0805x slower
   function-dot-apply                                 2.1917+-0.0228     ?      2.2064+-0.1084        ?
   function-test                                      3.5903+-0.4370            3.3213+-0.0413          might be 1.0810x faster
   function-with-eval                               103.7676+-2.3764     ?    106.5173+-3.1287        ? might be 1.0265x slower
   gcse-poly-get-less-obvious                        18.3383+-0.7236           18.1753+-0.4995        
   gcse-poly-get                                     22.0983+-2.2052           21.2064+-1.6252          might be 1.0421x faster
   gcse                                               4.2967+-0.0744     ?      4.3157+-0.0562        ?
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.7678+-0.0711            2.7125+-0.0468          might be 1.0204x faster
   get-by-id-bimorphic-check-structure-elimination   
                                                      6.1802+-0.3784            6.0406+-0.1792          might be 1.0231x faster
   get-by-id-chain-from-try-block                     6.5776+-0.1729     ?      7.3235+-1.2094        ? might be 1.1134x slower
   get-by-id-check-structure-elimination              5.1184+-0.0392     ?      5.1349+-0.1155        ?
   get-by-id-proto-or-self                           17.0965+-1.0342           16.9502+-0.6220        
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      3.2653+-0.2320            3.2369+-0.2349        
   get-by-id-self-or-proto                           17.2513+-0.7330     ?     17.5508+-0.4209        ? might be 1.0174x slower
   get-by-val-out-of-bounds                           4.3920+-0.0865     ?      4.4508+-0.1316        ? might be 1.0134x slower
   get_callee_monomorphic                             2.8787+-0.0879            2.8350+-0.0505          might be 1.0154x faster
   get_callee_polymorphic                             3.9651+-0.4066     ?      4.1114+-0.4812        ? might be 1.0369x slower
   getter-no-activation                               4.9266+-0.1621     ?      5.0208+-0.2617        ? might be 1.0191x slower
   getter-richards                                  124.4921+-7.0920     ?    126.4354+-9.0568        ? might be 1.0156x slower
   getter                                             6.1124+-0.7415            5.7592+-0.8499          might be 1.0613x faster
   global-var-const-infer-fire-from-opt               0.9967+-0.0556            0.9851+-0.0792          might be 1.0117x faster
   global-var-const-infer                             0.7846+-0.0927     ?      0.8092+-0.1171        ? might be 1.0313x slower
   HashMap-put-get-iterate-keys                      26.3253+-0.4601     ?     26.4456+-0.4670        ?
   HashMap-put-get-iterate                           26.1915+-0.2845     ?     26.4290+-0.3790        ?
   HashMap-string-put-get-iterate                    27.2035+-0.6849     ?     27.9698+-1.4364        ? might be 1.0282x slower
   hoist-make-rope                                   13.1993+-1.2698           12.1194+-0.7804          might be 1.0891x faster
   hoist-poly-check-structure-effectful-loop   
                                                      5.2686+-0.2791            5.1731+-0.2625          might be 1.0184x faster
   hoist-poly-check-structure                         3.8122+-0.2859            3.6575+-0.0365          might be 1.0423x faster
   imul-double-only                                   8.9667+-0.7078     ?      9.0523+-0.8701        ?
   imul-int-only                                     10.0442+-0.6035            9.8386+-0.2487          might be 1.0209x faster
   imul-mixed                                         8.4321+-0.2643            8.2791+-0.1785          might be 1.0185x faster
   in-four-cases                                     20.6042+-0.2633           20.5675+-0.2130        
   in-one-case-false                                 10.4448+-0.8932     ?     10.6485+-0.7448        ? might be 1.0195x slower
   in-one-case-true                                  10.3568+-0.6635           10.2627+-0.5078        
   in-two-cases                                      10.5717+-0.5969           10.3499+-0.2955          might be 1.0214x faster
   indexed-properties-in-objects                      3.1556+-0.2508            3.0012+-0.1151          might be 1.0515x faster
   infer-closure-const-then-mov-no-inline             3.8637+-0.0308     ?      3.8758+-0.0434        ?
   infer-closure-const-then-mov                      19.7024+-0.1977           19.6564+-0.2236        
   infer-closure-const-then-put-to-scope-no-inline   
                                                     14.1866+-0.9840     ?     14.2634+-0.8101        ?
   infer-closure-const-then-put-to-scope             22.6101+-1.7351     ?     23.1429+-1.5286        ? might be 1.0236x slower
   infer-closure-const-then-reenter-no-inline   
                                                     62.0937+-0.7669     ?     62.6497+-0.7914        ?
   infer-closure-const-then-reenter                  23.4227+-0.9684     ?     23.5657+-2.0214        ?
   infer-constant-global-property                    31.3488+-1.8036           31.2987+-1.5027        
   infer-constant-property                            2.9745+-0.3990            2.7082+-0.0212          might be 1.0983x faster
   infer-one-time-closure-ten-vars                   13.9141+-1.6768           12.3693+-0.2336          might be 1.1249x faster
   infer-one-time-closure-two-vars                   13.6365+-1.7756           13.3428+-1.1640          might be 1.0220x faster
   infer-one-time-closure                            12.9135+-1.1277     ?     12.9140+-0.8865        ?
   infer-one-time-deep-closure                       21.3886+-1.7792     ?     22.0115+-1.7834        ? might be 1.0291x slower
   inline-arguments-access                            4.6584+-0.2760     ?      4.7167+-0.2122        ? might be 1.0125x slower
   inline-arguments-aliased-access                    4.7278+-0.2187            4.6014+-0.0453          might be 1.0275x faster
   inline-arguments-local-escape                      4.7021+-0.1508     ?      4.9007+-0.1235        ? might be 1.0422x slower
   inline-get-scoped-var                              5.0772+-0.3841            4.8327+-0.1583          might be 1.0506x faster
   inlined-put-by-id-transition                      11.9243+-0.6408           11.9008+-0.6428        
   int-or-other-abs-then-get-by-val                   4.8024+-0.2169            4.7111+-0.1257          might be 1.0194x faster
   int-or-other-abs-zero-then-get-by-val             17.2363+-0.3287     ?     18.0448+-1.5431        ? might be 1.0469x slower
   int-or-other-add-then-get-by-val                   4.3003+-0.0531     ?      4.5269+-0.2877        ? might be 1.0527x slower
   int-or-other-add                                   5.2904+-0.0362     ?      5.3428+-0.1078        ?
   int-or-other-div-then-get-by-val                   4.4141+-0.2559            4.3312+-0.1403          might be 1.0191x faster
   int-or-other-max-then-get-by-val                   4.4001+-0.0501            4.3277+-0.0313          might be 1.0167x faster
   int-or-other-min-then-get-by-val                   4.3872+-0.0422     ?      4.5638+-0.5393        ? might be 1.0403x slower
   int-or-other-mod-then-get-by-val                   3.9639+-0.0376     ?      3.9950+-0.0913        ?
   int-or-other-mul-then-get-by-val                   4.0305+-0.1750            3.9285+-0.0610          might be 1.0260x faster
   int-or-other-neg-then-get-by-val                   4.4786+-0.0494     ?      4.5859+-0.2239        ? might be 1.0240x slower
   int-or-other-neg-zero-then-get-by-val             18.1554+-1.4256           17.5907+-1.1918          might be 1.0321x faster
   int-or-other-sub-then-get-by-val                   4.6995+-0.2828            4.5116+-0.0586          might be 1.0416x faster
   int-or-other-sub                                   3.5482+-0.0387     ?      3.6148+-0.3583        ? might be 1.0188x slower
   int-overflow-local                                 4.5832+-0.3516            4.5497+-0.1984        
   Int16Array-alloc-long-lived                       53.4273+-1.3685           53.0343+-1.9862        
   Int16Array-bubble-sort-with-byteLength            20.2749+-0.1740     ?     21.1253+-1.5050        ? might be 1.0419x slower
   Int16Array-bubble-sort                            19.8651+-0.3189     ?     20.1002+-1.1495        ? might be 1.0118x slower
   Int16Array-load-int-mul                            1.5019+-0.0582     ?      1.5894+-0.2384        ? might be 1.0582x slower
   Int16Array-to-Int32Array-set                      52.4190+-2.1994     !     56.3946+-0.4760        ! definitely 1.0758x slower
   Int32Array-alloc-large                            24.6608+-1.0729           24.5356+-0.9581        
   Int32Array-alloc-long-lived                       57.9063+-1.0319           57.7856+-1.3952        
   Int32Array-alloc                                   3.7441+-0.4869            3.5340+-0.1684          might be 1.0594x faster
   Int32Array-Int8Array-view-alloc                    7.5746+-0.8337            7.2794+-0.8385          might be 1.0405x faster
   int52-spill                                        6.2711+-0.0850     ?      6.4707+-0.1310        ? might be 1.0318x slower
   Int8Array-alloc-long-lived                        48.0685+-1.3242           47.8883+-1.3372        
   Int8Array-load-with-byteLength                     3.6593+-0.4495            3.3636+-0.1234          might be 1.0879x faster
   Int8Array-load                                     3.3409+-0.0831            3.3260+-0.0625        
   integer-divide                                    11.2454+-0.2836           11.0526+-0.0902          might be 1.0174x faster
   integer-modulo                                     2.0011+-0.0875     ?      2.0627+-0.2802        ? might be 1.0308x slower
   large-int-captured                                 4.6508+-0.0562            4.5833+-0.0401          might be 1.0147x faster
   large-int-neg                                     16.3036+-0.3042     ?     16.5643+-0.7709        ? might be 1.0160x slower
   large-int                                         15.4900+-0.8742     ?     15.8624+-1.8426        ? might be 1.0240x slower
   logical-not                                        4.5222+-0.0785            4.5186+-0.0442        
   lots-of-fields                                    13.3108+-0.3085     ?     14.4874+-2.3588        ? might be 1.0884x slower
   make-indexed-storage                               3.1751+-0.0491     ?      3.2263+-0.4732        ? might be 1.0161x slower
   make-rope-cse                                      4.6630+-0.0547     ?      5.1268+-0.5102        ? might be 1.0995x slower
   marsaglia-larger-ints                             36.6963+-1.1585           35.8216+-0.3260          might be 1.0244x faster
   marsaglia-osr-entry                               23.0338+-0.3296     ?     23.7320+-1.3635        ? might be 1.0303x slower
   max-boolean                                        2.4413+-0.0575     ?      2.5144+-0.0920        ? might be 1.0300x slower
   method-on-number                                  18.1484+-0.2958           17.8257+-0.1657          might be 1.0181x faster
   min-boolean                                        2.4942+-0.0680     ?      2.5542+-0.1086        ? might be 1.0240x slower
   minus-boolean-double                               3.2667+-0.1601            3.2046+-0.0430          might be 1.0194x faster
   minus-boolean                                      2.3449+-0.0871     ?      2.4336+-0.3876        ? might be 1.0378x slower
   misc-strict-eq                                    38.2471+-2.1430           37.9819+-1.2772        
   mod-boolean-double                                11.4400+-1.4171           11.0592+-0.1971          might be 1.0344x faster
   mod-boolean                                        7.8496+-0.0298     ?      7.8866+-0.0923        ?
   mul-boolean-double                                 3.8579+-0.3733     ?      3.9023+-0.3104        ? might be 1.0115x slower
   mul-boolean                                        2.8420+-0.0289     ?      3.0050+-0.3141        ? might be 1.0574x slower
   neg-boolean                                        3.2876+-0.3643     ?      3.3437+-0.3623        ? might be 1.0171x slower
   negative-zero-divide                               0.3592+-0.0234     ?      0.3683+-0.0581        ? might be 1.0255x slower
   negative-zero-modulo                               0.3671+-0.0435            0.3664+-0.0670        
   negative-zero-negate                               0.3267+-0.0133     ?      0.3587+-0.0796        ? might be 1.0982x slower
   nested-function-parsing                           39.3559+-1.8256     ?     43.6181+-7.7991        ? might be 1.1083x slower
   new-array-buffer-dead                            112.1038+-2.5414     ?    112.9250+-2.2069        ?
   new-array-buffer-push                              7.4660+-0.8606     ?      7.8741+-0.7084        ? might be 1.0547x slower
   new-array-dead                                    19.5510+-0.3984           19.5157+-0.7147        
   new-array-push                                     4.3523+-0.9975            4.1925+-0.3851          might be 1.0381x faster
   no-inline-constructor                            124.9724+-2.5215     ?    126.5118+-1.4425        ? might be 1.0123x slower
   number-test                                        3.0006+-0.0408     ?      3.0303+-0.0897        ?
   object-closure-call                                5.6276+-0.1009            5.5819+-0.0204        
   object-test                                        3.1141+-0.0459     ?      3.2059+-0.2828        ? might be 1.0295x slower
   obvious-sink-pathology-taken                     140.4048+-2.2576     ?    140.6861+-1.7339        ?
   obvious-sink-pathology                           132.7371+-1.9195          131.8789+-2.0809        
   obviously-elidable-new-object                     36.3644+-1.5924           35.9536+-1.8046          might be 1.0114x faster
   plus-boolean-arith                                 2.4712+-0.0365     ?      2.4965+-0.0656        ? might be 1.0103x slower
   plus-boolean-double                                3.2000+-0.0444     ?      3.2367+-0.1426        ? might be 1.0115x slower
   plus-boolean                                       2.4311+-0.1545            2.4182+-0.1152        
   poly-chain-access-different-prototypes-simple   
                                                      3.2846+-0.0631            3.2826+-0.0432        
   poly-chain-access-different-prototypes             2.6753+-0.1538            2.5666+-0.0354          might be 1.0424x faster
   poly-chain-access-simpler                          3.3130+-0.1034            3.3084+-0.0603        
   poly-chain-access                                  2.7238+-0.2898            2.6377+-0.1380          might be 1.0327x faster
   poly-stricteq                                     62.0871+-0.5762     ?     62.5262+-0.8359        ?
   polymorphic-array-call                             1.2348+-0.0468     ?      1.2923+-0.1806        ? might be 1.0466x slower
   polymorphic-get-by-id                              3.2546+-0.3721     ?      3.2621+-0.3877        ?
   polymorphic-put-by-id                             29.3740+-2.4701     ?     29.8955+-2.4562        ? might be 1.0178x slower
   polymorphic-structure                             15.3610+-1.0582           14.9816+-0.3282          might be 1.0253x faster
   polyvariant-monomorphic-get-by-id                  8.6151+-0.4644            8.5454+-0.1436        
   proto-getter-access                                9.8990+-0.1977            9.8352+-0.1345        
   put-by-id-replace-and-transition                   9.0442+-0.0942     ?      9.1396+-0.2007        ? might be 1.0106x slower
   put-by-id-slightly-polymorphic                     2.8595+-0.0702            2.8020+-0.0622          might be 1.0205x faster
   put-by-id                                         12.7913+-0.4452           12.7067+-0.3014        
   put-by-val-direct                                  0.4625+-0.0232            0.4597+-0.0137        
   put-by-val-large-index-blank-indexing-type   
                                                      6.0574+-0.2273            5.7723+-0.0906          might be 1.0494x faster
   put-by-val-machine-int                             2.8801+-0.2301            2.8159+-0.0781          might be 1.0228x faster
   rare-osr-exit-on-local                            15.4924+-1.0425           15.4816+-1.3892        
   register-pressure-from-osr                        21.4709+-0.2095           21.3330+-0.1640        
   setter                                             6.6345+-0.4659            5.7812+-0.7151          might be 1.1476x faster
   simple-activation-demo                            24.8079+-0.2665     ?     25.5987+-1.2549        ? might be 1.0319x slower
   simple-getter-access                              13.1394+-0.2919     ?     13.2441+-0.7480        ?
   simple-poly-call-nested                            8.3512+-0.2603     ?      8.3936+-0.4565        ?
   simple-poly-call                                   1.2994+-0.0496     ?      1.3270+-0.0537        ? might be 1.0213x slower
   sin-boolean                                       23.3797+-0.8145     ?     24.2513+-2.6086        ? might be 1.0373x slower
   singleton-scope                                   67.0863+-0.6621     ?     67.8235+-1.9307        ? might be 1.0110x slower
   sink-function                                     12.4987+-0.3541     ?     12.6694+-0.4807        ? might be 1.0137x slower
   sinkable-new-object-dag                           71.0027+-1.5743     ?     71.8188+-2.1119        ? might be 1.0115x slower
   sinkable-new-object-taken                         51.3573+-2.9525           50.8887+-2.4628        
   sinkable-new-object                               39.3928+-1.4149     ?     39.8171+-1.7263        ? might be 1.0108x slower
   slow-array-profile-convergence                     2.8501+-0.1139            2.8428+-0.0767        
   slow-convergence                                   2.9356+-0.4372            2.6764+-0.0560          might be 1.0969x faster
   sorting-benchmark                                 27.3591+-6.1244           25.0432+-0.7522          might be 1.0925x faster
   sparse-conditional                                 1.1486+-0.0438     ?      1.2065+-0.1928        ? might be 1.0504x slower
   splice-to-remove                                  17.6734+-1.5925           17.0087+-1.8451          might be 1.0391x faster
   string-char-code-at                               17.1917+-0.4752     ?     18.0083+-1.3155        ? might be 1.0475x slower
   string-concat-object                               2.6065+-0.1559     ?      2.7340+-0.2380        ? might be 1.0489x slower
   string-concat-pair-object                          2.5721+-0.2047     ?      2.7462+-0.3228        ? might be 1.0677x slower
   string-concat-pair-simple                         12.2632+-0.9467           11.6532+-0.4317          might be 1.0523x faster
   string-concat-simple                              13.5338+-1.3697           13.1717+-1.4560          might be 1.0275x faster
   string-cons-repeat                                 8.1469+-0.4886     ?      9.1047+-0.9790        ? might be 1.1176x slower
   string-cons-tower                                  8.7563+-1.0260     ?      9.2319+-1.2502        ? might be 1.0543x slower
   string-equality                                   17.2334+-0.1400     ?     17.4769+-0.2444        ? might be 1.0141x slower
   string-get-by-val-big-char                         7.1500+-0.0368     ?      7.2313+-0.2321        ? might be 1.0114x slower
   string-get-by-val-out-of-bounds-insane             4.0721+-0.9264     ?      4.1210+-0.7653        ? might be 1.0120x slower
   string-get-by-val-out-of-bounds                    5.2660+-0.0550     ?      5.2888+-0.0773        ?
   string-get-by-val                                  3.5238+-0.4640            3.3243+-0.0889          might be 1.0600x faster
   string-hash                                        2.0334+-0.0847     ?      2.2047+-0.2148        ? might be 1.0842x slower
   string-long-ident-equality                        15.1318+-0.3900           14.7858+-0.1277          might be 1.0234x faster
   string-out-of-bounds                              14.8850+-0.1285     ?     14.9237+-0.2610        ?
   string-repeat-arith                               34.0893+-2.2596           32.7359+-2.4283          might be 1.0413x faster
   string-sub                                        69.5118+-4.2879           64.4708+-3.9805          might be 1.0782x faster
   string-test                                        2.9385+-0.0404            2.8852+-0.0524          might be 1.0185x faster
   string-var-equality                               31.3082+-2.3463           31.0919+-1.9319        
   structure-hoist-over-transitions                   2.6222+-0.0863     ?      2.6509+-0.1075        ? might be 1.0109x slower
   substring-concat-weird                            39.7762+-1.0077     ?     40.2220+-1.1142        ? might be 1.0112x slower
   substring-concat                                  42.1387+-2.0149           41.4270+-1.1429          might be 1.0172x faster
   substring                                         46.8692+-2.0332           46.2790+-1.5925          might be 1.0128x faster
   switch-char-constant                               2.7385+-0.1402     ?      2.7498+-0.0700        ?
   switch-char                                        6.9626+-1.0444     ?      7.0225+-0.6977        ?
   switch-constant                                    8.6090+-0.4927            8.4573+-0.2479          might be 1.0179x faster
   switch-string-basic-big-var                       15.2704+-1.5360     !     18.4760+-0.6953        ! definitely 1.2099x slower
   switch-string-basic-big                           14.5329+-1.4245           14.3690+-0.1442          might be 1.0114x faster
   switch-string-basic-var                           14.7098+-1.0208           14.6261+-0.2126        
   switch-string-basic                               13.8297+-1.5640           13.5736+-0.2606          might be 1.0189x faster
   switch-string-big-length-tower-var                20.2002+-1.5841     ?     21.0655+-1.4009        ? might be 1.0428x slower
   switch-string-length-tower-var                    15.7887+-1.9318           15.2662+-0.1705          might be 1.0342x faster
   switch-string-length-tower                        14.3843+-1.8795           12.9677+-0.3641          might be 1.1092x faster
   switch-string-short                               13.8087+-1.8365           12.7974+-0.2330          might be 1.0790x faster
   switch                                            12.6725+-0.2102           12.6556+-0.3083        
   tear-off-arguments-simple                          3.6372+-0.3098            3.5484+-0.2026          might be 1.0250x faster
   tear-off-arguments                                 4.8075+-0.2478            4.6993+-0.1143          might be 1.0230x faster
   temporal-structure                                12.5603+-0.4906           12.3249+-0.1692          might be 1.0191x faster
   to-int32-boolean                                  13.5349+-0.1511     ?     13.9533+-0.2718        ? might be 1.0309x slower
   try-catch-get-by-val-cloned-arguments             14.8156+-1.2887     ?     15.4980+-2.1070        ? might be 1.0461x slower
   try-catch-get-by-val-direct-arguments              7.0168+-0.9222     ?      7.0798+-0.7917        ?
   try-catch-get-by-val-scoped-arguments              8.2320+-1.1068     ?      8.5033+-1.4045        ? might be 1.0330x slower
   typed-array-get-set-by-val-profiling              32.6621+-1.1924     ?     33.1569+-2.3431        ? might be 1.0151x slower
   undefined-property-access                        353.9491+-2.5183     ?    355.4368+-3.2411        ?
   undefined-test                                     3.1955+-0.3721            3.0844+-0.2040          might be 1.0360x faster
   unprofiled-licm                                   22.7355+-0.3311     ?     22.9991+-0.8605        ? might be 1.0116x slower
   varargs-call                                      16.3224+-1.3491     ?     16.6448+-1.1707        ? might be 1.0197x slower
   varargs-construct-inline                          22.5042+-0.4270     ?     24.0538+-1.5010        ? might be 1.0689x slower
   varargs-construct                                 32.1652+-0.5990     ?     32.1919+-0.8634        ?
   varargs-inline                                     9.8497+-0.9108            9.5335+-0.4138          might be 1.0332x faster
   varargs-strict-mode                               10.2370+-0.1358     ?     10.2853+-0.2641        ?
   varargs                                           10.4180+-0.3968           10.2558+-0.1368          might be 1.0158x faster
   weird-inlining-const-prop                          2.3513+-0.1742     ?      2.3637+-0.1634        ?

   <geometric>                                        8.9734+-0.0224     ?      8.9962+-0.0364        ? might be 1.0025x slower

                                                        TipOfTree                 Terminals                                     
AsmBench:
   bigfib.cpp                                       495.0863+-3.4191     ?    495.2115+-1.4958        ?
   cray.c                                           427.2837+-3.6813          425.4461+-1.5655        
   dry.c                                            486.6491+-13.0536         481.4631+-8.7362          might be 1.0108x faster
   FloatMM.c                                        726.2350+-5.0755          723.6348+-1.7695        
   gcc-loops.cpp                                   4265.7178+-8.6135         4259.5857+-8.2617        
   n-body.c                                         982.0747+-7.8687          981.1179+-3.1693        
   Quicksort.c                                      418.7010+-3.8462     ?    421.1767+-5.0543        ?
   stepanov_container.cpp                          3597.5999+-6.4450     ?   3598.2443+-12.0231       ?
   Towers.c                                         259.5325+-0.4221     ?    262.0172+-3.7301        ?

   <geometric>                                      791.8489+-2.7091          791.4071+-3.4608          might be 1.0006x faster

                                                        TipOfTree                 Terminals                                     
CompressionBench:
   huffman                                          365.6912+-2.4995     ?    367.0227+-3.0184        ?
   arithmetic-simple                                395.1027+-3.1648     ?    397.7232+-3.7063        ?
   arithmetic-precise                               303.2745+-5.3614          298.5373+-4.5625          might be 1.0159x faster
   arithmetic-complex-precise                       299.4463+-2.9283          298.1935+-3.8454        
   arithmetic-precise-order-0                       427.2052+-5.4192          422.9203+-5.0545          might be 1.0101x faster
   arithmetic-precise-order-1                       328.2134+-4.3051          324.3773+-1.8315          might be 1.0118x faster
   arithmetic-precise-order-2                       358.3283+-2.8711          358.0954+-4.1034        
   arithmetic-simple-order-1                        426.0775+-6.6666          422.2477+-3.1185        
   arithmetic-simple-order-2                        468.1896+-4.5746     ?    473.8795+-13.5784       ? might be 1.0122x slower
   lz-string                                        326.5867+-2.4388          325.8449+-3.6595        

   <geometric>                                      365.8279+-1.3168          364.6733+-1.2909          might be 1.0032x faster

                                                        TipOfTree                 Terminals                                     
Geomean of preferred means:
   <scaled-result>                                   64.5574+-0.3217           64.3559+-0.1307          might be 1.0031x faster
Comment 8 Filip Pizlo 2015-04-28 20:36:22 PDT
Landed in http://trac.webkit.org/changeset/183525