Bug 135145 - FTL should be able to do polymorphic call inlining
Summary: FTL should be able to do polymorphic call inlining
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: 135146 136256
Blocks: 136020 136033
  Show dependency treegraph
 
Reported: 2014-07-21 20:20 PDT by Filip Pizlo
Modified: 2014-08-28 12:11 PDT (History)
18 users (show)

See Also:


Attachments
work in progress (8.38 KB, patch)
2014-07-27 16:49 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
more (24.94 KB, patch)
2014-07-29 21:26 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
better (22.07 KB, patch)
2014-08-06 21:09 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
more (38.17 KB, patch)
2014-08-07 15:01 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
a bit more (43.07 KB, patch)
2014-08-11 12:49 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
it's coming together (75.53 KB, patch)
2014-08-16 10:35 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
getting there (87.87 KB, patch)
2014-08-16 12:19 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
very close (94.78 KB, patch)
2014-08-16 16:58 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
parser hacks done (95.95 KB, patch)
2014-08-16 20:44 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
more (129.57 KB, patch)
2014-08-17 11:30 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
even more (143.18 KB, patch)
2014-08-17 17:11 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
it compiles! (148.07 KB, patch)
2014-08-17 19:28 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
doesn't work yet (149.66 KB, patch)
2014-08-18 21:02 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
getting closer (135.05 KB, patch)
2014-08-19 21:02 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
starting to pass tests (158.36 KB, patch)
2014-08-20 11:27 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
passing more tests than ever! (164.32 KB, patch)
2014-08-20 20:04 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
passing tests (167.08 KB, patch)
2014-08-21 14:46 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
it works but needs some more love (167.10 KB, patch)
2014-08-21 19:30 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
net win on Octane (171.64 KB, patch)
2014-08-23 15:54 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
a wrong approch (171.64 KB, patch)
2014-08-23 18:06 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
closer (178.37 KB, patch)
2014-08-23 21:12 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
the wrong approach, for real (174.53 KB, patch)
2014-08-23 21:13 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (183.13 KB, patch)
2014-08-24 18:00 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (186.39 KB, patch)
2014-08-24 21:37 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (186.38 KB, patch)
2014-08-25 08:39 PDT, Filip Pizlo
no flags Details | Formatted Diff | Diff
the patch (188.64 KB, patch)
2014-08-25 11:37 PDT, Filip Pizlo
ggaren: review+
buildbot: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from webkit-ews-09 for mac-mountainlion-wk2 (583.61 KB, application/zip)
2014-08-25 14:28 PDT, Build Bot
no flags Details
patch for relanding (189.90 KB, patch)
2014-08-27 22:16 PDT, Filip Pizlo
buildbot: commit-queue-
Details | Formatted Diff | Diff
Archive of layout-test-results from webkit-ews-16 for mac-mountainlion-wk2 (777.05 KB, application/zip)
2014-08-28 01:16 PDT, Build Bot
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Filip Pizlo 2014-07-21 20:20:44 PDT
...
Comment 1 Filip Pizlo 2014-07-27 16:49:51 PDT
Created attachment 235586 [details]
work in progress
Comment 2 Filip Pizlo 2014-07-29 21:26:02 PDT
Created attachment 235733 [details]
more

I might change this to a different approach.  It feels like the CallEdgeProfile should actually be embedded in CallLinkInfo.
Comment 3 Filip Pizlo 2014-08-06 21:09:49 PDT
Created attachment 236172 [details]
better

Still more work to do
Comment 4 Filip Pizlo 2014-08-07 15:01:42 PDT
Created attachment 236230 [details]
more
Comment 5 Filip Pizlo 2014-08-11 12:49:59 PDT
Created attachment 236393 [details]
a bit more
Comment 6 Filip Pizlo 2014-08-16 10:35:13 PDT
Created attachment 236718 [details]
it's coming together
Comment 7 Filip Pizlo 2014-08-16 12:19:34 PDT
Created attachment 236721 [details]
getting there

Now I need to do the ByteCodeParser hacks that create the switch on callee.  Then I need to trickle the CheckCell/GetExecutable/CheckBadCell changes through the DFG.
Comment 8 Filip Pizlo 2014-08-16 16:58:35 PDT
Created attachment 236724 [details]
very close

Wrote most of the bytecode parser hacks.
Comment 9 Filip Pizlo 2014-08-16 20:44:03 PDT
Created attachment 236725 [details]
parser hacks done

The bytecode parser now has all of the requisite hacks, I think.
Comment 10 Filip Pizlo 2014-08-17 11:30:46 PDT
Created attachment 236730 [details]
more
Comment 11 Filip Pizlo 2014-08-17 17:11:03 PDT
Created attachment 236738 [details]
even more
Comment 12 Filip Pizlo 2014-08-17 19:28:10 PDT
Created attachment 236739 [details]
it compiles!

Clearly that means that I must almost be done.
Comment 13 Filip Pizlo 2014-08-18 21:02:06 PDT
Created attachment 236796 [details]
doesn't work yet

The profiling needs some love.
Comment 14 Filip Pizlo 2014-08-19 21:02:20 PDT
Created attachment 236852 [details]
getting closer
Comment 15 Filip Pizlo 2014-08-20 11:27:44 PDT
Created attachment 236884 [details]
starting to pass tests
Comment 16 Filip Pizlo 2014-08-20 20:04:45 PDT
Created attachment 236909 [details]
passing more tests than ever!

Still pretty badly broken, though.
Comment 17 Filip Pizlo 2014-08-21 14:46:59 PDT
Created attachment 236938 [details]
passing tests

I think that this version is passing all 64-bit tests.
Comment 18 Filip Pizlo 2014-08-21 19:30:25 PDT
Created attachment 236959 [details]
it works but needs some more love

It's a speed-up on deltablue but a slow-down on lots of other things, probably because the current call edge profiling is just too expensive.  I'll work on speeding it up.

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

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

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                 PolyInline                                    
SunSpider:
   3d-cube                                            7.5946+-0.2153     ?      8.0443+-0.2443        ? might be 1.0592x slower
   3d-morph                                           9.6110+-0.1630     ?      9.6455+-0.1662        ?
   3d-raytrace                                        9.7065+-0.1233     ?      9.8396+-0.1460        ? might be 1.0137x slower
   access-binary-trees                                2.8809+-0.0777     ?      2.9406+-0.0872        ? might be 1.0207x slower
   access-fannkuch                                    9.1764+-0.1227     ?      9.3502+-0.2241        ? might be 1.0189x slower
   access-nbody                                       4.6783+-0.0490     ?      4.6904+-0.0220        ?
   access-nsieve                                      5.7740+-0.1203     ?      5.8987+-0.0769        ? might be 1.0216x slower
   bitops-3bit-bits-in-byte                           1.8617+-0.0317     ?      1.9032+-0.0238        ? might be 1.0223x slower
   bitops-bits-in-byte                                6.7890+-0.1195     ?      6.8812+-0.0978        ? might be 1.0136x slower
   bitops-bitwise-and                                 3.1610+-0.0377     ?      3.1814+-0.0086        ?
   bitops-nsieve-bits                                 5.6544+-0.0241     ?      5.6804+-0.0188        ?
   controlflow-recursive                              2.9051+-0.0727     !      3.2190+-0.1105        ! definitely 1.1081x slower
   crypto-aes                                         6.2924+-0.0738     ?      6.4142+-0.0746        ? might be 1.0194x slower
   crypto-md5                                         3.6888+-0.0626     ?      3.6998+-0.1055        ?
   crypto-sha1                                        3.7182+-0.0965     !      4.4001+-0.1380        ! definitely 1.1834x slower
   date-format-tofte                                 13.1222+-0.0693     !     13.5642+-0.3367        ! definitely 1.0337x slower
   date-format-xparb                                  8.6792+-0.1452     !      9.0055+-0.1027        ! definitely 1.0376x slower
   math-cordic                                        4.6585+-0.0605     !      4.8008+-0.0705        ! definitely 1.0305x slower
   math-partial-sums                                 10.4178+-0.1828     ?     10.4766+-0.1536        ?
   math-spectral-norm                                 3.0549+-0.0615     ?      3.0768+-0.0107        ?
   regexp-dna                                        11.8511+-0.1547           11.6842+-0.1506          might be 1.0143x faster
   string-base64                                      6.3891+-0.1283     !      6.6825+-0.0560        ! definitely 1.0459x slower
   string-fasta                                      10.3838+-0.2348     ?     10.4120+-0.1427        ?
   string-tagcloud                                   15.3205+-0.1762     ?     15.5042+-0.2090        ? might be 1.0120x slower
   string-unpack-code                                30.6919+-0.2215     !     31.5972+-0.1779        ! definitely 1.0295x slower
   string-validate-input                              7.7859+-0.0451     !      7.9743+-0.1431        ! definitely 1.0242x slower

   <arithmetic> *                                     7.9172+-0.0145     !      8.0987+-0.0305        ! definitely 1.0229x slower
   <geometric>                                        6.5040+-0.0174     !      6.6785+-0.0204        ! definitely 1.0268x slower
   <harmonic>                                         5.4204+-0.0246     !      5.5887+-0.0232        ! definitely 1.0311x slower

                                                        TipOfTree                 PolyInline                                    
LongSpider:
   3d-cube                                         1352.0654+-7.5681         1351.0275+-6.7999        
   3d-morph                                        2272.6241+-2.0340     ?   2275.0402+-7.0950        ?
   3d-raytrace                                     1482.4245+-419.2106       1335.0356+-16.8111         might be 1.1104x faster
   access-binary-trees                             1675.1018+-8.6648     ?   1675.2926+-7.5717        ?
   access-fannkuch                                  526.0796+-14.9734         516.7568+-14.9238         might be 1.0180x faster
   access-nbody                                    1248.8571+-6.1241     ^   1238.8468+-1.2545        ^ definitely 1.0081x faster
   access-nsieve                                   1609.9677+-2.6668     ?   1613.6973+-10.8114       ?
   bitops-3bit-bits-in-byte                          56.3809+-0.3532     ?     56.4364+-0.5069        ?
   bitops-bits-in-byte                              394.6253+-3.5777          392.5570+-4.3569        
   bitops-nsieve-bits                              1178.5810+-3.9830     ?   1181.9095+-4.6539        ?
   controlflow-recursive                            866.1628+-1.8765     !    876.0103+-1.0721        ! definitely 1.0114x slower
   crypto-aes                                      1134.4246+-6.2766     ?   1134.8290+-4.9674        ?
   crypto-md5                                       956.3330+-5.2402     !    983.1053+-4.8350        ! definitely 1.0280x slower
   crypto-sha1                                     1196.8633+-4.2312     !   1220.6004+-2.9407        ! definitely 1.0198x slower
   date-format-tofte                               1197.9165+-21.7163        1186.0440+-30.1110         might be 1.0100x faster
   date-format-xparb                               1364.5377+-158.9320       1345.7737+-19.7882         might be 1.0139x faster
   math-cordic                                      812.0073+-1.8270          809.1755+-1.0567        
   math-partial-sums                               1315.1551+-3.1678     ?   1327.4985+-20.3672       ?
   math-spectral-norm                              1297.2487+-1.3593     ?   1299.1891+-7.3236        ?
   string-base64                                    593.9134+-11.3291    !    609.7895+-1.2048        ! definitely 1.0267x slower
   string-fasta                                     706.3265+-8.3551     !    724.1660+-3.0820        ! definitely 1.0253x slower
   string-tagcloud                                  361.5202+-2.4758     ?    363.9523+-3.2177        ?

   <arithmetic>                                    1072.6871+-25.7723        1068.9424+-2.8234          might be 1.0035x faster
   <geometric> *                                    891.2936+-13.3211         891.2051+-2.3769          might be 1.0001x faster
   <harmonic>                                       536.0106+-3.2548     ?    536.8952+-1.2105        ? might be 1.0017x slower

                                                        TipOfTree                 PolyInline                                    
V8Spider:
   crypto                                            80.9008+-0.5207     ?     81.4185+-1.0465        ?
   deltablue                                         99.1384+-0.9682     !    121.0133+-1.6391        ! definitely 1.2207x slower
   earley-boyer                                      73.8010+-1.6163     !     76.3885+-0.7901        ! definitely 1.0351x slower
   raytrace                                          44.1356+-0.9037     !     50.0779+-0.5829        ! definitely 1.1346x slower
   regexp                                           103.6033+-0.3017     !    105.4350+-0.4881        ! definitely 1.0177x slower
   richards                                         107.5065+-1.0195     !    117.8313+-1.0731        ! definitely 1.0960x slower
   splay                                             49.8695+-0.2632     ?     50.8301+-1.8020        ? might be 1.0193x slower

   <arithmetic>                                      79.8507+-0.1704     !     86.1421+-0.5408        ! definitely 1.0788x slower
   <geometric> *                                     75.8954+-0.2279     !     81.4524+-0.5156        ! definitely 1.0732x slower
   <harmonic>                                        71.6666+-0.3093     !     76.6950+-0.5800        ! definitely 1.0702x slower

                                                        TipOfTree                 PolyInline                                    
Octane:
   encrypt                                           0.39473+-0.00039    !     0.40192+-0.00215       ! definitely 1.0182x slower
   decrypt                                           7.25790+-0.18546    ?     7.35649+-0.02711       ? might be 1.0136x slower
   deltablue                                x2       0.44000+-0.00558    ^     0.34110+-0.00174       ^ definitely 1.2900x faster
   earley                                            1.34546+-0.01173    ?     1.35393+-0.01131       ?
   boyer                                            10.42331+-0.09680    ?    10.43746+-0.04220       ?
   navier-stokes                            x2       7.73531+-0.00552          7.71280+-0.05381       
   raytrace                                 x2       2.66749+-0.02389          2.64685+-0.02644       
   richards                                 x2       0.22155+-0.00319          0.21780+-0.00325         might be 1.0172x faster
   splay                                    x2       0.62699+-0.00634          0.62681+-0.00482       
   regexp                                   x2      61.84485+-1.77403    ?    62.16311+-0.54360       ?
   pdfjs                                    x2      86.33682+-0.20069    !    89.37293+-1.01204       ! definitely 1.0352x slower
   mandreel                                 x2      91.88538+-0.34420    ^    89.60177+-1.26779       ^ definitely 1.0255x faster
   gbemu                                    x2      68.24726+-0.31933    !   104.55190+-0.44065       ! definitely 1.5320x slower
   closure                                           0.90719+-0.00111    !     0.91345+-0.00219       ! definitely 1.0069x slower
   jquery                                           11.42860+-0.02258    ^    11.25698+-0.01161       ^ definitely 1.0152x faster
   box2d                                    x2      24.63824+-0.13182    !    24.99385+-0.14292       ! definitely 1.0144x slower
   zlib                                     x2     815.33431+-4.22733    ?   815.81070+-6.35226       ?
   typescript                               x2    1280.47925+-7.08743    !  1340.11747+-7.41310       ! definitely 1.0466x slower

   <arithmetic>                                    163.75574+-0.58948    !   170.26781+-0.42883       ! definitely 1.0398x slower
   <geometric> *                                    12.29412+-0.02072    !    12.48793+-0.03242       ! definitely 1.0158x slower
   <harmonic>                                        1.32366+-0.00845    ^     1.24611+-0.00896       ^ definitely 1.0622x faster

                                                        TipOfTree                 PolyInline                                    
Kraken:
   ai-astar                                          528.577+-1.711      ?     529.073+-0.626         ?
   audio-beat-detection                              182.384+-0.601            182.185+-4.016         
   audio-dft                                         253.074+-1.250      ?     253.463+-1.209         ?
   audio-fft                                         130.191+-0.345            130.075+-0.787         
   audio-oscillator                                  366.593+-0.933      ^     361.922+-1.114         ^ definitely 1.0129x faster
   imaging-darkroom                                  289.547+-7.152            289.346+-1.124         
   imaging-desaturate                                113.049+-1.956            112.132+-0.471         
   imaging-gaussian-blur                             178.874+-0.560      ?     179.066+-0.380         ?
   json-parse-financial                               82.244+-0.379      ?      82.863+-0.300         ?
   json-stringify-tinderbox                          105.377+-0.624      ?     108.018+-2.791         ? might be 1.0251x slower
   stanford-crypto-aes                               101.463+-1.313      ?     102.880+-1.196         ? might be 1.0140x slower
   stanford-crypto-ccm                                92.447+-11.665     ?      97.330+-9.769         ? might be 1.0528x slower
   stanford-crypto-pbkdf2                            274.545+-2.446      !     277.732+-0.634         ! definitely 1.0116x slower
   stanford-crypto-sha256-iterative                  107.451+-0.797      ?     108.552+-0.507         ? might be 1.0103x slower

   <arithmetic> *                                    200.415+-1.045      ?     201.046+-0.742         ? might be 1.0031x slower
   <geometric>                                       169.567+-1.569      ?     170.797+-1.140         ? might be 1.0073x slower
   <harmonic>                                        147.330+-2.101      ?     149.010+-1.481         ? might be 1.0114x slower

                                                        TipOfTree                 PolyInline                                    
JSRegress:
   abs-boolean                                        4.1798+-0.0135     !      4.2309+-0.0026        ! definitely 1.0122x slower
   adapt-to-double-divide                            20.0364+-0.3317     ?     20.3616+-0.5457        ? might be 1.0162x slower
   aliased-arguments-getbyval                         1.0923+-0.0092     !      1.1754+-0.0285        ! definitely 1.0761x slower
   allocate-big-object                                3.5848+-0.0255     ?      3.7871+-0.2078        ? might be 1.0564x slower
   arity-mismatch-inlining                            1.0146+-0.0060     ?      1.0483+-0.0533        ? might be 1.0332x slower
   array-access-polymorphic-structure                10.9338+-0.1994           10.8200+-0.2224          might be 1.0105x faster
   array-nonarray-polymorhpic-access                 60.8348+-0.2101     ?     60.8615+-0.2560        ?
   array-prototype-every                            125.0113+-2.8715     ?    126.2563+-2.8309        ?
   array-prototype-forEach                          124.3809+-1.8162          123.6824+-2.6998        
   array-prototype-map                              147.8374+-0.3035     ?    149.5013+-3.5347        ? might be 1.0113x slower
   array-prototype-some                             124.4661+-3.5184          123.6065+-2.3767        
   array-splice-contiguous                           69.4052+-1.9175     !     74.2858+-0.7240        ! definitely 1.0703x slower
   array-with-double-add                              6.5933+-0.1489     ?      6.6831+-0.1740        ? might be 1.0136x slower
   array-with-double-increment                        4.6936+-0.0684     ?      4.7790+-0.0998        ? might be 1.0182x slower
   array-with-double-mul-add                          7.9657+-0.2380     ?      8.0192+-0.1954        ?
   array-with-double-sum                              4.9562+-0.0176     ?      5.0314+-0.0808        ? might be 1.0152x slower
   array-with-int32-add-sub                          11.9687+-0.3082           11.9197+-0.2233        
   array-with-int32-or-double-sum                     5.1092+-0.0658            5.1050+-0.0832        
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                    114.1682+-1.0872     ?    115.5278+-1.4361        ? might be 1.0119x slower
   ArrayBuffer-DataView-alloc-long-lived             32.3613+-0.5549     ?     33.5216+-1.8139        ? might be 1.0359x slower
   ArrayBuffer-Int32Array-byteOffset                  5.2577+-0.0118     ?      5.3598+-0.2003        ? might be 1.0194x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                    120.5495+-1.4132     ?    120.8168+-1.7281        ?
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     51.0945+-0.3967     ?     51.2767+-0.5661        ?
   ArrayBuffer-Int8Array-alloc-long-lived            31.1080+-0.3951     ?     31.6860+-0.5979        ? might be 1.0186x slower
   ArrayBuffer-Int8Array-alloc                       27.6877+-0.1137     !     28.1193+-0.3158        ! definitely 1.0156x slower
   asmjs_bool_bug                                    10.2304+-0.0970           10.2031+-0.2022        
   assign-custom-setter-polymorphic                   4.8608+-0.1087     ?      4.8993+-0.0160        ?
   assign-custom-setter                               6.6747+-0.0444     ?      6.7273+-0.1297        ?
   basic-set                                         15.1954+-0.1069     !     16.1310+-0.2591        ! definitely 1.0616x slower
   big-int-mul                                        6.3088+-0.0877     !      6.8925+-0.1580        ! definitely 1.0925x slower
   boolean-test                                       4.7846+-0.0503     ?      4.8570+-0.0863        ? might be 1.0151x slower
   branch-fold                                        5.1597+-0.0379            5.1018+-0.0625          might be 1.0113x faster
   by-val-generic                                    12.8818+-0.2397     ?     12.9330+-0.3659        ?
   call-spread-apply                                 20.1300+-0.2423     !     20.8793+-0.4502        ! definitely 1.0372x slower
   call-spread-call                                   8.7924+-0.2655            8.7643+-0.2203        
   captured-assignments                               0.5822+-0.0046     ?      0.5878+-0.0028        ?
   cast-int-to-double                                 9.4331+-0.1119     ?      9.4803+-0.0435        ?
   cell-argument                                     11.0470+-0.1002     ?     11.0909+-0.1342        ?
   cfg-simplify                                       4.0564+-0.0137     ?      4.0705+-0.0088        ?
   chain-getter-access                               13.6212+-0.1913     ?     13.6705+-0.2572        ?
   cmpeq-obj-to-obj-other                            13.7810+-0.7287           13.4700+-0.4301          might be 1.0231x faster
   constant-test                                      8.8676+-0.1166            8.8178+-0.1558        
   DataView-custom-properties                       123.7233+-2.4634          123.5355+-1.2153        
   delay-tear-off-arguments-strictmode                3.6439+-0.0468     !      3.8051+-0.0125        ! definitely 1.0442x slower
   destructuring-arguments                            8.9250+-0.1094     ?      9.0672+-0.1029        ? might be 1.0159x slower
   destructuring-swap                                 8.8669+-0.0750     ?      9.0399+-0.1544        ? might be 1.0195x slower
   direct-arguments-getbyval                          1.1095+-0.0141     !      1.1503+-0.0065        ! definitely 1.0368x slower
   div-boolean-double                                 6.4487+-0.0986            6.4284+-0.0890        
   div-boolean                                       11.5881+-0.0463     ?     11.6834+-0.2151        ?
   double-get-by-val-out-of-bounds                    6.6634+-0.2158     ?      6.6743+-0.1509        ?
   double-pollution-getbyval                         11.5010+-0.2670           11.3490+-0.1865          might be 1.0134x faster
   double-pollution-putbyoffset                       6.0839+-0.0978     ?      6.3060+-0.1848        ? might be 1.0365x slower
   double-to-int32-typed-array-no-inline              3.0007+-0.0810     !      3.1621+-0.0693        ! definitely 1.0538x slower
   double-to-int32-typed-array                        2.4732+-0.0740     !      2.6660+-0.0118        ! definitely 1.0780x slower
   double-to-uint32-typed-array-no-inline             3.0660+-0.0798     !      3.3189+-0.1039        ! definitely 1.0825x slower
   double-to-uint32-typed-array                       2.6402+-0.0168     !      2.9238+-0.1564        ! definitely 1.1074x slower
   empty-string-plus-int                             10.2048+-0.0524     !     10.6624+-0.0834        ! definitely 1.0448x slower
   emscripten-cube2hash                              53.9678+-0.5620     !     56.3429+-0.7328        ! definitely 1.0440x slower
   external-arguments-getbyval                        2.0516+-0.0581     ?      2.0564+-0.0390        ?
   external-arguments-putbyval                        3.0253+-0.0274     ?      3.0415+-0.0633        ?
   fixed-typed-array-storage-var-index                1.5136+-0.0089     !      1.5520+-0.0064        ! definitely 1.0254x slower
   fixed-typed-array-storage                          1.0881+-0.0170     !      1.1221+-0.0069        ! definitely 1.0313x slower
   Float32Array-matrix-mult                           7.4202+-0.0654     ?      7.5373+-0.0763        ? might be 1.0158x slower
   Float32Array-to-Float64Array-set                  89.3601+-1.3919     ?     89.9368+-2.4640        ?
   Float64Array-alloc-long-lived                    101.4559+-0.8011     ?    102.5010+-1.3636        ? might be 1.0103x slower
   Float64Array-to-Int16Array-set                   116.0963+-1.0856     ?    117.4165+-0.9402        ? might be 1.0114x slower
   fold-double-to-int                                21.0352+-0.4788           20.9757+-0.3006        
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     19.1632+-0.5897     !     24.5675+-0.1908        ! definitely 1.2820x slower
   fold-get-by-id-to-multi-get-by-offset             18.1233+-0.4736     !     23.3914+-0.2243        ! definitely 1.2907x slower
   fold-multi-get-by-offset-to-get-by-offset   
                                                     13.0308+-0.1101     !     18.7021+-0.2265        ! definitely 1.4352x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                     13.0759+-0.1500     !     18.6002+-0.1286        ! definitely 1.4225x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                     13.3411+-0.2635     !     19.3851+-0.1469        ! definitely 1.4530x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                     12.3863+-0.1176     !     17.7356+-0.3558        ! definitely 1.4319x slower
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     17.6198+-0.5932     !     23.5616+-0.3152        ! definitely 1.3372x slower
   fold-put-by-id-to-multi-put-by-offset             20.5715+-0.1061     !     26.2419+-0.4765        ! definitely 1.2756x slower
   fold-put-structure                                12.7581+-0.1803     !     17.8292+-0.1089        ! definitely 1.3975x slower
   for-of-iterate-array-entries                       9.3297+-0.1522            9.0857+-0.1606          might be 1.0269x faster
   for-of-iterate-array-keys                          3.6383+-0.1252     !      4.1842+-0.0953        ! definitely 1.1500x slower
   for-of-iterate-array-values                        3.2544+-0.1041     !      3.5014+-0.0467        ! definitely 1.0759x slower
   fround                                            23.7282+-0.4417     ?     23.8400+-0.2980        ?
   ftl-library-inlining-dataview                    107.9242+-0.6088     ?    115.6103+-11.9045       ? might be 1.0712x slower
   ftl-library-inlining                             117.2339+-2.4175     !    245.6906+-1.1726        ! definitely 2.0957x slower
   function-dot-apply                                 2.2786+-0.0098     ?      2.3436+-0.0647        ? might be 1.0285x slower
   function-test                                      5.3097+-0.1325            5.2401+-0.0750          might be 1.0133x faster
   function-with-eval                               101.2485+-1.2094     ?    103.8206+-1.7340        ? might be 1.0254x slower
   gcse-poly-get-less-obvious                        28.8805+-0.6493     ?     29.2017+-0.2475        ? might be 1.0111x slower
   gcse-poly-get                                     29.6693+-0.1896           29.5824+-0.1225        
   gcse                                               7.6027+-0.2077            7.5268+-0.1043          might be 1.0101x faster
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.7701+-0.0394            3.7465+-0.0108        
   get-by-id-bimorphic-check-structure-elimination   
                                                      9.5609+-0.2145     ?      9.6694+-0.2811        ? might be 1.0114x slower
   get-by-id-chain-from-try-block                     8.1755+-0.2677     ?      8.3133+-0.0614        ? might be 1.0169x slower
   get-by-id-check-structure-elimination              8.8322+-0.1214            8.7494+-0.1332        
   get-by-id-proto-or-self                           25.4989+-2.1303           24.2618+-0.2823          might be 1.0510x faster
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      4.4816+-0.0097     ?      4.5354+-0.0676        ? might be 1.0120x slower
   get-by-id-self-or-proto                           25.7465+-1.9853           25.6263+-2.0098        
   get-by-val-out-of-bounds                           6.5629+-0.0770     !      6.8056+-0.1005        ! definitely 1.0370x slower
   get_callee_monomorphic                             5.2307+-0.1385     !      5.7568+-0.1931        ! definitely 1.1006x slower
   get_callee_polymorphic                             4.8890+-0.1102     ?      5.0372+-0.0830        ? might be 1.0303x slower
   getter-no-activation                               6.7556+-0.0261            6.7266+-0.0278        
   getter-richards                                  148.3134+-2.2161     !    171.1773+-12.6598       ! definitely 1.1542x slower
   getter                                             7.4530+-0.1178            7.4248+-0.0502        
   global-var-const-infer-fire-from-opt               1.2201+-0.0409     ?      1.2854+-0.1200        ? might be 1.0535x slower
   global-var-const-infer                             1.0084+-0.0117     !      1.1513+-0.0475        ! definitely 1.1417x slower
   HashMap-put-get-iterate-keys                      40.3140+-0.5637     !     41.3503+-0.1698        ! definitely 1.0257x slower
   HashMap-put-get-iterate                           40.0692+-0.7920     ?     41.0160+-0.5516        ? might be 1.0236x slower
   HashMap-string-put-get-iterate                    45.2174+-0.3892     !     46.2565+-0.4403        ! definitely 1.0230x slower
   hoist-make-rope                                   14.5331+-0.8306           13.7299+-0.8730          might be 1.0585x faster
   hoist-poly-check-structure-effectful-loop   
                                                      7.5829+-0.1798            7.5802+-0.1329        
   hoist-poly-check-structure                         5.6131+-0.0788     ?      5.6177+-0.0712        ?
   imul-double-only                                   9.8824+-0.2246            9.7987+-0.2891        
   imul-int-only                                     13.1509+-0.2008           13.1478+-0.4071        
   imul-mixed                                         9.7733+-0.6316     ?      9.9004+-0.5586        ? might be 1.0130x slower
   in-four-cases                                     28.0680+-0.4071     ?     28.3701+-0.4414        ? might be 1.0108x slower
   in-one-case-false                                 14.7792+-0.1496     ?     14.8164+-0.1647        ?
   in-one-case-true                                  14.7841+-0.0986     ?     14.8957+-0.1372        ?
   in-two-cases                                      15.3987+-0.1712     ?     15.5478+-0.0993        ?
   indexed-properties-in-objects                      4.3348+-0.0646            4.3118+-0.0682        
   infer-closure-const-then-mov-no-inline             4.7544+-0.0239     !      4.9085+-0.1295        ! definitely 1.0324x slower
   infer-closure-const-then-mov                      29.1077+-0.0829     ?     29.4478+-0.5085        ? might be 1.0117x slower
   infer-closure-const-then-put-to-scope-no-inline   
                                                     17.5287+-0.0810     ?     17.7077+-0.1183        ? might be 1.0102x slower
   infer-closure-const-then-put-to-scope             33.1638+-0.0622     ?     33.2358+-0.1164        ?
   infer-closure-const-then-reenter-no-inline   
                                                     76.9813+-0.0660     ?     77.8245+-1.8401        ? might be 1.0110x slower
   infer-closure-const-then-reenter                  33.7093+-1.3263           33.5891+-0.7351        
   infer-constant-global-property                     5.4012+-0.0626     ?      5.4907+-0.0595        ? might be 1.0166x slower
   infer-constant-property                            3.7014+-0.0551            3.6850+-0.0641        
   infer-one-time-closure-ten-vars                   16.4184+-0.2454           16.0735+-0.4230          might be 1.0215x faster
   infer-one-time-closure-two-vars                   15.6706+-0.0272           15.3992+-0.3003          might be 1.0176x faster
   infer-one-time-closure                            15.6248+-0.2457           15.3024+-0.1760          might be 1.0211x faster
   infer-one-time-deep-closure                       28.1337+-0.0504     ?     28.2795+-0.2898        ?
   inline-arguments-access                            2.2284+-0.0221     ?      2.2598+-0.0099        ? might be 1.0141x slower
   inline-arguments-aliased-access                    2.4840+-0.0461     ?      2.5285+-0.0331        ? might be 1.0179x slower
   inline-arguments-local-escape                     21.7103+-0.1963     ^     19.5709+-0.3432        ^ definitely 1.1093x faster
   inline-get-scoped-var                              6.4462+-0.0478     ?      6.4584+-0.0293        ?
   inlined-put-by-id-transition                      15.5298+-0.4605     ?     16.0583+-0.3292        ? might be 1.0340x slower
   int-or-other-abs-then-get-by-val                   7.9238+-0.0596     ?      7.9944+-0.1402        ?
   int-or-other-abs-zero-then-get-by-val             29.3335+-0.6164     ?     29.4068+-0.3994        ?
   int-or-other-add-then-get-by-val                   6.7423+-0.0312     ?      6.7740+-0.0562        ?
   int-or-other-add                                   9.0375+-0.1085     ?      9.2550+-0.3023        ? might be 1.0241x slower
   int-or-other-div-then-get-by-val                   5.9186+-0.0767     ?      5.9220+-0.0391        ?
   int-or-other-max-then-get-by-val                   7.3984+-0.0807            7.3401+-0.1286        
   int-or-other-min-then-get-by-val                   5.9890+-0.0991     ?      6.0916+-0.1330        ? might be 1.0171x slower
   int-or-other-mod-then-get-by-val                   5.8326+-0.0255     ?      5.8773+-0.0663        ?
   int-or-other-mul-then-get-by-val                   5.7337+-0.0770     ?      5.7402+-0.0244        ?
   int-or-other-neg-then-get-by-val                   7.1951+-0.1152     ?      7.1991+-0.0551        ?
   int-or-other-neg-zero-then-get-by-val             29.1572+-0.1584     ?     29.1693+-0.1339        ?
   int-or-other-sub-then-get-by-val                   6.7738+-0.0434     ?      6.8458+-0.0805        ? might be 1.0106x slower
   int-or-other-sub                                   5.4503+-0.0277     ?      5.4902+-0.0214        ?
   int-overflow-local                                 6.7122+-0.1076     ?      6.7250+-0.1503        ?
   Int16Array-alloc-long-lived                       72.7139+-0.1587     ?     72.9076+-0.6702        ?
   Int16Array-bubble-sort-with-byteLength            44.9039+-1.0334           44.1993+-0.1615          might be 1.0159x faster
   Int16Array-bubble-sort                            43.4370+-0.1486           43.2877+-0.1864        
   Int16Array-load-int-mul                            2.0840+-0.0046            2.0835+-0.0077        
   Int16Array-to-Int32Array-set                      82.7086+-0.3049     !     87.0656+-0.8107        ! definitely 1.0527x slower
   Int32Array-alloc-large                            43.4162+-1.8565           42.7529+-1.4942          might be 1.0155x faster
   Int32Array-alloc-long-lived                       81.2545+-0.5999     ?     81.8340+-0.9948        ?
   Int32Array-alloc                                   4.7760+-0.1456     ?      4.8638+-0.0290        ? might be 1.0184x slower
   Int32Array-Int8Array-view-alloc                   15.3896+-0.6278     ?     15.5507+-0.5784        ? might be 1.0105x slower
   int52-spill                                       10.9772+-0.1772     ?     11.3459+-0.1985        ? might be 1.0336x slower
   Int8Array-alloc-long-lived                        66.8892+-0.8229     ?     67.1739+-0.7065        ?
   Int8Array-load-with-byteLength                     5.5431+-0.0470     ^      5.4417+-0.0118        ^ definitely 1.0186x faster
   Int8Array-load                                     5.5574+-0.0547            5.5199+-0.0841        
   integer-divide                                    16.8712+-0.1581     ?     16.9096+-0.1098        ?
   integer-modulo                                     3.1772+-0.1836     ?      3.4584+-0.4216        ? might be 1.0885x slower
   large-int-captured                                10.8572+-0.1418     ?     11.0835+-0.0870        ? might be 1.0208x slower
   large-int-neg                                     24.1204+-0.2080     ?     24.5785+-0.4672        ? might be 1.0190x slower
   large-int                                         21.2810+-0.2706     ?     21.5322+-0.1433        ? might be 1.0118x slower
   logical-not                                        6.8320+-0.1610     ?      6.9331+-0.1173        ? might be 1.0148x slower
   lots-of-fields                                    16.9863+-0.1784           16.8774+-0.1038        
   make-indexed-storage                               4.4037+-0.1556     ?      4.4752+-0.4083        ? might be 1.0162x slower
   make-rope-cse                                      6.2021+-0.0512     ?      6.3977+-0.3021        ? might be 1.0315x slower
   marsaglia-larger-ints                             59.5178+-0.5611     ?     59.5899+-0.4273        ?
   marsaglia-osr-entry                               31.2731+-0.1675           31.1202+-0.4470        
   max-boolean                                        3.8229+-0.3714            3.7331+-0.0083          might be 1.0240x faster
   method-on-number                                  27.1779+-0.1975     !     30.3108+-0.6378        ! definitely 1.1153x slower
   min-boolean                                        3.6464+-0.0541     ?      3.6784+-0.0123        ?
   minus-boolean-double                               4.7898+-0.0458     ?      4.8185+-0.0613        ?
   minus-boolean                                      3.6416+-0.0077            3.6262+-0.0101        
   misc-strict-eq                                    56.0305+-1.0099     ?     57.0334+-0.4647        ? might be 1.0179x slower
   mod-boolean-double                                13.8369+-0.2471           13.7671+-0.2517        
   mod-boolean                                       10.6383+-0.1666           10.5840+-0.1914        
   mul-boolean-double                                 5.5928+-0.0202     ?      5.6349+-0.0596        ?
   mul-boolean                                        3.9476+-0.0180     ?      3.9585+-0.0432        ?
   neg-boolean                                        4.8771+-0.0335     ?      4.9074+-0.0693        ?
   negative-zero-divide                               0.4255+-0.0064     ?      0.4310+-0.0032        ? might be 1.0130x slower
   negative-zero-modulo                               0.4271+-0.0025     ?      0.4314+-0.0028        ?
   negative-zero-negate                               0.3964+-0.0047     ?      0.4042+-0.0139        ? might be 1.0196x slower
   nested-function-parsing                           48.2688+-0.1841     ?     48.6317+-0.2069        ?
   new-array-buffer-dead                              4.0551+-0.0899     ?      4.0584+-0.0196        ?
   new-array-buffer-push                             10.7448+-0.2226     ?     10.8280+-0.1936        ?
   new-array-dead                                    14.6072+-0.3720     ?     14.6792+-0.3417        ?
   new-array-push                                     7.4956+-0.0709     ?      7.6716+-0.1674        ? might be 1.0235x slower
   number-test                                        4.6529+-0.0464     ?      4.7153+-0.0828        ? might be 1.0134x slower
   object-closure-call                                9.0801+-0.0500     !      9.3610+-0.0683        ! definitely 1.0309x slower
   object-test                                        5.2729+-0.1414     ^      4.9899+-0.0589        ^ definitely 1.0567x faster
   plus-boolean-arith                                 3.7214+-0.0704            3.7021+-0.0269        
   plus-boolean-double                                4.8250+-0.0538            4.7956+-0.0065        
   plus-boolean                                       3.5483+-0.0077     ?      3.5799+-0.0438        ?
   poly-chain-access-different-prototypes-simple   
                                                      4.4329+-0.0595            4.4078+-0.0113        
   poly-chain-access-different-prototypes             3.6477+-0.0114     ?      3.6804+-0.0819        ?
   poly-chain-access-simpler                          4.4125+-0.0368     ?      4.4916+-0.0855        ? might be 1.0179x slower
   poly-chain-access                                  2.9438+-0.3245            2.8384+-0.0154          might be 1.0371x faster
   poly-stricteq                                     82.3957+-0.4197     !     88.4969+-1.9664        ! definitely 1.0740x slower
   polymorphic-array-call                             2.2066+-0.0405     !      2.3590+-0.0559        ! definitely 1.0690x slower
   polymorphic-get-by-id                              4.7201+-0.0234     !      4.7803+-0.0357        ! definitely 1.0128x slower
   polymorphic-put-by-id                             86.2443+-29.6564          81.6410+-29.1725         might be 1.0564x faster
   polymorphic-structure                             24.6422+-0.1170     !     25.3254+-0.1829        ! definitely 1.0277x slower
   polyvariant-monomorphic-get-by-id                 13.3549+-0.1580     ?     13.3887+-0.0753        ?
   proto-getter-access                               13.5797+-0.2157     ?     13.8084+-0.4650        ? might be 1.0168x slower
   put-by-id-replace-and-transition                  12.6757+-0.3127     ?     12.7481+-0.3001        ?
   put-by-id-slightly-polymorphic                     4.0240+-0.0412     ?      4.0768+-0.0699        ? might be 1.0131x slower
   put-by-id                                         20.7420+-0.3027     ?     21.1634+-0.6558        ? might be 1.0203x slower
   put-by-val-direct                                  0.7765+-0.0036     ?      0.7918+-0.0234        ? might be 1.0197x slower
   put-by-val-large-index-blank-indexing-type   
                                                     10.6985+-0.1832     ?     10.9771+-0.2403        ? might be 1.0260x slower
   put-by-val-machine-int                             4.3063+-0.3595     !      4.7480+-0.0804        ! definitely 1.1026x slower
   rare-osr-exit-on-local                            21.4996+-0.0686     ?     21.6802+-0.3917        ?
   register-pressure-from-osr                        31.4600+-0.1320     ?     31.6612+-0.1986        ?
   setter                                             7.5181+-0.1024            7.4937+-0.0529        
   simple-activation-demo                            34.9887+-0.3058     !     35.4025+-0.0862        ! definitely 1.0118x slower
   simple-getter-access                              20.0808+-0.0958     ?     20.1695+-0.2059        ?
   sin-boolean                                       23.3501+-0.6824     ?     23.5441+-0.4531        ?
   slow-array-profile-convergence                     4.3835+-0.2761     ?      4.4949+-0.2700        ? might be 1.0254x slower
   slow-convergence                                   4.8167+-0.0365     !      4.8901+-0.0353        ! definitely 1.0153x slower
   sparse-conditional                                 1.4936+-0.0065     !      1.5271+-0.0123        ! definitely 1.0225x slower
   splice-to-remove                                  26.8143+-0.2504     !     27.6512+-0.0662        ! definitely 1.0312x slower
   string-char-code-at                               23.4559+-0.1942     ?     23.4622+-0.1856        ?
   string-concat-object                               3.1878+-0.0258     !      3.3193+-0.0265        ! definitely 1.0413x slower
   string-concat-pair-object                          3.0872+-0.0777     !      3.2718+-0.0352        ! definitely 1.0598x slower
   string-concat-pair-simple                         18.2696+-0.3434     ?     18.6531+-0.4338        ? might be 1.0210x slower
   string-concat-simple                              18.9032+-0.3255           18.6884+-0.4764          might be 1.0115x faster
   string-cons-repeat                                11.8949+-0.0625     ?     12.2565+-0.3367        ? might be 1.0304x slower
   string-cons-tower                                 10.8406+-0.0600     !     11.1663+-0.0910        ! definitely 1.0300x slower
   string-equality                                   26.5059+-0.6858           26.0701+-0.0802          might be 1.0167x faster
   string-get-by-val-big-char                        13.8569+-0.2013     ?     14.2324+-0.2791        ? might be 1.0271x slower
   string-get-by-val-out-of-bounds-insane             6.0043+-0.0717     !      6.1569+-0.0390        ! definitely 1.0254x slower
   string-get-by-val-out-of-bounds                    7.1113+-0.0553     ?      7.1373+-0.0517        ?
   string-get-by-val                                  5.5613+-0.0607            5.5402+-0.0170        
   string-hash                                        2.8945+-0.0451     !      2.9958+-0.0214        ! definitely 1.0350x slower
   string-long-ident-equality                        21.2633+-0.1318     ?     21.3094+-0.2824        ?
   string-repeat-arith                               53.8283+-10.1851          49.6236+-0.4122          might be 1.0847x faster
   string-sub                                        97.3188+-1.1952     !    101.8421+-2.3255        ! definitely 1.0465x slower
   string-test                                        4.7010+-0.0627     ?      4.7357+-0.1066        ?
   string-var-equality                               51.9943+-0.1795     ?     52.2426+-0.2455        ?
   structure-hoist-over-transitions                   3.8705+-0.0427     !      3.9849+-0.0650        ! definitely 1.0296x slower
   substring-concat-weird                            62.9460+-0.1656     !     63.5704+-0.2875        ! definitely 1.0099x slower
   substring-concat                                  66.2943+-0.2028     ?     66.7864+-0.4511        ?
   substring                                         74.4264+-0.4050     ?     74.8293+-0.3304        ?
   switch-char-constant                               3.6706+-0.0219     ?      3.7008+-0.0309        ?
   switch-char                                        9.2951+-0.0857     ?      9.3075+-0.1130        ?
   switch-constant                                   11.5334+-0.1755     ?     11.7368+-0.1523        ? might be 1.0176x slower
   switch-string-basic-big-var                       25.1402+-1.3067     !     29.4400+-1.0104        ! definitely 1.1710x slower
   switch-string-basic-big                           32.0174+-2.7936     ?     34.2216+-2.4362        ? might be 1.0688x slower
   switch-string-basic-var                           32.0105+-1.5654           32.0094+-0.8883        
   switch-string-basic                               31.0760+-2.7808           30.7463+-1.8825          might be 1.0107x faster
   switch-string-big-length-tower-var                30.2799+-0.9706           30.0269+-0.1881        
   switch-string-length-tower-var                    23.9233+-0.1867     ?     24.0913+-0.3416        ?
   switch-string-length-tower                        17.3235+-0.0433     ?     17.4904+-0.2235        ?
   switch-string-short                               17.4749+-0.1428     ?     17.4835+-0.3803        ?
   switch                                            15.9124+-0.2143           15.9015+-0.0669        
   tear-off-arguments-simple                          2.3287+-0.0164     !      2.5720+-0.1497        ! definitely 1.1045x slower
   tear-off-arguments                                 3.8643+-0.0104     !      4.0242+-0.0130        ! definitely 1.0414x slower
   temporal-structure                                20.1475+-0.2064     ?     20.1825+-0.0938        ?
   to-int32-boolean                                  24.6566+-0.1523     ?     24.7677+-0.3832        ?
   undefined-test                                     4.8538+-0.0747     ?      4.8565+-0.0346        ?
   unprofiled-licm                                   31.3057+-0.2047     ?     31.4430+-0.3394        ?
   weird-inlining-const-prop                          2.7104+-0.1223     !      2.9942+-0.1460        ! definitely 1.1047x slower

   <arithmetic>                                      21.8689+-0.1213     !     22.8627+-0.1064        ! definitely 1.0454x slower
   <geometric> *                                     11.0378+-0.0151     !     11.3472+-0.0155        ! definitely 1.0280x slower
   <harmonic>                                         5.4626+-0.0128     !      5.6060+-0.0159        ! definitely 1.0263x slower

                                                        TipOfTree                 PolyInline                                    
AsmBench:
   bigfib.cpp                                       799.2611+-4.8441          794.6537+-3.7161        
   cray.c                                           796.3080+-4.4432     ?    797.6588+-4.2970        ?
   dry.c                                            783.7422+-14.1210    !    878.8225+-66.6639       ! definitely 1.1213x slower
   FloatMM.c                                       1149.1156+-1.2332     ^   1146.3254+-0.5445        ^ definitely 1.0024x faster
   gcc-loops.cpp                                   7556.1780+-6.4996     ?   7559.7502+-33.0406       ?
   n-body.c                                        2008.2700+-0.5115     !   2018.2236+-0.8709        ! definitely 1.0050x slower
   Quicksort.c                                      694.2459+-6.8429          683.3355+-11.5786         might be 1.0160x faster
   stepanov_container.cpp                          5844.8735+-17.6618        5810.5035+-19.7012       
   Towers.c                                         490.9645+-0.8605     ?    492.2882+-1.2147        ?

   <arithmetic>                                    2235.8843+-2.6210     ?   2242.3957+-4.7507        ? might be 1.0029x slower
   <geometric> *                                   1372.8810+-3.5203     ?   1387.0235+-11.2090       ? might be 1.0103x slower
   <harmonic>                                      1007.5988+-3.3288     ?   1020.1513+-10.5509       ? might be 1.0125x slower

                                                        TipOfTree                 PolyInline                                    
All benchmarks:
   <arithmetic>                                     155.4976+-1.5019     ?    156.8181+-0.1094        ? might be 1.0085x slower
   <geometric>                                       17.9436+-0.0296     !     18.3902+-0.0230        ! definitely 1.0249x slower
   <harmonic>                                         4.8940+-0.0148            4.8928+-0.0142          might be 1.0002x faster

                                                        TipOfTree                 PolyInline                                    
Geomean of preferred means:
   <scaled-result>                                   79.4568+-0.2092     !     81.1770+-0.0816        ! definitely 1.0216x slower
Comment 19 Filip Pizlo 2014-08-23 15:54:24 PDT
Created attachment 237032 [details]
net win on Octane

Still more work to do, though, to get the profiling overheads down.


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

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r172835)
"PolyInline" at /Volumes/Data/fromMiniMe/quartary/OpenSource/WebKitBuild/Release/jsc (r172859)

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                 PolyInline                                    
SunSpider:
   3d-cube                                            7.6408+-0.2298     ?      7.9173+-0.0823        ? might be 1.0362x slower
   3d-morph                                           9.6020+-0.0905     ?      9.6593+-0.1489        ?
   3d-raytrace                                        9.5602+-0.0496     !      9.8986+-0.1268        ! definitely 1.0354x slower
   access-binary-trees                                2.7455+-0.0959     !      3.0341+-0.0776        ! definitely 1.1051x slower
   access-fannkuch                                    9.0990+-0.1402     !      9.4654+-0.1593        ! definitely 1.0403x slower
   access-nbody                                       4.5960+-0.0908     ?      4.7150+-0.0409        ? might be 1.0259x slower
   access-nsieve                                      5.7740+-0.1226     ?      5.8458+-0.1033        ? might be 1.0124x slower
   bitops-3bit-bits-in-byte                           1.8569+-0.0137     !      1.9089+-0.0260        ! definitely 1.0280x slower
   bitops-bits-in-byte                                6.7451+-0.0529     ?      6.8670+-0.0965        ? might be 1.0181x slower
   bitops-bitwise-and                                 3.1903+-0.0111            3.1803+-0.0221        
   bitops-nsieve-bits                                 5.6805+-0.0259     ?      5.7293+-0.0590        ?
   controlflow-recursive                              2.9695+-0.0296     !      3.1042+-0.0536        ! definitely 1.0454x slower
   crypto-aes                                         6.2360+-0.0653     ?      6.3121+-0.1422        ? might be 1.0122x slower
   crypto-md5                                         3.7733+-0.0751     ?      3.8748+-0.1056        ? might be 1.0269x slower
   crypto-sha1                                        3.7269+-0.0739     !      4.4466+-0.0968        ! definitely 1.1931x slower
   date-format-tofte                                 13.1156+-0.1280     !     13.5616+-0.1692        ! definitely 1.0340x slower
   date-format-xparb                                  8.5513+-0.1210     !      9.1130+-0.1909        ! definitely 1.0657x slower
   math-cordic                                        4.6621+-0.0465     !      4.8370+-0.0412        ! definitely 1.0375x slower
   math-partial-sums                                 10.3396+-0.2205     ?     10.5805+-0.1436        ? might be 1.0233x slower
   math-spectral-norm                                 3.0365+-0.0382     ?      3.0891+-0.0344        ? might be 1.0173x slower
   regexp-dna                                        11.8090+-0.1710           11.6386+-0.0258          might be 1.0146x faster
   string-base64                                      6.4532+-0.1799     ?      6.8889+-0.3622        ? might be 1.0675x slower
   string-fasta                                      10.2771+-0.1624     ?     10.4446+-0.1148        ? might be 1.0163x slower
   string-tagcloud                                   15.2708+-0.1875     !     15.6865+-0.1323        ! definitely 1.0272x slower
   string-unpack-code                                30.8256+-0.1212     !     31.7189+-0.7041        ! definitely 1.0290x slower
   string-validate-input                              7.8102+-0.1269     ?      7.9396+-0.1841        ? might be 1.0166x slower

   <arithmetic> *                                     7.8980+-0.0209     !      8.1330+-0.0489        ! definitely 1.0298x slower
   <geometric>                                        6.4867+-0.0244     !      6.7090+-0.0218        ! definitely 1.0343x slower
   <harmonic>                                         5.4067+-0.0268     !      5.6168+-0.0081        ! definitely 1.0389x slower

                                                        TipOfTree                 PolyInline                                    
LongSpider:
   3d-cube                                         1341.8253+-7.7750     ?   1356.3524+-10.5059       ? might be 1.0108x slower
   3d-morph                                        2272.9116+-2.3708     ?   2273.4519+-2.8413        ?
   3d-raytrace                                     1324.5221+-9.5140     ?   1341.7846+-14.2927       ? might be 1.0130x slower
   access-binary-trees                             1668.0361+-5.6247     ?   1669.3883+-7.2266        ?
   access-fannkuch                                  523.3738+-14.8233         521.0778+-19.7895       
   access-nbody                                    1247.5282+-3.2609     ?   1248.2963+-2.4629        ?
   access-nsieve                                   1611.1295+-6.7361     ?   1612.6228+-3.8365        ?
   bitops-3bit-bits-in-byte                          56.5320+-0.5036           56.3791+-0.5493        
   bitops-bits-in-byte                              392.9395+-3.0921          390.6637+-4.7671        
   bitops-nsieve-bits                              1186.4144+-9.8490         1185.9570+-12.2096       
   controlflow-recursive                            866.1827+-0.8707     ?    866.6567+-5.0428        ?
   crypto-aes                                      1136.2072+-6.2712         1131.0698+-4.8592        
   crypto-md5                                       957.4582+-4.4824     !    985.2439+-4.5019        ! definitely 1.0290x slower
   crypto-sha1                                     1204.9118+-10.2171        1199.2144+-4.8111        
   date-format-tofte                               1200.2168+-15.5885    ?   1210.8988+-28.0683       ?
   date-format-xparb                               1318.2989+-9.0685     ?   1326.3974+-20.3261       ?
   math-cordic                                      813.2514+-2.4790     !    987.2022+-9.8856        ! definitely 1.2139x slower
   math-partial-sums                               1316.7447+-3.3683     ?   1316.7893+-3.2535        ?
   math-spectral-norm                              1296.4225+-0.7173         1296.0231+-1.0547        
   string-base64                                    589.0979+-5.2099     !    605.5664+-2.6062        ! definitely 1.0280x slower
   string-fasta                                     703.7744+-6.5302     ?    711.8535+-25.2083       ? might be 1.0115x slower
   string-tagcloud                                  364.2499+-6.7982          363.0503+-1.8159        

   <arithmetic>                                    1063.2740+-1.3888     !   1075.2700+-2.4858        ! definitely 1.0113x slower
   <geometric> *                                    886.3199+-2.1332     !    897.5233+-3.1614        ! definitely 1.0126x slower
   <harmonic>                                       535.5747+-2.5987     ?    538.8522+-3.3288        ? might be 1.0061x slower

                                                        TipOfTree                 PolyInline                                    
V8Spider:
   crypto                                            81.7677+-1.2873     ?     82.6742+-1.3955        ? might be 1.0111x slower
   deltablue                                         99.3877+-0.6500     !    121.2636+-1.5019        ! definitely 1.2201x slower
   earley-boyer                                      73.4692+-1.7027     !     76.3920+-0.8476        ! definitely 1.0398x slower
   raytrace                                          44.1616+-0.9866     !     49.7854+-0.5089        ! definitely 1.1273x slower
   regexp                                           103.5191+-0.4314     !    104.5638+-0.2609        ! definitely 1.0101x slower
   richards                                         107.6851+-1.1029     !    119.6004+-0.9336        ! definitely 1.1106x slower
   splay                                             49.8807+-0.6637     ?     50.4298+-0.5554        ? might be 1.0110x slower

   <arithmetic>                                      79.9816+-0.4629     !     86.3870+-0.4092        ! definitely 1.0801x slower
   <geometric> *                                     76.0065+-0.5035     !     81.5759+-0.3581        ! definitely 1.0733x slower
   <harmonic>                                        71.7531+-0.5589     !     76.6867+-0.3049        ! definitely 1.0688x slower

                                                        TipOfTree                 PolyInline                                    
Octane:
   encrypt                                           0.39478+-0.00066    ?     0.39480+-0.00120       ?
   decrypt                                           7.15369+-0.00366    ?     7.16119+-0.01853       ?
   deltablue                                x2       0.43896+-0.00327    ^     0.34248+-0.00230       ^ definitely 1.2817x faster
   earley                                            1.34312+-0.00966    ?     1.35659+-0.00664       ? might be 1.0100x slower
   boyer                                            10.39834+-0.07543         10.37315+-0.08061       
   navier-stokes                            x2       7.74102+-0.01835          7.72825+-0.00389       
   raytrace                                 x2       2.68212+-0.04305          2.61640+-0.03525         might be 1.0251x faster
   richards                                 x2       0.22629+-0.01071          0.21348+-0.00276         might be 1.0600x faster
   splay                                    x2       0.63113+-0.00466          0.62399+-0.00324         might be 1.0114x faster
   regexp                                   x2      61.07738+-0.56699    !    62.38084+-0.45159       ! definitely 1.0213x slower
   pdfjs                                    x2      87.65308+-2.24117    ?    88.89246+-0.45228       ? might be 1.0141x slower
   mandreel                                 x2      91.94791+-0.56528    ?    93.01922+-0.78005       ? might be 1.0117x slower
   gbemu                                    x2      68.47757+-0.17254    !    77.43528+-0.29474       ! definitely 1.1308x slower
   closure                                           0.90849+-0.00247    ?     0.91226+-0.00161       ?
   jquery                                           11.40303+-0.03961    ^    11.31109+-0.02673       ^ definitely 1.0081x faster
   box2d                                    x2      24.58176+-0.09628    !    24.94783+-0.15282       ! definitely 1.0149x slower
   zlib                                     x2     815.49236+-2.71876    ?   815.67525+-2.23740       ?
   typescript                               x2    1289.53402+-5.17354    !  1340.94942+-10.01479      ! definitely 1.0399x slower

   <arithmetic>                                    164.41896+-0.29962    !   168.70530+-0.63543       ! definitely 1.0261x slower
   <geometric> *                                    12.32124+-0.05631    ^    12.22531+-0.02526       ^ definitely 1.0078x faster
   <harmonic>                                        1.33511+-0.02610    ^     1.23382+-0.00662       ^ definitely 1.0821x faster

                                                        TipOfTree                 PolyInline                                    
Kraken:
   ai-astar                                          527.769+-1.338      ?     527.876+-1.001         ?
   audio-beat-detection                              179.796+-4.260      ?     183.259+-0.764         ? might be 1.0193x slower
   audio-dft                                         253.621+-1.058      ?     265.417+-20.515        ? might be 1.0465x slower
   audio-fft                                         130.538+-0.870            130.173+-0.280         
   audio-oscillator                                  368.497+-1.706            368.406+-1.513         
   imaging-darkroom                                  286.559+-1.922      ?     288.850+-1.259         ?
   imaging-desaturate                                112.567+-0.493      ?     112.605+-0.454         ?
   imaging-gaussian-blur                             179.097+-0.679      ?     179.651+-0.511         ?
   json-parse-financial                               82.996+-1.400      ?      83.736+-0.293         ?
   json-stringify-tinderbox                          105.374+-0.668      !     107.473+-0.665         ! definitely 1.0199x slower
   stanford-crypto-aes                               101.548+-2.603      ?     103.256+-1.448         ? might be 1.0168x slower
   stanford-crypto-ccm                                93.788+-8.347             89.625+-10.000          might be 1.0464x faster
   stanford-crypto-pbkdf2                            275.659+-3.058      ?     277.542+-1.461         ?
   stanford-crypto-sha256-iterative                  107.185+-0.261      !     108.576+-0.538         ! definitely 1.0130x slower

   <arithmetic> *                                    200.357+-0.547      ?     201.889+-1.278         ? might be 1.0076x slower
   <geometric>                                       169.680+-1.089      ?     170.772+-1.398         ? might be 1.0064x slower
   <harmonic>                                        147.664+-1.647      ?     148.253+-2.053         ? might be 1.0040x slower

                                                        TipOfTree                 PolyInline                                    
JSRegress:
   abs-boolean                                        4.1979+-0.0444     ?      4.2486+-0.0491        ? might be 1.0121x slower
   adapt-to-double-divide                            20.0150+-0.3361     ?     20.2787+-0.0633        ? might be 1.0132x slower
   aliased-arguments-getbyval                         1.0998+-0.0116     !      1.1639+-0.0286        ! definitely 1.0583x slower
   allocate-big-object                                3.6044+-0.1269     ?      3.7659+-0.0436        ? might be 1.0448x slower
   arity-mismatch-inlining                            1.0141+-0.0058     ?      1.0493+-0.0499        ? might be 1.0347x slower
   array-access-polymorphic-structure                10.8636+-0.0988     ?     10.9049+-0.1827        ?
   array-nonarray-polymorhpic-access                 60.4900+-0.7078     ?     60.7666+-0.3763        ?
   array-prototype-every                            123.6209+-0.3795     ^    121.5876+-1.5206        ^ definitely 1.0167x faster
   array-prototype-forEach                          125.4949+-3.6799          122.2211+-2.5648          might be 1.0268x faster
   array-prototype-map                              150.7363+-4.1096          149.4692+-4.9118        
   array-prototype-some                             122.8436+-0.5108     ^    120.8694+-1.0430        ^ definitely 1.0163x faster
   array-splice-contiguous                           68.2619+-0.6018     !     74.4968+-0.2639        ! definitely 1.0913x slower
   array-with-double-add                              6.7114+-0.1456            6.6899+-0.1292        
   array-with-double-increment                        4.7264+-0.0790            4.7166+-0.1105        
   array-with-double-mul-add                          8.1499+-0.1398     ^      7.8773+-0.0843        ^ definitely 1.0346x faster
   array-with-double-sum                              5.0321+-0.0497            4.9902+-0.0613        
   array-with-int32-add-sub                          11.9364+-0.2241           11.8564+-0.2759        
   array-with-int32-or-double-sum                     5.0925+-0.0857     ?      5.1635+-0.0811        ? might be 1.0139x slower
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                    115.4490+-1.2211     ?    116.7811+-1.6823        ? might be 1.0115x slower
   ArrayBuffer-DataView-alloc-long-lived             32.5190+-0.6874     ?     32.5643+-0.2124        ?
   ArrayBuffer-Int32Array-byteOffset                  5.3617+-0.2117            5.2709+-0.0348          might be 1.0172x faster
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                    118.8927+-0.8068     ?    120.9924+-1.6704        ? might be 1.0177x slower
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     51.1529+-0.3854           50.9518+-0.3873        
   ArrayBuffer-Int8Array-alloc-long-lived            31.3424+-0.3880     ?     31.5558+-0.5185        ?
   ArrayBuffer-Int8Array-alloc                       28.1086+-0.9918           28.0802+-0.4032        
   asmjs_bool_bug                                    10.1890+-0.1834     ?     10.2413+-0.2213        ?
   assign-custom-setter-polymorphic                   4.8897+-0.0148     ?      4.9888+-0.1516        ? might be 1.0203x slower
   assign-custom-setter                               6.7745+-0.2387            6.6799+-0.0958          might be 1.0142x faster
   basic-set                                         15.4196+-0.2082     !     15.9730+-0.2056        ! definitely 1.0359x slower
   big-int-mul                                        6.3184+-0.0835     !      6.9423+-0.1976        ! definitely 1.0987x slower
   boolean-test                                       4.8131+-0.0510            4.7430+-0.0835          might be 1.0148x faster
   branch-fold                                        5.1636+-0.0330            5.1296+-0.1325        
   by-val-generic                                    12.8571+-0.1350     ?     13.0918+-0.3156        ? might be 1.0183x slower
   call-spread-apply                                 20.3323+-0.2850     ?     20.9537+-0.8937        ? might be 1.0306x slower
   call-spread-call                                   8.9836+-0.4020            8.7648+-0.1229          might be 1.0250x faster
   captured-assignments                               0.5824+-0.0036     ?      0.5828+-0.0031        ?
   cast-int-to-double                                 9.3641+-0.0451     ?      9.4191+-0.0489        ?
   cell-argument                                     10.9897+-0.0756     ?     11.1197+-0.0777        ? might be 1.0118x slower
   cfg-simplify                                       4.0844+-0.0530     ?      4.1044+-0.0694        ?
   chain-getter-access                               13.6357+-0.1549     ?     13.7771+-0.1584        ? might be 1.0104x slower
   cmpeq-obj-to-obj-other                            13.7075+-0.4344           13.6706+-0.2798        
   constant-test                                      8.8652+-0.0906            8.8379+-0.1057        
   DataView-custom-properties                       123.4853+-1.8705     ?    124.5702+-1.8723        ?
   delay-tear-off-arguments-strictmode                3.6386+-0.0163     !      3.8042+-0.0960        ! definitely 1.0455x slower
   destructuring-arguments                            8.9133+-0.0403     !      9.0529+-0.0561        ! definitely 1.0157x slower
   destructuring-swap                                 8.8641+-0.0711     !      9.1582+-0.1016        ! definitely 1.0332x slower
   direct-arguments-getbyval                          1.1134+-0.0119     !      1.1588+-0.0257        ! definitely 1.0407x slower
   div-boolean-double                                 6.3372+-0.0781     ?      6.4441+-0.1151        ? might be 1.0169x slower
   div-boolean                                       11.5912+-0.2323     ?     11.7523+-0.0872        ? might be 1.0139x slower
   double-get-by-val-out-of-bounds                    6.7323+-0.0980            6.7249+-0.0503        
   double-pollution-getbyval                         11.3925+-0.1203           11.2275+-0.1782          might be 1.0147x faster
   double-pollution-putbyoffset                       6.2859+-0.2786            6.2268+-0.1548        
   double-to-int32-typed-array-no-inline              3.0026+-0.0604     !      3.1624+-0.0618        ! definitely 1.0532x slower
   double-to-int32-typed-array                        2.4562+-0.0260     !      2.6810+-0.0541        ! definitely 1.0915x slower
   double-to-uint32-typed-array-no-inline             3.0473+-0.0393     !      3.2669+-0.0787        ! definitely 1.0721x slower
   double-to-uint32-typed-array                       2.6409+-0.0228     !      2.8468+-0.0156        ! definitely 1.0780x slower
   empty-string-plus-int                             10.2299+-0.0839     !     10.6618+-0.2253        ! definitely 1.0422x slower
   emscripten-cube2hash                              54.3981+-0.8949     !     56.2412+-0.8003        ! definitely 1.0339x slower
   external-arguments-getbyval                        2.0574+-0.0491            2.0268+-0.0104          might be 1.0151x faster
   external-arguments-putbyval                        3.0207+-0.0104     ?      3.0624+-0.0381        ? might be 1.0138x slower
   fixed-typed-array-storage-var-index                1.5072+-0.0115     !      1.5490+-0.0155        ! definitely 1.0278x slower
   fixed-typed-array-storage                          1.1073+-0.0288     ?      1.1206+-0.0095        ? might be 1.0120x slower
   Float32Array-matrix-mult                           7.3328+-0.3834     ?      7.5280+-0.1133        ? might be 1.0266x slower
   Float32Array-to-Float64Array-set                  90.1246+-2.5682           89.8899+-2.0352        
   Float64Array-alloc-long-lived                    101.8514+-0.7644          101.5079+-1.1640        
   Float64Array-to-Int16Array-set                   115.9603+-1.0297     !    117.8083+-0.6298        ! definitely 1.0159x slower
   fold-double-to-int                                20.8783+-0.2787     ?     21.0995+-0.3449        ? might be 1.0106x slower
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     19.0483+-0.1527     !     24.7414+-0.1509        ! definitely 1.2989x slower
   fold-get-by-id-to-multi-get-by-offset             18.1609+-0.2627     !     23.3417+-0.3399        ! definitely 1.2853x slower
   fold-multi-get-by-offset-to-get-by-offset   
                                                     12.9561+-0.1483     !     18.5838+-0.1483        ! definitely 1.4344x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                     13.3470+-0.2802     !     18.5862+-0.2108        ! definitely 1.3925x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                     13.2766+-0.1544     !     19.1757+-0.4152        ! definitely 1.4443x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                     12.8645+-0.8985     !     17.7067+-0.1125        ! definitely 1.3764x slower
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     17.8403+-0.7552     !     23.4543+-0.3432        ! definitely 1.3147x slower
   fold-put-by-id-to-multi-put-by-offset             20.7412+-0.3290     !     26.2583+-0.3991        ! definitely 1.2660x slower
   fold-put-structure                                12.7478+-0.2130     !     17.9418+-0.1380        ! definitely 1.4074x slower
   for-of-iterate-array-entries                       9.3312+-0.1445     ^      9.0725+-0.0833        ^ definitely 1.0285x faster
   for-of-iterate-array-keys                          3.6012+-0.0891     !      4.1769+-0.0488        ! definitely 1.1599x slower
   for-of-iterate-array-values                        3.2140+-0.0880     !      3.6057+-0.0643        ! definitely 1.1219x slower
   fround                                            23.6842+-0.2218     ?     23.9080+-0.2482        ?
   ftl-library-inlining-dataview                    108.1061+-0.8906     ?    108.8958+-1.4733        ?
   ftl-library-inlining                             117.7048+-2.8956     !    243.0572+-0.5889        ! definitely 2.0650x slower
   function-dot-apply                                 2.2878+-0.0403     ?      2.3509+-0.0495        ? might be 1.0276x slower
   function-test                                      5.3066+-0.1541            5.2499+-0.0890          might be 1.0108x faster
   function-with-eval                               101.8664+-2.3038     ?    113.7687+-22.9575       ? might be 1.1168x slower
   gcse-poly-get-less-obvious                        29.0819+-0.2137     ?     29.2177+-0.4039        ?
   gcse-poly-get                                     29.8180+-0.3434           29.7022+-0.3251        
   gcse                                               7.5336+-0.0940     ?      7.5788+-0.1146        ?
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.7517+-0.0336     ?      3.8058+-0.0869        ? might be 1.0144x slower
   get-by-id-bimorphic-check-structure-elimination   
                                                      9.6832+-0.1863     ?      9.7026+-0.2100        ?
   get-by-id-chain-from-try-block                     8.1724+-0.1644     ?      8.2702+-0.1657        ? might be 1.0120x slower
   get-by-id-check-structure-elimination              8.8005+-0.1430            8.7830+-0.1566        
   get-by-id-proto-or-self                           25.6605+-3.0317           23.9368+-0.4594          might be 1.0720x faster
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      4.5338+-0.0589            4.5190+-0.0646        
   get-by-id-self-or-proto                           25.2563+-1.9235           24.3235+-0.4265          might be 1.0383x faster
   get-by-val-out-of-bounds                           6.6049+-0.0898     ?      6.7124+-0.1758        ? might be 1.0163x slower
   get_callee_monomorphic                             5.1292+-0.1267     !      5.6877+-0.0583        ! definitely 1.1089x slower
   get_callee_polymorphic                             4.9364+-0.0673     ?      5.0298+-0.1112        ? might be 1.0189x slower
   getter-no-activation                               6.7428+-0.0246            6.7094+-0.0575        
   getter-richards                                  147.1201+-4.9276     !    164.3554+-8.5479        ! definitely 1.1172x slower
   getter                                             7.4113+-0.0197     ?      7.4849+-0.0902        ?
   global-var-const-infer-fire-from-opt               1.2076+-0.0195     !      1.3288+-0.0271        ! definitely 1.1003x slower
   global-var-const-infer                             1.0453+-0.0297     !      1.1220+-0.0076        ! definitely 1.0734x slower
   HashMap-put-get-iterate-keys                      40.1963+-0.4583     !     41.5192+-0.4147        ! definitely 1.0329x slower
   HashMap-put-get-iterate                           39.8826+-0.4124     !     41.2769+-0.4003        ! definitely 1.0350x slower
   HashMap-string-put-get-iterate                    45.5079+-0.8551     ?     47.2897+-1.9670        ? might be 1.0392x slower
   hoist-make-rope                                   14.0658+-1.1636     ?     15.3326+-1.1472        ? might be 1.0901x slower
   hoist-poly-check-structure-effectful-loop   
                                                      7.4871+-0.2569     ?      7.5666+-0.1416        ? might be 1.0106x slower
   hoist-poly-check-structure                         5.5740+-0.0277     ?      5.6377+-0.0753        ? might be 1.0114x slower
   imul-double-only                                   9.7322+-0.3396     ?     10.1670+-0.9110        ? might be 1.0447x slower
   imul-int-only                                     13.0831+-0.1570     ?     13.4385+-0.3405        ? might be 1.0272x slower
   imul-mixed                                        10.1237+-0.1776            9.6082+-0.7657          might be 1.0537x faster
   in-four-cases                                     28.3230+-0.3299           28.0955+-0.3463        
   in-one-case-false                                 14.7578+-0.1627     ?     14.7764+-0.1328        ?
   in-one-case-true                                  14.8377+-0.1013     ?     14.8680+-0.1153        ?
   in-two-cases                                      15.3117+-0.1508     ?     15.4573+-0.1559        ?
   indexed-properties-in-objects                      4.2771+-0.0088            4.2660+-0.1284        
   infer-closure-const-then-mov-no-inline             4.7352+-0.0312     ?      4.8665+-0.1145        ? might be 1.0277x slower
   infer-closure-const-then-mov                      29.2152+-0.1385     ?     29.2527+-0.2495        ?
   infer-closure-const-then-put-to-scope-no-inline   
                                                     17.5442+-0.1216     ?     17.6831+-0.1789        ?
   infer-closure-const-then-put-to-scope             33.1944+-0.0984     ?     33.3073+-0.1277        ?
   infer-closure-const-then-reenter-no-inline   
                                                     77.1045+-0.0420     ?     77.1987+-0.2027        ?
   infer-closure-const-then-reenter                  35.2553+-5.0194           33.3635+-0.2739          might be 1.0567x faster
   infer-constant-global-property                     5.4215+-0.0716     ?      5.4881+-0.0619        ? might be 1.0123x slower
   infer-constant-property                            3.6573+-0.0050     ?      3.6802+-0.0581        ?
   infer-one-time-closure-ten-vars                   16.3623+-0.1512     ^     15.8024+-0.3354        ^ definitely 1.0354x faster
   infer-one-time-closure-two-vars                   15.7463+-0.1009           15.4551+-0.3076          might be 1.0188x faster
   infer-one-time-closure                            15.6590+-0.0670     ^     15.2995+-0.1994        ^ definitely 1.0235x faster
   infer-one-time-deep-closure                       28.1105+-0.1194     ?     28.3051+-0.1551        ?
   inline-arguments-access                            2.2132+-0.0111     !      2.2625+-0.0185        ! definitely 1.0223x slower
   inline-arguments-aliased-access                    2.4663+-0.0078     !      2.5210+-0.0170        ! definitely 1.0222x slower
   inline-arguments-local-escape                     21.6986+-0.2676     ^     19.5682+-0.2632        ^ definitely 1.1089x faster
   inline-get-scoped-var                              6.4376+-0.0376     ?      6.4747+-0.0513        ?
   inlined-put-by-id-transition                      15.8503+-0.2639           15.7643+-0.2148        
   int-or-other-abs-then-get-by-val                   8.0042+-0.0987            7.9665+-0.0960        
   int-or-other-abs-zero-then-get-by-val             29.3303+-0.5235           29.0638+-0.1341        
   int-or-other-add-then-get-by-val                   6.7180+-0.0358     ?      6.8191+-0.1338        ? might be 1.0151x slower
   int-or-other-add                                   8.9227+-0.0453     !      9.2469+-0.1815        ! definitely 1.0363x slower
   int-or-other-div-then-get-by-val                   5.8894+-0.0171     !      5.9285+-0.0092        ! definitely 1.0066x slower
   int-or-other-max-then-get-by-val                   7.5146+-0.1464     ?      7.6135+-0.1489        ? might be 1.0132x slower
   int-or-other-min-then-get-by-val                   5.9762+-0.0327     ?      6.0087+-0.0376        ?
   int-or-other-mod-then-get-by-val                   5.8238+-0.0260     ?      5.8888+-0.0897        ? might be 1.0112x slower
   int-or-other-mul-then-get-by-val                   5.6980+-0.0312     ?      5.7690+-0.0805        ? might be 1.0125x slower
   int-or-other-neg-then-get-by-val                   7.1333+-0.0432     ?      7.1816+-0.0667        ?
   int-or-other-neg-zero-then-get-by-val             29.1470+-0.1693           29.1346+-0.0998        
   int-or-other-sub-then-get-by-val                   6.7319+-0.1065     ?      6.7585+-0.0518        ?
   int-or-other-sub                                   5.4528+-0.0210     !      5.4883+-0.0110        ! definitely 1.0065x slower
   int-overflow-local                                 6.6462+-0.0460     ?      6.7167+-0.0952        ? might be 1.0106x slower
   Int16Array-alloc-long-lived                       73.1718+-0.8995     ?     73.8988+-0.3836        ?
   Int16Array-bubble-sort-with-byteLength            44.4028+-0.2199     ?     44.6653+-1.0025        ?
   Int16Array-bubble-sort                            43.2161+-0.3977     ?     43.7899+-0.7829        ? might be 1.0133x slower
   Int16Array-load-int-mul                            2.1088+-0.0374            2.1074+-0.0324        
   Int16Array-to-Int32Array-set                      83.1607+-1.0270     !     87.5991+-1.6158        ! definitely 1.0534x slower
   Int32Array-alloc-large                            43.1672+-1.6349           42.3226+-1.9383          might be 1.0200x faster
   Int32Array-alloc-long-lived                       80.6878+-0.7606     ?     81.4666+-0.7147        ?
   Int32Array-alloc                                   4.8323+-0.0230            4.8232+-0.1581        
   Int32Array-Int8Array-view-alloc                   15.0128+-0.0468     !     15.5460+-0.4391        ! definitely 1.0355x slower
   int52-spill                                       10.9720+-0.3816     ?     11.4159+-0.2091        ? might be 1.0405x slower
   Int8Array-alloc-long-lived                        67.0735+-0.8928           66.6676+-0.8605        
   Int8Array-load-with-byteLength                     5.5084+-0.0673            5.5075+-0.0886        
   Int8Array-load                                     5.4576+-0.0123            5.4449+-0.0202        
   integer-divide                                    16.9566+-0.2727     ?     16.9961+-0.3382        ?
   integer-modulo                                     3.1656+-0.3778     ?      3.4523+-0.2037        ? might be 1.0906x slower
   large-int-captured                                10.9777+-0.2067     ?     11.1615+-0.2507        ? might be 1.0167x slower
   large-int-neg                                     24.1664+-0.3900           24.0080+-0.2192        
   large-int                                         21.4093+-0.1590     ?     21.5427+-0.5586        ?
   logical-not                                        6.9698+-0.4174            6.8742+-0.0789          might be 1.0139x faster
   lots-of-fields                                    16.8497+-0.0766           16.8329+-0.2496        
   make-indexed-storage                               4.3870+-0.2277     ?      4.6220+-0.1428        ? might be 1.0536x slower
   make-rope-cse                                      6.2167+-0.0520     ?      6.3191+-0.0886        ? might be 1.0165x slower
   marsaglia-larger-ints                             59.5675+-0.2882     ?     60.0459+-0.7735        ?
   marsaglia-osr-entry                               31.1365+-0.3387     ?     31.2384+-0.4060        ?
   max-boolean                                        3.7076+-0.0432     ?      3.7833+-0.0708        ? might be 1.0204x slower
   method-on-number                                  27.3115+-0.1886     !     30.1966+-0.2299        ! definitely 1.1056x slower
   min-boolean                                        3.6482+-0.0398     ?      3.6749+-0.0201        ?
   minus-boolean-double                               4.7901+-0.0484            4.7756+-0.0090        
   minus-boolean                                      3.6427+-0.0048     ^      3.6137+-0.0154        ^ definitely 1.0080x faster
   misc-strict-eq                                    55.7164+-0.5216     ?     55.9538+-0.7735        ?
   mod-boolean-double                                13.8346+-0.2232           13.8078+-0.1522        
   mod-boolean                                       10.6419+-0.1387           10.5245+-0.1541          might be 1.0112x faster
   mul-boolean-double                                 5.5980+-0.0094     ?      5.6433+-0.0614        ?
   mul-boolean                                        4.1418+-0.2279            3.9125+-0.1138          might be 1.0586x faster
   neg-boolean                                        4.8892+-0.0479            4.8476+-0.0091        
   negative-zero-divide                               0.4236+-0.0024     ?      0.4248+-0.0018        ?
   negative-zero-modulo                               0.4237+-0.0030     ?      0.4270+-0.0021        ?
   negative-zero-negate                               0.3958+-0.0026     ?      0.3979+-0.0018        ?
   nested-function-parsing                           48.3773+-0.1685     ?     49.2498+-1.3437        ? might be 1.0180x slower
   new-array-buffer-dead                              4.0593+-0.0815     ?      4.1281+-0.1014        ? might be 1.0170x slower
   new-array-buffer-push                             10.7193+-0.3140     ?     10.8320+-0.2098        ? might be 1.0105x slower
   new-array-dead                                    14.5273+-0.3136     ?     14.6045+-0.1909        ?
   new-array-push                                     7.5397+-0.1577     ?      7.6886+-0.1341        ? might be 1.0198x slower
   number-test                                        4.6450+-0.0212     !      4.6741+-0.0027        ! definitely 1.0063x slower
   object-closure-call                                9.1198+-0.1519     ?      9.3540+-0.1062        ? might be 1.0257x slower
   object-test                                        5.2648+-0.1949            5.1005+-0.1261          might be 1.0322x faster
   plus-boolean-arith                                 3.7242+-0.1077            3.7213+-0.0091        
   plus-boolean-double                                4.7942+-0.0054     ?      4.8433+-0.0663        ? might be 1.0102x slower
   plus-boolean                                       3.5461+-0.0100     ?      3.5598+-0.0121        ?
   poly-chain-access-different-prototypes-simple   
                                                      4.4626+-0.0526            4.4306+-0.0418        
   poly-chain-access-different-prototypes             3.6674+-0.0397            3.6566+-0.0075        
   poly-chain-access-simpler                          4.4290+-0.0569     ?      4.4420+-0.0716        ?
   poly-chain-access                                  3.0970+-0.3251            2.9639+-0.3353          might be 1.0449x faster
   poly-stricteq                                     83.6217+-2.2448     !     87.9983+-0.6855        ! definitely 1.0523x slower
   polymorphic-array-call                             2.2222+-0.0599     !      2.3546+-0.0465        ! definitely 1.0596x slower
   polymorphic-get-by-id                              4.7187+-0.0172     ?      4.7493+-0.0160        ?
   polymorphic-put-by-id                             98.0697+-24.3681          79.3468+-27.7915         might be 1.2360x faster
   polymorphic-structure                             24.6554+-0.0999     !     25.2350+-0.1435        ! definitely 1.0235x slower
   polyvariant-monomorphic-get-by-id                 13.4194+-0.1241           13.3665+-0.1488        
   proto-getter-access                               13.6849+-0.2658     ?     13.7981+-0.1519        ?
   put-by-id-replace-and-transition                  12.6248+-0.1636     ?     12.6772+-0.2373        ?
   put-by-id-slightly-polymorphic                     4.0219+-0.0382     ?      4.0258+-0.0482        ?
   put-by-id                                         21.1007+-0.4825     ?     21.2782+-0.6201        ?
   put-by-val-direct                                  0.7892+-0.0370            0.7826+-0.0051        
   put-by-val-large-index-blank-indexing-type   
                                                     10.8450+-0.1899     ?     10.9387+-0.2526        ?
   put-by-val-machine-int                             4.4728+-0.0509     !      4.7688+-0.1321        ! definitely 1.0662x slower
   rare-osr-exit-on-local                            21.5311+-0.4046     ?     21.5527+-0.1299        ?
   register-pressure-from-osr                        31.7164+-0.5637           31.6260+-0.1221        
   setter                                             7.4416+-0.0472            7.4063+-0.0323        
   simple-activation-demo                            35.5528+-0.5678           35.5390+-0.4073        
   simple-getter-access                              20.3389+-0.4497           20.2657+-0.1220        
   sin-boolean                                       23.4221+-0.2708           23.4127+-0.2094        
   slow-array-profile-convergence                     4.3958+-0.2932            4.3540+-0.2417        
   slow-convergence                                   4.8478+-0.0646     ?      4.9242+-0.0868        ? might be 1.0157x slower
   sparse-conditional                                 1.4896+-0.0235     ?      1.5218+-0.0103        ? might be 1.0216x slower
   splice-to-remove                                  26.9272+-0.2408     !     27.5897+-0.2124        ! definitely 1.0246x slower
   string-char-code-at                               23.3275+-0.1003     ?     23.4568+-0.0715        ?
   string-concat-object                               3.1942+-0.0168     !      3.3549+-0.0571        ! definitely 1.0503x slower
   string-concat-pair-object                          3.1063+-0.1070     !      3.3177+-0.0595        ! definitely 1.0681x slower
   string-concat-pair-simple                         18.4374+-0.3759     ?     18.6713+-0.3251        ? might be 1.0127x slower
   string-concat-simple                              18.3799+-0.2725     ?     18.7325+-0.3985        ? might be 1.0192x slower
   string-cons-repeat                                11.8836+-0.0395     !     12.1186+-0.0358        ! definitely 1.0198x slower
   string-cons-tower                                 10.8677+-0.0477     !     11.1423+-0.0400        ! definitely 1.0253x slower
   string-equality                                   26.1840+-0.2317           26.1770+-0.0935        
   string-get-by-val-big-char                        13.8209+-0.0878     !     14.1711+-0.1826        ! definitely 1.0253x slower
   string-get-by-val-out-of-bounds-insane             5.9756+-0.0762     ?      6.0230+-0.1413        ?
   string-get-by-val-out-of-bounds                    7.1722+-0.1160     ?      7.2187+-0.1208        ?
   string-get-by-val                                  5.5529+-0.0473     ?      5.5552+-0.0420        ?
   string-hash                                        2.9154+-0.1202     ?      2.9919+-0.0525        ? might be 1.0262x slower
   string-long-ident-equality                        21.2562+-0.0787     ?     21.2907+-0.1076        ?
   string-repeat-arith                               49.8890+-1.6692     ?     57.4615+-11.4261       ? might be 1.1518x slower
   string-sub                                        97.0829+-1.1645     ?    112.9704+-27.1701       ? might be 1.1636x slower
   string-test                                        4.6814+-0.0542     ?      4.7399+-0.0644        ? might be 1.0125x slower
   string-var-equality                               52.0645+-0.1326     ?     52.1075+-0.0593        ?
   structure-hoist-over-transitions                   3.9008+-0.0410     ?      3.9272+-0.0179        ?
   substring-concat-weird                            62.8993+-0.4224     !     63.6107+-0.2354        ! definitely 1.0113x slower
   substring-concat                                  66.0523+-0.3210     ?     66.9221+-0.6290        ? might be 1.0132x slower
   substring                                         74.5769+-0.6393     ?     74.7618+-0.1847        ?
   switch-char-constant                               3.6830+-0.0182     !      3.7624+-0.0463        ! definitely 1.0216x slower
   switch-char                                        9.2472+-0.1159     ?      9.3030+-0.1328        ?
   switch-constant                                   11.4307+-0.2208     ?     11.6811+-0.1196        ? might be 1.0219x slower
   switch-string-basic-big-var                       26.0247+-0.4709     ?     27.5762+-1.9284        ? might be 1.0596x slower
   switch-string-basic-big                           32.5875+-5.1036     ?     32.5888+-4.0839        ?
   switch-string-basic-var                           32.2364+-0.8126           32.0137+-0.6497        
   switch-string-basic                               29.9146+-3.3236     ?     32.3610+-2.3629        ? might be 1.0818x slower
   switch-string-big-length-tower-var                29.9972+-0.0963     ?     29.9981+-0.1249        ?
   switch-string-length-tower-var                    23.9790+-0.2680     ?     23.9852+-0.1340        ?
   switch-string-length-tower                        17.3320+-0.0332     ?     17.3774+-0.0615        ?
   switch-string-short                               18.5106+-2.9360           17.3684+-0.1147          might be 1.0658x faster
   switch                                            16.0479+-0.1864           15.8092+-0.2444          might be 1.0151x faster
   tear-off-arguments-simple                          2.3354+-0.0112     !      2.4829+-0.0202        ! definitely 1.0632x slower
   tear-off-arguments                                 3.9943+-0.0889     ?      4.0535+-0.0477        ? might be 1.0148x slower
   temporal-structure                                20.3344+-0.1143           20.1460+-0.0953        
   to-int32-boolean                                  24.6966+-0.2168     ?     24.7348+-0.1842        ?
   undefined-test                                     4.8610+-0.0529     ?      4.8658+-0.0568        ?
   unprofiled-licm                                   31.3988+-0.4238           31.2684+-0.6309        
   weird-inlining-const-prop                          2.6705+-0.0621     !      2.9369+-0.0936        ! definitely 1.0997x slower

   <arithmetic>                                      21.9290+-0.1393     !     22.8579+-0.1550        ! definitely 1.0424x slower
   <geometric> *                                     11.0613+-0.0239     !     11.3412+-0.0195        ! definitely 1.0253x slower
   <harmonic>                                         5.4729+-0.0084     !      5.5902+-0.0106        ! definitely 1.0214x slower

                                                        TipOfTree                 PolyInline                                    
AsmBench:
   bigfib.cpp                                       796.8540+-5.1282     ?    801.8202+-3.5901        ?
   cray.c                                           796.2454+-7.5238     ?    796.5911+-4.0687        ?
   dry.c                                            774.6597+-10.4498    ?    784.5348+-8.9135        ? might be 1.0127x slower
   FloatMM.c                                       1148.5861+-0.6920         1148.5180+-0.4762        
   gcc-loops.cpp                                   7554.7483+-16.7400    ?   7566.6718+-10.1157       ?
   n-body.c                                        2008.6216+-0.7456     ^   2005.8173+-0.8630        ^ definitely 1.0014x faster
   Quicksort.c                                      691.6239+-8.2094     ?    699.8070+-7.2348        ? might be 1.0118x slower
   stepanov_container.cpp                          5841.5354+-14.8307    ?   5851.3891+-21.6273       ?
   Towers.c                                         491.4585+-2.6998     ^    484.8095+-1.5100        ^ definitely 1.0137x faster

   <arithmetic>                                    2233.8148+-2.7224     ?   2237.7732+-1.7716        ? might be 1.0018x slower
   <geometric> *                                   1370.0509+-3.4829     ?   1372.9959+-2.8997        ? might be 1.0021x slower
   <harmonic>                                      1005.0478+-3.8727     ?   1006.5637+-3.2032        ? might be 1.0015x slower

                                                        TipOfTree                 PolyInline                                    
All benchmarks:
   <arithmetic>                                     154.9874+-0.1052     !    156.9893+-0.2711        ! definitely 1.0129x slower
   <geometric>                                       17.9647+-0.0186     !     18.3613+-0.0271        ! definitely 1.0221x slower
   <harmonic>                                         4.9114+-0.0275     ^      4.8705+-0.0106        ^ definitely 1.0084x faster

                                                        TipOfTree                 PolyInline                                    
Geomean of preferred means:
   <scaled-result>                                   79.4052+-0.1123     !     81.0038+-0.0695        ! definitely 1.0201x slower
Comment 20 Filip Pizlo 2014-08-23 18:06:52 PDT
Created attachment 237033 [details]
a wrong approch

This was an aborted attempt to reduce overhead by using GCD.  It doesn't work.  GCD dispatch_async isn't fast enough.
Comment 21 Filip Pizlo 2014-08-23 21:12:37 PDT
Created attachment 237039 [details]
closer

This is very close to being a proper speed-up.


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

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r172835)
"OldPolyInline" at /Volumes/Data/fromMiniMe/quartary/OpenSource/Good/WebKitBuild/Release/jsc
"PolyInline" at /Volumes/Data/fromMiniMe/quartary/OpenSource/WebKitBuild/Release/jsc (r172859)

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               OldPolyInline               PolyInline           PolyInline v. TipOfTree  
SunSpider:
   3d-cube                                            7.5968+-0.1006     !      7.9333+-0.1876     ^      7.6663+-0.0769        ?
   3d-morph                                           9.5368+-0.0470     !      9.7130+-0.0758            9.6005+-0.0860        ?
   3d-raytrace                                        9.6492+-0.1424     !      9.9515+-0.1199            9.7634+-0.1927        ? might be 1.0118x slower
   access-binary-trees                                2.8465+-0.0803     ?      2.9831+-0.1022            2.8157+-0.1096          might be 1.0109x faster
   access-fannkuch                                    9.0343+-0.2192     ?      9.3109+-0.1164     ?      9.3590+-0.1933        ? might be 1.0359x slower
   access-nbody                                       4.6316+-0.0148     !      4.7056+-0.0394     ^      4.6170+-0.0157        
   access-nsieve                                      5.8494+-0.1021            5.7934+-0.1002            5.7559+-0.0686          might be 1.0163x faster
   bitops-3bit-bits-in-byte                           1.8552+-0.0158     !      1.9158+-0.0153     ^      1.8585+-0.0105        ?
   bitops-bits-in-byte                                6.7489+-0.0529     ?      6.8406+-0.1374            6.6799+-0.1146          might be 1.0103x faster
   bitops-bitwise-and                                 3.1820+-0.0081     ?      3.1845+-0.0119            3.1799+-0.0156        
   bitops-nsieve-bits                                 5.7063+-0.0471     ?      5.7207+-0.0453            5.6712+-0.0339        
   controlflow-recursive                              2.8976+-0.0699     !      3.1888+-0.0992            3.1028+-0.0900        ! definitely 1.0708x slower
   crypto-aes                                         6.2038+-0.1265     !      6.4553+-0.0609     ^      6.2128+-0.0745        ?
   crypto-md5                                         3.6947+-0.0737     !      3.9632+-0.0938     ^      3.5592+-0.0931          might be 1.0381x faster
   crypto-sha1                                        3.7256+-0.0414     !      4.3992+-0.0730     ^      3.8115+-0.0737        ? might be 1.0231x slower
   date-format-tofte                                 13.1325+-0.0851     !     13.5885+-0.1987     ^     13.1220+-0.2073        
   date-format-xparb                                  8.5692+-0.1008     !      9.1183+-0.1247     ^      8.8153+-0.1222        ! definitely 1.0287x slower
   math-cordic                                        4.6991+-0.0248     !      4.8151+-0.0618            4.7459+-0.0564        ?
   math-partial-sums                                 10.4487+-0.1216           10.3774+-0.1544     ?     10.4569+-0.1351        ?
   math-spectral-norm                                 3.0253+-0.0131     !      3.0899+-0.0343            3.0553+-0.0589        ?
   regexp-dna                                        11.8418+-0.1761     ?     11.9746+-0.2893           11.6921+-0.0954          might be 1.0128x faster
   string-base64                                      6.3888+-0.0724     !      6.7286+-0.0640     ^      6.4840+-0.0541        ? might be 1.0149x slower
   string-fasta                                      10.2561+-0.2657     ?     10.3331+-0.2601           10.1315+-0.2475          might be 1.0123x faster
   string-tagcloud                                   15.2819+-0.1896     ?     15.3662+-0.1923     ?     15.4204+-0.3423        ?
   string-unpack-code                                30.6004+-0.2242     !     31.5393+-0.4892           31.0600+-0.2566        ? might be 1.0150x slower
   string-validate-input                              7.6459+-0.0588     !      7.8853+-0.0661     ^      7.6635+-0.1098        ?

   <arithmetic> *                                     7.8865+-0.0281     !      8.1106+-0.0312     ^      7.9346+-0.0163        ! definitely 1.0061x slower
   <geometric>                                        6.4813+-0.0274     !      6.7012+-0.0166     ^      6.5152+-0.0178        ? might be 1.0052x slower
   <harmonic>                                         5.4042+-0.0272     !      5.6193+-0.0179     ^      5.4337+-0.0202        ? might be 1.0055x slower

                                                        TipOfTree               OldPolyInline               PolyInline           PolyInline v. TipOfTree  
LongSpider:
   3d-cube                                         1349.9638+-8.7539         1341.9924+-8.6658     ?   1352.2807+-11.9435       ?
   3d-morph                                        2293.9496+-54.3239        2272.9058+-2.7280         2271.9633+-1.8666        
   3d-raytrace                                     1318.5673+-8.5350     !   1343.2097+-9.0392         1334.1944+-9.5874        ? might be 1.0119x slower
   access-binary-trees                             1671.6794+-6.7045     ?   1673.7782+-6.9684     ?   1675.9381+-8.4777        ?
   access-fannkuch                                  518.1686+-18.0454    ?    523.6334+-22.5282         518.0250+-13.1596       
   access-nbody                                    1246.8274+-1.4745     ?   1246.8614+-0.7528     ?   1246.9889+-1.4063        ?
   access-nsieve                                   1610.7732+-4.0603     ?   1611.4959+-1.4659     ?   1613.7677+-6.2302        ?
   bitops-3bit-bits-in-byte                          56.5205+-0.4801     ?     56.5494+-0.5069     ?     56.6397+-0.4483        ?
   bitops-bits-in-byte                              394.4480+-8.6075          392.4211+-2.5878          391.6039+-6.5651        
   bitops-nsieve-bits                              1180.9449+-3.3729         1179.7390+-3.6834     ?   1182.6170+-9.2748        ?
   controlflow-recursive                            866.8516+-1.3217          864.2723+-1.5320     ?    865.7004+-1.2000        
   crypto-aes                                      1134.3077+-7.3833         1131.7182+-2.8674         1127.2899+-5.8699        
   crypto-md5                                       956.6052+-7.8949     !    985.2729+-4.0365     ^    963.4393+-6.0080        ?
   crypto-sha1                                     1199.3875+-3.1823         1199.1652+-3.7565     ?   1201.6001+-14.1220       ?
   date-format-tofte                               1208.9655+-19.8661        1196.1195+-11.4344        1183.6710+-17.8630         might be 1.0214x faster
   date-format-xparb                               1318.3267+-9.5408     ?   1327.7142+-17.7467        1327.1370+-16.6566       ?
   math-cordic                                      813.1115+-1.1082     !    983.9172+-12.1013    ^    812.7138+-1.4998        
   math-partial-sums                               1315.3453+-1.8057     ?   1315.4757+-4.0901         1315.1383+-4.0014        
   math-spectral-norm                              1296.1209+-0.8698     ?   1296.8169+-3.1618     ?   1304.9138+-13.3644       ?
   string-base64                                    590.2656+-4.4362     !    606.5468+-1.7821          605.7721+-4.0021        ! definitely 1.0263x slower
   string-fasta                                     702.6789+-5.0791     ?    715.5973+-22.9297         700.3404+-5.8429        
   string-tagcloud                                  363.0031+-4.0172          360.8392+-2.6286     ?    364.0224+-2.0190        ?

   <arithmetic>                                    1063.9460+-2.9023     !   1073.9110+-1.4746     ^   1064.3526+-2.3943        ? might be 1.0004x slower
   <geometric> *                                    886.2058+-2.0155     !    896.7825+-2.4972     ^    887.1438+-2.3358        ? might be 1.0011x slower
   <harmonic>                                       535.2960+-1.4660     ?    539.3852+-2.9751          536.2064+-1.3968        ? might be 1.0017x slower

                                                        TipOfTree               OldPolyInline               PolyInline           PolyInline v. TipOfTree  
V8Spider:
   crypto                                            82.6233+-2.0640           82.1828+-0.8922           81.4173+-1.1905          might be 1.0148x faster
   deltablue                                         99.7906+-0.9344     !    121.6040+-1.8495     ?    122.4672+-1.0183        ! definitely 1.2272x slower
   earley-boyer                                      74.6517+-1.0537     ?     75.9837+-0.6960           74.5497+-1.3398        
   raytrace                                          44.7302+-0.7809     !     50.5652+-1.0741     ^     46.4859+-0.6909        ! definitely 1.0393x slower
   regexp                                           103.4974+-0.6087     ?    104.5437+-0.6476          104.1118+-0.5190        ?
   richards                                         107.4693+-1.4098     !    119.2686+-1.3092          119.1006+-1.2616        ! definitely 1.1082x slower
   splay                                             50.4520+-0.5289     ?     50.7996+-0.9773           50.1278+-0.4640        

   <arithmetic>                                      80.4592+-0.4942     !     86.4211+-0.4176     ^     85.4658+-0.3501        ! definitely 1.0622x slower
   <geometric> *                                     76.5777+-0.4674     !     81.7064+-0.4761     ^     80.2691+-0.3045        ! definitely 1.0482x slower
   <harmonic>                                        72.4058+-0.4585     !     76.9431+-0.5730     ^     74.9991+-0.2760        ! definitely 1.0358x slower

                                                        TipOfTree               OldPolyInline               PolyInline           PolyInline v. TipOfTree  
Octane:
   encrypt                                           0.39469+-0.00041    ?     0.39542+-0.00070          0.39457+-0.00060       
   decrypt                                           7.15540+-0.00490    ?     7.16783+-0.01390    ^     7.14990+-0.00304       
   deltablue                                x2       0.44237+-0.00944    ^     0.34085+-0.00071    ?     0.34263+-0.00156       ^ definitely 1.2911x faster
   earley                                            1.34044+-0.00931    ?     1.35331+-0.00724    ?     1.43291+-0.13590       ? might be 1.0690x slower
   boyer                                            10.38327+-0.11637         10.36485+-0.13204    ?    10.39576+-0.06340       ?
   navier-stokes                            x2       7.73287+-0.00630          7.72813+-0.00747    ?     7.73359+-0.00506       ?
   raytrace                                 x2       2.65510+-0.02798          2.60345+-0.05979    !     2.71553+-0.02297       ! definitely 1.0228x slower
   richards                                 x2       0.22546+-0.00764    ^     0.21279+-0.00168    ?     0.21400+-0.00349       ^ definitely 1.0536x faster
   splay                                    x2       0.62883+-0.00589          0.62695+-0.00568          0.62436+-0.00609       
   regexp                                   x2      61.05635+-0.52866    ?    62.20920+-0.79195         61.51487+-0.25551       ?
   pdfjs                                    x2      86.61967+-0.12114    !    88.75782+-0.38265         88.45366+-0.45158       ! definitely 1.0212x slower
   mandreel                                 x2      91.75195+-0.59207    ?    93.89854+-1.74704         91.93713+-0.66630       ?
   gbemu                                    x2      68.51092+-0.31507    !    76.45508+-1.62798         74.52003+-1.38221       ! definitely 1.0877x slower
   closure                                           0.90815+-0.00185    ?     0.91114+-0.00232          0.90888+-0.00186       ?
   jquery                                           11.42428+-0.03007    ^    11.31468+-0.06190         11.27173+-0.02340       ^ definitely 1.0135x faster
   box2d                                    x2      24.64889+-0.07543    ?    24.86224+-0.15634         24.75145+-0.15630       ?
   zlib                                     x2     780.59431+-57.54470       780.39533+-55.85512   ?   816.19238+-3.01953       ? might be 1.0456x slower
   typescript                               x2    1286.72534+-8.90420    !  1339.83057+-6.17903    ^  1312.64616+-6.59689       ! definitely 1.0201x slower

   <arithmetic>                                    161.82634+-3.56075    ?   166.24497+-3.54909    ?   166.49484+-0.59211       ! definitely 1.0288x slower
   <geometric> *                                    12.26354+-0.03428    ^    12.17045+-0.05282    ?    12.19757+-0.05384         might be 1.0054x faster
   <harmonic>                                        1.33412+-0.01816    ^     1.23148+-0.00333    ?     1.23799+-0.00976       ^ definitely 1.0776x faster

                                                        TipOfTree               OldPolyInline               PolyInline           PolyInline v. TipOfTree  
Kraken:
   ai-astar                                          527.596+-1.672      ?     528.664+-1.319            528.533+-1.728         ?
   audio-beat-detection                              183.219+-1.109            182.450+-2.138      ?     182.908+-3.479         
   audio-dft                                         253.083+-1.108      ?     254.706+-0.679      ^     253.227+-0.621         ?
   audio-fft                                         130.098+-0.471      ?     130.524+-0.675            129.885+-0.073         
   audio-oscillator                                  367.201+-0.939            367.154+-1.010      ?     367.836+-0.876         ?
   imaging-darkroom                                  286.597+-1.900      ?     288.655+-0.654            286.661+-1.617         ?
   imaging-desaturate                                112.583+-0.313      ?     112.729+-0.453            112.547+-0.353         
   imaging-gaussian-blur                             179.327+-0.591            179.212+-0.592      ?     181.914+-6.849         ? might be 1.0144x slower
   json-parse-financial                               83.081+-1.351      ?      83.703+-0.739      !      85.326+-0.092         ! definitely 1.0270x slower
   json-stringify-tinderbox                          105.336+-0.367      ?     108.859+-3.366      ?     109.153+-0.464         ! definitely 1.0362x slower
   stanford-crypto-aes                               101.613+-1.626      ?     102.128+-0.392            102.095+-0.656         ?
   stanford-crypto-ccm                                93.789+-12.482            91.264+-10.204            87.678+-11.135          might be 1.0697x faster
   stanford-crypto-pbkdf2                            274.520+-1.562      ?     282.098+-7.906            275.662+-0.409         ?
   stanford-crypto-sha256-iterative                  107.149+-0.660      ?     108.169+-0.606            107.495+-0.195         ?

   <arithmetic> *                                    200.371+-0.876      ?     201.451+-1.084            200.780+-1.183         ? might be 1.0020x slower
   <geometric>                                       169.736+-1.581      ?     170.610+-1.683            170.014+-1.813         ? might be 1.0016x slower
   <harmonic>                                        147.655+-2.267      ?     148.355+-2.281            147.790+-2.333         ? might be 1.0009x slower

                                                        TipOfTree               OldPolyInline               PolyInline           PolyInline v. TipOfTree  
JSRegress:
   abs-boolean                                        4.2149+-0.0902     ?      4.2770+-0.0650            4.2188+-0.0499        ?
   adapt-to-double-divide                            20.1724+-0.3184     ?     20.3609+-0.1524           20.1054+-0.3363        
   aliased-arguments-getbyval                         1.0912+-0.0114     !      1.1962+-0.0452     ^      1.1184+-0.0152        ! definitely 1.0249x slower
   allocate-big-object                                3.6155+-0.1075     ?      3.6673+-0.0796            3.6467+-0.0792        ?
   arity-mismatch-inlining                            1.0099+-0.0138     ?      1.0306+-0.0160            1.0165+-0.0136        ?
   array-access-polymorphic-structure                10.9428+-0.1014           10.7421+-0.0993     ?     11.0142+-0.2007        ?
   array-nonarray-polymorhpic-access                 60.8252+-0.1091           60.5706+-0.1949     ?     60.7668+-0.2217        
   array-prototype-every                            124.2107+-0.8628          121.7947+-2.6764     ?    123.4568+-4.7834        
   array-prototype-forEach                          123.4820+-0.6579     ^    121.1670+-1.2575     ?    121.2454+-1.8350          might be 1.0184x faster
   array-prototype-map                              149.1169+-2.7657          147.0619+-4.0173     ?    148.2559+-2.9524        
   array-prototype-some                             122.5469+-0.0784     ^    121.2598+-0.7501          120.8603+-2.1102          might be 1.0140x faster
   array-splice-contiguous                           68.1283+-0.8982     !     74.4046+-0.5605     ^     67.7779+-0.6190        
   array-with-double-add                              6.6599+-0.1047     ?      6.7511+-0.0750            6.7452+-0.1172        ? might be 1.0128x slower
   array-with-double-increment                        4.6470+-0.0745     ?      4.6620+-0.0680     ?      4.6907+-0.0947        ?
   array-with-double-mul-add                          7.9368+-0.2776     ?      7.9533+-0.2101            7.8784+-0.1924        
   array-with-double-sum                              5.0224+-0.0586            4.9780+-0.0494     ?      5.0196+-0.0910        
   array-with-int32-add-sub                          12.0887+-0.3792           11.9502+-0.3457           11.8022+-0.0904          might be 1.0243x faster
   array-with-int32-or-double-sum                     5.0500+-0.0535     ?      5.1146+-0.0817     ?      5.1342+-0.0913        ? might be 1.0167x slower
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                    114.9350+-0.7464     !    117.7443+-1.3931          115.9793+-1.1699        ?
   ArrayBuffer-DataView-alloc-long-lived             32.0286+-0.2330     !     32.8248+-0.4955           32.4517+-0.6099        ? might be 1.0132x slower
   ArrayBuffer-Int32Array-byteOffset                  5.2469+-0.0090     ?      5.2700+-0.0359            5.2610+-0.0171        ?
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                    119.6093+-1.1411     ?    121.5258+-1.8794     ?    121.5333+-2.5143        ? might be 1.0161x slower
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     51.2499+-0.4186     ?     52.6272+-2.4502           50.8320+-0.4991        
   ArrayBuffer-Int8Array-alloc-long-lived            31.4915+-0.6563     ?     31.7945+-0.9916           31.4632+-0.5283        
   ArrayBuffer-Int8Array-alloc                       27.8506+-0.3308     ?     28.4073+-1.1350     ?     28.8704+-1.4210        ? might be 1.0366x slower
   asmjs_bool_bug                                    10.1802+-0.1085     ?     10.2642+-0.1545           10.1805+-0.1020        ?
   assign-custom-setter-polymorphic                   4.9108+-0.0458     ?      5.0059+-0.1602            4.9405+-0.0812        ?
   assign-custom-setter                               6.6821+-0.0457            6.6583+-0.0323     ?      6.7067+-0.0903        ?
   basic-set                                         15.4140+-0.3285     ?     15.8613+-0.5977           15.6650+-0.3186        ? might be 1.0163x slower
   big-int-mul                                        6.3460+-0.0999     !      6.8861+-0.1331            6.7775+-0.1090        ! definitely 1.0680x slower
   boolean-test                                       4.7800+-0.0447     ?      4.8091+-0.0475            4.7576+-0.0157        
   branch-fold                                        5.1593+-0.0467            5.0905+-0.0458     ?      5.0941+-0.0506          might be 1.0128x faster
   by-val-generic                                    13.1451+-0.4799           13.0213+-0.3579           12.9184+-0.4523          might be 1.0176x faster
   call-spread-apply                                 20.5652+-0.3384           20.2854+-0.3161     ?     20.4959+-0.2846        
   call-spread-call                                   8.6464+-0.1705     ?      9.0551+-0.4215            8.8556+-0.0886        ? might be 1.0242x slower
   captured-assignments                               0.5823+-0.0040     ?      0.5837+-0.0034     ?      0.5894+-0.0065        ? might be 1.0122x slower
   cast-int-to-double                                 9.4029+-0.0753     ?      9.5295+-0.1981            9.3415+-0.1181        
   cell-argument                                     10.9720+-0.1187     ?     11.1541+-0.1282           11.1053+-0.1153        ? might be 1.0121x slower
   cfg-simplify                                       4.0688+-0.0260            4.0673+-0.0045            4.0595+-0.0160        
   chain-getter-access                               13.6050+-0.1629     ?     13.6313+-0.1991           13.5080+-0.0982        
   cmpeq-obj-to-obj-other                            13.5198+-0.5414           13.3979+-0.3906           12.8910+-0.4117          might be 1.0488x faster
   constant-test                                      8.7872+-0.0769     ?      8.8425+-0.1299            8.7507+-0.0809        
   DataView-custom-properties                       123.6864+-1.3454     ?    124.4644+-1.5391          123.9122+-1.3967        ?
   delay-tear-off-arguments-strictmode                3.6319+-0.0153     !      3.7894+-0.0134     ^      3.6685+-0.0214        ? might be 1.0101x slower
   destructuring-arguments                            8.8802+-0.1753     ?      9.0114+-0.0451            8.9311+-0.1445        ?
   destructuring-swap                                 8.8676+-0.1154     ?      9.0483+-0.1203            8.9306+-0.0787        ?
   direct-arguments-getbyval                          1.1325+-0.0331     ?      1.1444+-0.0078     ^      1.1215+-0.0122        
   div-boolean-double                                 6.4262+-0.0634     ?      6.4512+-0.1110            6.4451+-0.0770        ?
   div-boolean                                       11.6290+-0.1057           11.6010+-0.1708     ?     11.7338+-0.1791        ?
   double-get-by-val-out-of-bounds                    6.6636+-0.0733     ?      6.8449+-0.3559            6.7746+-0.1097        ? might be 1.0167x slower
   double-pollution-getbyval                         11.3584+-0.1128     ?     11.4490+-0.1361           11.3746+-0.1243        ?
   double-pollution-putbyoffset                       6.0847+-0.1287     ?      6.2992+-0.1768            6.1707+-0.2125        ? might be 1.0141x slower
   double-to-int32-typed-array-no-inline              2.9698+-0.0273     !      3.1902+-0.0813     ^      2.9883+-0.0612        ?
   double-to-int32-typed-array                        2.4681+-0.0772     !      2.6932+-0.0862     ^      2.4713+-0.0161        ?
   double-to-uint32-typed-array-no-inline             3.0086+-0.0230     !      3.2881+-0.0787     ^      3.0789+-0.0686        ? might be 1.0234x slower
   double-to-uint32-typed-array                       2.6413+-0.0216     !      2.9299+-0.1329     ^      2.7011+-0.0671        ? might be 1.0226x slower
   empty-string-plus-int                             10.2400+-0.1017     !     10.6539+-0.1174           10.4852+-0.0740        ! definitely 1.0239x slower
   emscripten-cube2hash                              54.2860+-0.5619     !     56.3243+-0.7747     ^     54.3014+-0.3371        ?
   external-arguments-getbyval                        2.0283+-0.0093     ?      2.0393+-0.0182            2.0347+-0.0255        ?
   external-arguments-putbyval                        3.0343+-0.0279     ?      3.0375+-0.0420            3.0019+-0.0306          might be 1.0108x faster
   fixed-typed-array-storage-var-index                1.5154+-0.0341     ?      1.5505+-0.0127     ^      1.5180+-0.0068        ?
   fixed-typed-array-storage                          1.0880+-0.0090     !      1.1273+-0.0044     ^      1.0919+-0.0100        ?
   Float32Array-matrix-mult                           7.4491+-0.0591     ?      7.5377+-0.1312            7.2648+-0.3790          might be 1.0254x faster
   Float32Array-to-Float64Array-set                  88.5121+-0.6146     ?     89.3494+-0.6009           89.0419+-1.3288        ?
   Float64Array-alloc-long-lived                    102.6328+-0.8965          102.1440+-1.2115          101.8468+-0.7838        
   Float64Array-to-Int16Array-set                   115.8131+-0.8523     !    117.4233+-0.7073          116.9263+-0.3519        ?
   fold-double-to-int                                20.8053+-0.3197     ?     21.0478+-0.3862           20.8540+-0.3034        ?
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     19.1012+-0.2874     !     24.5503+-0.3224           24.2385+-0.2306        ! definitely 1.2690x slower
   fold-get-by-id-to-multi-get-by-offset             18.3438+-0.2683     !     23.3331+-0.4904           22.8990+-0.4426        ! definitely 1.2483x slower
   fold-multi-get-by-offset-to-get-by-offset   
                                                     13.0212+-0.0795     !     18.5174+-0.1443     ^     18.0711+-0.2738        ! definitely 1.3878x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                     13.2924+-0.2919     !     18.6169+-0.1115     ^     17.8204+-0.3874        ! definitely 1.3406x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                     13.3301+-0.1486     !     19.5227+-0.2028     ^     18.4902+-0.0496        ! definitely 1.3871x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                     13.4483+-1.7540     !     17.8152+-0.1150     ^     16.9463+-0.2826        ! definitely 1.2601x slower
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     17.7071+-0.6060     !     23.1230+-0.4855           22.5600+-0.2714        ! definitely 1.2741x slower
   fold-put-by-id-to-multi-put-by-offset             20.9670+-0.3716     !     26.4670+-0.3657           25.9551+-0.5619        ! definitely 1.2379x slower
   fold-put-structure                                12.8079+-0.1597     !     17.9431+-0.0855     ^     17.5135+-0.2245        ! definitely 1.3674x slower
   for-of-iterate-array-entries                       9.3572+-0.1680     ^      9.1008+-0.0864     ^      8.4761+-0.1667        ^ definitely 1.1040x faster
   for-of-iterate-array-keys                          3.5922+-0.0550     !      4.1378+-0.0592     ^      3.9735+-0.0857        ! definitely 1.1061x slower
   for-of-iterate-array-values                        3.1787+-0.0823     !      3.5773+-0.0826     ^      3.2542+-0.0832        ? might be 1.0238x slower
   fround                                            23.8782+-0.3309     ?     23.9093+-0.2415           23.8439+-0.3053        
   ftl-library-inlining-dataview                    107.7988+-0.1560     ?    111.3772+-7.9733          109.1687+-2.8471        ? might be 1.0127x slower
   ftl-library-inlining                             116.7308+-0.4075     !    127.7039+-0.2288     !    243.0603+-0.3448        ! definitely 2.0822x slower
   function-dot-apply                                 2.2889+-0.0134     !      2.3272+-0.0103            2.3138+-0.0533        ? might be 1.0108x slower
   function-test                                      5.2900+-0.1696            5.1798+-0.0188     ?      5.2205+-0.1003          might be 1.0133x faster
   function-with-eval                               102.4097+-0.7999     ?    104.4310+-1.6402     ?    105.7574+-2.0458        ! definitely 1.0327x slower
   gcse-poly-get-less-obvious                        28.9382+-0.5229     ?     29.0958+-0.6040           29.0524+-0.5800        ?
   gcse-poly-get                                     29.6153+-0.1166           29.5472+-0.1214     ?     29.6174+-0.1013        ?
   gcse                                               7.6211+-0.1937     ?      7.7217+-0.1647            7.6543+-0.0666        ?
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.8330+-0.0888            3.7885+-0.0591            3.7813+-0.0473          might be 1.0137x faster
   get-by-id-bimorphic-check-structure-elimination   
                                                      9.5620+-0.1533            9.4995+-0.1931     ?      9.6287+-0.2736        ?
   get-by-id-chain-from-try-block                     8.3120+-0.1389            8.2718+-0.1943            8.0079+-0.1981          might be 1.0380x faster
   get-by-id-check-structure-elimination              8.7340+-0.1850     ?      8.7651+-0.1844            8.7610+-0.1383        ?
   get-by-id-proto-or-self                           24.0046+-0.5082     ?     24.7312+-1.6547     ?     25.3319+-2.4623        ? might be 1.0553x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      4.4948+-0.0428     ?      4.5187+-0.0676     ?      4.5581+-0.0635        ? might be 1.0141x slower
   get-by-id-self-or-proto                           25.4301+-0.9813           24.9903+-1.6589     ?     25.4714+-2.2733        ?
   get-by-val-out-of-bounds                           6.6345+-0.0523     !      6.8168+-0.1124            6.6717+-0.2015        ?
   get_callee_monomorphic                             5.1977+-0.1359     !      5.6157+-0.0573     ^      5.3387+-0.0877        ? might be 1.0271x slower
   get_callee_polymorphic                             4.8602+-0.0884     ?      5.0148+-0.0985            4.9111+-0.1170        ? might be 1.0105x slower
   getter-no-activation                               6.7906+-0.0641            6.7151+-0.0453     ?      6.7275+-0.0897        
   getter-richards                                  148.0258+-3.5250     !    169.3017+-4.3334          164.3755+-5.7176        ! definitely 1.1105x slower
   getter                                             7.4442+-0.0572            7.4325+-0.0850            7.4296+-0.0629        
   global-var-const-infer-fire-from-opt               1.2294+-0.0433     ?      1.3107+-0.0806            1.2013+-0.0847          might be 1.0234x faster
   global-var-const-infer                             1.0243+-0.0364     !      1.1145+-0.0087     ^      1.0283+-0.0100        ?
   HashMap-put-get-iterate-keys                      40.1326+-0.7138     ?     41.8599+-1.2027           40.4428+-0.7204        ?
   HashMap-put-get-iterate                           39.8010+-0.3942     !     41.0865+-0.5813           40.4625+-0.6635        ? might be 1.0166x slower
   HashMap-string-put-get-iterate                    44.8446+-0.7066     !     46.1707+-0.4664           45.8397+-0.6010        ? might be 1.0222x slower
   hoist-make-rope                                   14.0753+-1.2504     ?     14.7747+-0.8972           13.7929+-1.3152          might be 1.0205x faster
   hoist-poly-check-structure-effectful-loop   
                                                      7.4896+-0.0621     ?      7.5360+-0.2758     ?      7.5702+-0.1113        ? might be 1.0108x slower
   hoist-poly-check-structure                         5.6362+-0.1124     ?      5.6482+-0.1073     ?      5.6543+-0.0808        ?
   imul-double-only                                  10.1981+-0.8168            9.8805+-0.3423            9.7654+-0.3830          might be 1.0443x faster
   imul-int-only                                     13.0827+-0.1119     ?     13.3298+-0.1702           13.3048+-0.1314        ? might be 1.0170x slower
   imul-mixed                                         9.8456+-0.5843     ?     10.0185+-0.3136            9.6497+-0.7022          might be 1.0203x faster
   in-four-cases                                     28.2120+-0.3360     ?     28.2530+-0.3102     ?     28.3617+-0.4256        ?
   in-one-case-false                                 14.7668+-0.0877     ?     14.7990+-0.2108     ?     14.8452+-0.3040        ?
   in-one-case-true                                  14.7075+-0.1135     ?     14.7787+-0.1291           14.7604+-0.1627        ?
   in-two-cases                                      15.4447+-0.1222     ?     15.5025+-0.0979     ^     15.3342+-0.0655        
   indexed-properties-in-objects                      4.3050+-0.0492            4.3016+-0.0917            4.2992+-0.0556        
   infer-closure-const-then-mov-no-inline             4.7486+-0.0152     !      4.8519+-0.0205     ^      4.7330+-0.0084        
   infer-closure-const-then-mov                      29.1043+-0.0819     ?     29.2180+-0.0412           29.1016+-0.1024        
   infer-closure-const-then-put-to-scope-no-inline   
                                                     17.4561+-0.0222     !     17.6377+-0.0737           17.5462+-0.1088        ?
   infer-closure-const-then-put-to-scope             33.1772+-0.1312     ?     33.2922+-0.1369     ^     33.0945+-0.0282        
   infer-closure-const-then-reenter-no-inline   
                                                     76.9737+-0.0644     ?     77.1346+-0.1070     ?     77.2095+-0.3940        ?
   infer-closure-const-then-reenter                  33.1945+-0.0914     ?     33.1958+-0.1676           33.1919+-0.0850        
   infer-constant-global-property                     5.4030+-0.0555     !      5.5414+-0.0622     ^      5.4041+-0.0653        ?
   infer-constant-property                            3.6915+-0.0667     ?      3.7079+-0.0620            3.6709+-0.0567        
   infer-one-time-closure-ten-vars                   16.3735+-0.1747     ^     15.9333+-0.2396     ?     16.2356+-0.2883        
   infer-one-time-closure-two-vars                   15.6768+-0.1157     ^     15.2970+-0.1931     !     15.8749+-0.1478        ? might be 1.0126x slower
   infer-one-time-closure                            15.5477+-0.3015           15.2528+-0.1789     ?     15.5892+-0.1607        ?
   infer-one-time-deep-closure                       28.1987+-0.1366     ?     28.2817+-0.0952           28.1884+-0.0894        
   inline-arguments-access                            2.2107+-0.0181     !      2.2583+-0.0076     ^      2.2150+-0.0094        ?
   inline-arguments-aliased-access                    2.4686+-0.0084     !      2.5201+-0.0151            2.4905+-0.0457        ?
   inline-arguments-local-escape                     21.6478+-0.1514     ^     19.7438+-0.2543     ?     19.8426+-0.3683        ^ definitely 1.0910x faster
   inline-get-scoped-var                              6.4697+-0.0557     ?      6.4948+-0.1071            6.4896+-0.0904        ?
   inlined-put-by-id-transition                      15.6674+-0.3907     ?     15.9262+-0.3730           15.5127+-0.4936        
   int-or-other-abs-then-get-by-val                   7.9280+-0.0928     ?      7.9707+-0.0671     ?      8.0153+-0.1383        ? might be 1.0110x slower
   int-or-other-abs-zero-then-get-by-val             29.2338+-0.2342           29.1597+-0.2512           29.1448+-0.1256        
   int-or-other-add-then-get-by-val                   6.7465+-0.1016     ?      6.8022+-0.1140            6.7734+-0.0882        ?
   int-or-other-add                                   9.0803+-0.0994     ?      9.2464+-0.0781     ^      9.0397+-0.0948        
   int-or-other-div-then-get-by-val                   5.8866+-0.0165     ?      5.9354+-0.0742            5.9303+-0.0827        ?
   int-or-other-max-then-get-by-val                   7.3757+-0.0882     ?      7.4250+-0.1276     ?      7.4610+-0.3155        ? might be 1.0116x slower
   int-or-other-min-then-get-by-val                   6.0041+-0.0807     ?      6.0204+-0.0412     ?      6.0264+-0.0703        ?
   int-or-other-mod-then-get-by-val                   5.8297+-0.0273     ?      5.8522+-0.0371     ?      5.8634+-0.0747        ?
   int-or-other-mul-then-get-by-val                   5.7387+-0.1060     ?      5.7741+-0.0857            5.7260+-0.0663        
   int-or-other-neg-then-get-by-val                   7.1411+-0.0611     ?      7.1862+-0.0758            7.1336+-0.0609        
   int-or-other-neg-zero-then-get-by-val             29.1423+-0.2511     ?     29.2471+-0.2541           29.0911+-0.1030        
   int-or-other-sub-then-get-by-val                   6.7624+-0.1592     ?      6.8160+-0.0746            6.7995+-0.1017        ?
   int-or-other-sub                                   5.4883+-0.0792     ?      5.4975+-0.0132            5.4795+-0.0571        
   int-overflow-local                                 6.6740+-0.0255            6.6375+-0.0471     ?      6.6930+-0.1061        ?
   Int16Array-alloc-long-lived                       72.8366+-0.1796     !     73.4300+-0.3516           73.4033+-0.7072        ?
   Int16Array-bubble-sort-with-byteLength            44.2252+-0.3810     ?     44.3159+-0.8990           44.2410+-0.2993        ?
   Int16Array-bubble-sort                            43.2913+-0.2191           43.2770+-0.2648           43.2470+-0.1712        
   Int16Array-load-int-mul                            2.0983+-0.0233            2.0823+-0.0089     ?      2.0908+-0.0293        
   Int16Array-to-Int32Array-set                      83.6410+-1.9265     !     87.2607+-0.4922           86.6679+-0.6782        ! definitely 1.0362x slower
   Int32Array-alloc-large                            42.4063+-2.0213     ?     43.6125+-1.6654           43.3363+-1.6536        ? might be 1.0219x slower
   Int32Array-alloc-long-lived                       81.3474+-0.5692     ?     81.3782+-0.6039     ?     81.8761+-1.5436        ?
   Int32Array-alloc                                   4.8204+-0.0163            4.8134+-0.1771     ?      4.8488+-0.0170        ?
   Int32Array-Int8Array-view-alloc                   15.3437+-0.5068     ?     15.4530+-0.3158     ?     15.4755+-0.3605        ?
   int52-spill                                       10.9688+-0.1540     !     11.4725+-0.1448           11.3023+-0.1860        ? might be 1.0304x slower
   Int8Array-alloc-long-lived                        66.5806+-1.3756     ?     66.7178+-1.0131           66.4979+-0.9569        
   Int8Array-load-with-byteLength                     5.5223+-0.0638            5.4716+-0.0769            5.4302+-0.0153        ^ definitely 1.0170x faster
   Int8Array-load                                     5.5142+-0.0679            5.4497+-0.0466            5.4290+-0.0210          might be 1.0157x faster
   integer-divide                                    16.8267+-0.0668     ?     16.8287+-0.0849           16.8143+-0.0600        
   integer-modulo                                     3.2098+-0.4001     ?      3.5832+-0.2317            3.1034+-0.5421          might be 1.0343x faster
   large-int-captured                                10.8741+-0.1206     ?     11.1955+-0.2817           11.0948+-0.1936        ? might be 1.0203x slower
   large-int-neg                                     24.1534+-0.2364           24.0670+-0.2689           24.0406+-0.2548        
   large-int                                         21.5152+-0.2543           21.4630+-0.2449           21.3324+-0.3220        
   logical-not                                        6.8038+-0.1095     ?      7.0225+-0.2341            6.9162+-0.3242        ? might be 1.0165x slower
   lots-of-fields                                    16.8514+-0.1328     ?     16.9259+-0.1487     ?     16.9386+-0.1195        ?
   make-indexed-storage                               4.4696+-0.2672     ?      4.5696+-0.1397            4.5189+-0.1188        ? might be 1.0110x slower
   make-rope-cse                                      6.3208+-0.0878            6.2726+-0.0581     ?      6.3011+-0.0454        
   marsaglia-larger-ints                             59.4669+-0.2252     ?     59.7473+-0.4511           59.7016+-0.2230        ?
   marsaglia-osr-entry                               31.1518+-0.2327     ?     31.1899+-0.4252           31.1571+-0.2720        ?
   max-boolean                                        3.7424+-0.0659     ?      3.7453+-0.0219     ?      3.7590+-0.0655        ?
   method-on-number                                  27.2869+-0.1527     !     30.3867+-0.4170     ^     27.2798+-0.1138        
   min-boolean                                        3.6280+-0.0161     ?      3.7036+-0.0647            3.7012+-0.0686        ? might be 1.0202x slower
   minus-boolean-double                               4.7714+-0.0055     ?      4.7970+-0.0412            4.7940+-0.0537        ?
   minus-boolean                                      3.6471+-0.0155     ^      3.6090+-0.0122     ?      3.6173+-0.0135        ^ definitely 1.0083x faster
   misc-strict-eq                                    56.1563+-0.9237           55.7197+-1.0024     ?     55.9813+-0.5035        
   mod-boolean-double                                13.8382+-0.1310           13.7159+-0.0829     ?     13.7500+-0.1604        
   mod-boolean                                       10.5156+-0.0858     ?     10.5781+-0.1118     ?     10.5983+-0.1567        ?
   mul-boolean-double                                 5.6134+-0.0773     ?      5.6309+-0.1560            5.6069+-0.0146        
   mul-boolean                                        4.0136+-0.1679            3.9769+-0.0927            3.9692+-0.0614          might be 1.0112x faster
   neg-boolean                                        4.8571+-0.0347     ?      4.9021+-0.0504            4.8773+-0.0513        ?
   negative-zero-divide                               0.4510+-0.0447            0.4277+-0.0041            0.4274+-0.0027          might be 1.0551x faster
   negative-zero-modulo                               0.4309+-0.0187            0.4308+-0.0036            0.4290+-0.0040        
   negative-zero-negate                               0.3936+-0.0016     !      0.4010+-0.0048            0.3982+-0.0036        ? might be 1.0117x slower
   nested-function-parsing                           48.7378+-0.9766           48.6210+-0.0906     ^     46.7253+-0.4019        ^ definitely 1.0431x faster
   new-array-buffer-dead                              4.0292+-0.0791     ?      4.0744+-0.0613     ?      4.1156+-0.1221        ? might be 1.0215x slower
   new-array-buffer-push                             10.6392+-0.0161     !     10.8348+-0.1563           10.6856+-0.1641        ?
   new-array-dead                                    14.5004+-0.2855     ?     14.7206+-0.3967           14.3301+-0.1766          might be 1.0119x faster
   new-array-push                                     7.5645+-0.0540     !      7.8031+-0.1011     ^      7.5240+-0.1273        
   number-test                                        4.6643+-0.0467     ?      4.6887+-0.0497     ?      4.7001+-0.0722        ?
   object-closure-call                                9.0290+-0.0556     !      9.3341+-0.0923            9.2085+-0.2053        ? might be 1.0199x slower
   object-test                                        5.2507+-0.1676     ^      4.9913+-0.0403     ?      5.0469+-0.0892          might be 1.0404x faster
   plus-boolean-arith                                 3.6873+-0.0245     ?      3.7323+-0.0463            3.7129+-0.0140        ?
   plus-boolean-double                                4.8396+-0.0526            4.8219+-0.0462     ?      4.8792+-0.1105        ?
   plus-boolean                                       3.5623+-0.0338            3.5607+-0.0164            3.5540+-0.0129        
   poly-chain-access-different-prototypes-simple   
                                                      4.4331+-0.0672     ?      4.4724+-0.0549            4.4303+-0.0521        
   poly-chain-access-different-prototypes             3.6568+-0.0395     ?      3.7247+-0.1800            3.6627+-0.0069        ?
   poly-chain-access-simpler                          4.4117+-0.0522     ?      4.4365+-0.0640            4.3964+-0.0113        
   poly-chain-access                                  2.9269+-0.2764     ?      2.9437+-0.2981     !      3.6377+-0.0079        ! definitely 1.2429x slower
   poly-stricteq                                     83.0138+-1.8202     !     88.5053+-1.9320     ^     82.4360+-0.6511        
   polymorphic-array-call                             2.1963+-0.0534     !      2.3966+-0.0438     ^      2.2010+-0.0421        ?
   polymorphic-get-by-id                              4.7638+-0.0539     ?      4.7682+-0.0473     ?      4.7705+-0.0400        ?
   polymorphic-put-by-id                             75.7460+-23.7257    ?     81.9525+-20.5136          72.9596+-26.2385         might be 1.0382x faster
   polymorphic-structure                             24.6382+-0.1202     !     25.2109+-0.1374           25.1830+-1.2349        ? might be 1.0221x slower
   polyvariant-monomorphic-get-by-id                 13.3485+-0.1782     ?     13.4566+-0.1177           13.3931+-0.2269        ?
   proto-getter-access                               13.7260+-0.2868           13.6348+-0.1569     ?     13.6823+-0.1631        
   put-by-id-replace-and-transition                  12.6609+-0.1160     ?     12.7542+-0.1722           12.6941+-0.2183        ?
   put-by-id-slightly-polymorphic                     4.0091+-0.0442     ?      4.0288+-0.0296     ?      4.0305+-0.0438        ?
   put-by-id                                         20.8750+-0.1850     ?     21.4504+-0.5532           21.1238+-0.4610        ? might be 1.0119x slower
   put-by-val-direct                                  0.7765+-0.0035     ?      0.7819+-0.0023            0.7797+-0.0034        ?
   put-by-val-large-index-blank-indexing-type   
                                                     10.6413+-0.1263     ?     10.8861+-0.1764           10.7638+-0.0653        ? might be 1.0115x slower
   put-by-val-machine-int                             4.4039+-0.1265     ?      4.6542+-0.1816            4.3188+-0.4648          might be 1.0197x faster
   rare-osr-exit-on-local                            21.5195+-0.2736           21.4345+-0.2497     ?     21.4667+-0.1237        
   register-pressure-from-osr                        31.5215+-0.0719     ?     31.5689+-0.0860           31.5201+-0.1745        
   setter                                             7.4683+-0.0492            7.4510+-0.1114     ?      7.4518+-0.0801        
   simple-activation-demo                            35.3689+-0.3692     ?     35.6153+-0.1176     ^     35.0293+-0.2585        
   simple-getter-access                              20.0575+-0.2354     ?     20.1909+-0.3373           19.9826+-0.1658        
   sin-boolean                                       23.8727+-0.9908     ?     23.8894+-0.6502           23.5522+-0.3004          might be 1.0136x faster
   slow-array-profile-convergence                     4.4796+-0.1670     ?      4.5494+-0.1269            4.4843+-0.2241        ?
   slow-convergence                                   4.8428+-0.0512     ?      4.8766+-0.0355            4.8143+-0.0415        
   sparse-conditional                                 1.4931+-0.0121     !      1.5376+-0.0149     ^      1.4909+-0.0163        
   splice-to-remove                                  26.9743+-0.2990     ?     27.5542+-0.3146     ?     27.6664+-0.8291        ? might be 1.0257x slower
   string-char-code-at                               23.3577+-0.0801     ?     23.4648+-0.1069           23.3784+-0.1480        ?
   string-concat-object                               3.2101+-0.0399     !      3.3333+-0.0257     ^      3.1999+-0.0086        
   string-concat-pair-object                          3.0898+-0.0870     !      3.2934+-0.0384     ^      3.1257+-0.0419        ? might be 1.0116x slower
   string-concat-pair-simple                         18.3832+-0.2159     ?     18.8006+-0.3286           18.7361+-0.1357        ! definitely 1.0192x slower
   string-concat-simple                              18.4762+-0.3861     ?     18.6572+-0.1582     ?     18.7698+-0.3613        ? might be 1.0159x slower
   string-cons-repeat                                11.9176+-0.0776     !     12.1306+-0.0707     ^     11.9970+-0.0411        ?
   string-cons-tower                                 11.0151+-0.3434     ?     11.1670+-0.0449     ^     11.0053+-0.0612        
   string-equality                                   26.2323+-0.1525     ?     26.3252+-0.4308           26.1849+-0.2291        
   string-get-by-val-big-char                        13.7052+-0.2454     !     14.1177+-0.1660           14.0606+-0.3665        ? might be 1.0259x slower
   string-get-by-val-out-of-bounds-insane             5.9594+-0.1215     ?      6.0492+-0.0513     ^      5.9201+-0.0449        
   string-get-by-val-out-of-bounds                    7.1322+-0.1658            7.1187+-0.1002            7.0802+-0.1570        
   string-get-by-val                                  5.5895+-0.0758            5.5475+-0.0139            5.5433+-0.0210        
   string-hash                                        2.9136+-0.0587     ?      2.9716+-0.0227     ^      2.9225+-0.0061        ?
   string-long-ident-equality                        21.2376+-0.0928     ?     21.3842+-0.1900           21.2520+-0.0897        ?
   string-repeat-arith                               49.6843+-0.6231     ?     52.4249+-5.0590           49.4865+-0.2965        
   string-sub                                        96.8472+-1.3413     !    101.5924+-1.3538     ^     94.6843+-0.8454          might be 1.0228x faster
   string-test                                        4.6760+-0.0497     ?      4.6969+-0.0507     ?      4.7067+-0.0736        ?
   string-var-equality                               52.0219+-0.0636     ?     52.0298+-0.1372     ?     52.0672+-0.1870        ?
   structure-hoist-over-transitions                   3.8951+-0.0793     ?      3.9662+-0.0475            3.8890+-0.0839        
   substring-concat-weird                            63.3658+-1.3428     ?     63.7222+-0.5520           63.2126+-0.3641        
   substring-concat                                  66.1567+-0.4491     ?     66.7657+-0.2659           66.7515+-0.7620        ?
   substring                                         74.1842+-0.3242     ?     75.0788+-1.1467           74.8821+-0.5166        ?
   switch-char-constant                               3.6839+-0.0261     ?      3.7617+-0.0958            3.6917+-0.0275        ?
   switch-char                                        9.2883+-0.1206     ?      9.3112+-0.0542     ?      9.3287+-0.1672        ?
   switch-constant                                   11.4915+-0.1947     ?     11.6740+-0.1444           11.6553+-0.1194        ? might be 1.0143x slower
   switch-string-basic-big-var                       25.2930+-1.7575     ?     28.4455+-1.4275     ^     25.1061+-1.7117        
   switch-string-basic-big                           35.8927+-0.9944           33.6920+-3.2047     ?     34.2510+-2.4826          might be 1.0479x faster
   switch-string-basic-var                           32.7207+-1.3018           32.1378+-0.6930           31.6393+-1.7154          might be 1.0342x faster
   switch-string-basic                               30.4102+-2.2741     ?     31.8029+-2.0485           31.2834+-2.3908        ? might be 1.0287x slower
   switch-string-big-length-tower-var                29.8733+-0.1580     ?     30.0264+-0.1825           29.9653+-0.2019        ?
   switch-string-length-tower-var                    24.0283+-0.1080           23.9895+-0.1379           23.9379+-0.1827        
   switch-string-length-tower                        17.3883+-0.0926     ?     17.4363+-0.1308           17.3367+-0.0240        
   switch-string-short                               18.2707+-2.2093           17.4141+-0.0504     ?     17.4950+-0.1288          might be 1.0443x faster
   switch                                            15.9101+-0.1820           15.8076+-0.2261     ?     15.8655+-0.1068        
   tear-off-arguments-simple                          2.3318+-0.0110     !      2.5035+-0.0435     ^      2.3370+-0.0075        ?
   tear-off-arguments                                 3.9292+-0.0630     !      4.0226+-0.0237     ^      3.8708+-0.0525          might be 1.0151x faster
   temporal-structure                                20.3433+-0.0847     ^     20.1624+-0.0896     ?     20.2465+-0.1330        
   to-int32-boolean                                  24.5740+-0.0572     ?     24.6211+-0.0874     ?     24.6845+-0.1985        ?
   undefined-test                                     4.8302+-0.0227     ?      4.8983+-0.0773            4.8250+-0.0191        
   unprofiled-licm                                   31.4245+-0.2250           31.2332+-0.4604     ?     31.3657+-0.1891        
   weird-inlining-const-prop                          2.6377+-0.0304     !      2.8759+-0.0455            2.7970+-0.1022        ! definitely 1.0604x slower

   <arithmetic>                                      21.8187+-0.1167     !     22.3675+-0.0747     ?     22.5325+-0.1116        ! definitely 1.0327x slower
   <geometric> *                                     11.0407+-0.0322     !     11.3136+-0.0194     ^     11.1981+-0.0313        ! definitely 1.0143x slower
   <harmonic>                                         5.4796+-0.0241     !      5.5966+-0.0067     ^      5.5079+-0.0167        ? might be 1.0052x slower

                                                        TipOfTree               OldPolyInline               PolyInline           PolyInline v. TipOfTree  
AsmBench:
   bigfib.cpp                                       801.0834+-4.3416          798.4468+-5.1196     ?    801.2347+-7.4501        ?
   cray.c                                           798.4033+-6.0801          793.7072+-1.7674     ?    793.9558+-5.1047        
   dry.c                                            777.6230+-11.9969    ?    784.8244+-8.6547     ^    768.0978+-0.5798          might be 1.0124x faster
   FloatMM.c                                       1148.4903+-0.4827         1147.9810+-0.7802     ?   1151.7949+-8.2028        ?
   gcc-loops.cpp                                   7572.2552+-36.6993        7564.2115+-7.4664         7554.8780+-17.8145       
   n-body.c                                        2009.4479+-2.3292     ?   2011.8420+-11.3519        2006.8976+-1.0215        
   Quicksort.c                                      703.5504+-18.4446         692.0469+-6.3676     ?    692.1325+-9.9601          might be 1.0165x faster
   stepanov_container.cpp                          5832.1202+-10.2847    ?   5845.3951+-7.2404         5833.5895+-15.5882       ?
   Towers.c                                         491.0273+-0.6002     ^    482.5228+-0.3513     !    484.4304+-1.3997        ^ definitely 1.0136x faster

   <arithmetic>                                    2237.1112+-3.4618         2235.6642+-3.3377         2231.8901+-3.7253          might be 1.0023x faster
   <geometric> *                                   1374.4525+-3.6213         1369.6198+-3.4950         1367.1694+-3.7232          might be 1.0053x faster
   <harmonic>                                      1009.2516+-3.9546         1002.7209+-3.0170         1001.2034+-3.6259        ^ definitely 1.0080x faster

                                                        TipOfTree               OldPolyInline               PolyInline           PolyInline v. TipOfTree  
All benchmarks:
   <arithmetic>                                     154.8285+-0.2870     !    156.2946+-0.2997     ^    155.7217+-0.2086        ! definitely 1.0058x slower
   <geometric>                                       17.9372+-0.0425     !     18.3193+-0.0215     ^     18.1331+-0.0367        ! definitely 1.0109x slower
   <harmonic>                                         4.9141+-0.0227     ^      4.8711+-0.0067     ^      4.8210+-0.0182        ^ definitely 1.0193x faster

                                                        TipOfTree               OldPolyInline               PolyInline           PolyInline v. TipOfTree  
Geomean of preferred means:
   <scaled-result>                                   79.4350+-0.1008     !     80.8472+-0.1551     ^     80.1155+-0.1185        ! definitely 1.0086x slower
Comment 22 Filip Pizlo 2014-08-23 21:13:31 PDT
Created attachment 237040 [details]
the wrong approach, for real

For real, this is the approach that had used GCD.  It's not as good as a purely serial approach.  I'm still going to investigate a concurrent approach, but without using GCD.
Comment 23 Filip Pizlo 2014-08-24 17:32:58 PDT
OK - it's starting to look like I've got something that works and that is a speed-up on everything.  I'll upload shortly.
Comment 24 Filip Pizlo 2014-08-24 18:00:22 PDT
Created attachment 237053 [details]
the patch
Comment 25 WebKit Commit Bot 2014-08-24 18:02:20 PDT
Attachment 237053 [details] did not pass style-queue:


ERROR: Source/WTF/wtf/OwnPtr.h:83:  The parameter name "args" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:70:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:132:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/Spectrum.h:114:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGLazyJSValue.h:99:  The parameter name "kind" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/bytecode/CallEdge.h:38:  The parameter name "count" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/bytecode/CallVariant.h:142:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGNode.h:182:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1073:  An else if statement should be written as an if statement when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
Total errors found: 10 in 73 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 26 Filip Pizlo 2014-08-24 20:22:04 PDT
Performance reports on two different machines.  Both show net speed-up if you consider the benchmarks that we care about the most.


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

VMs tested:
"NoEdge" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r172859)
"OriginalEdge" at /Volumes/Data/pizlo/quartary/OpenSource/WebKitBuild/Release/jsc (r172859)

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.

                                                          NoEdge                 OriginalEdge                                   
SunSpider:
   3d-cube                                            4.8473+-0.0947            4.7944+-0.1150          might be 1.0111x faster
   3d-morph                                           5.8644+-0.1277     ?      5.9585+-0.1790        ? might be 1.0160x slower
   3d-raytrace                                        6.1573+-0.1062     ?      6.3791+-0.2963        ? might be 1.0360x slower
   access-binary-trees                                1.9550+-0.2190            1.9016+-0.2246          might be 1.0281x faster
   access-fannkuch                                    5.6380+-0.0583     ?      5.9061+-0.5882        ? might be 1.0476x slower
   access-nbody                                       2.7178+-0.0331     ?      2.7410+-0.0444        ?
   access-nsieve                                      3.6281+-0.2108            3.4740+-0.0909          might be 1.0444x faster
   bitops-3bit-bits-in-byte                           1.6058+-0.1390     ^      1.4386+-0.0210        ^ definitely 1.1162x faster
   bitops-bits-in-byte                                3.3300+-0.0833     ?      3.3589+-0.0783        ?
   bitops-bitwise-and                                 2.0749+-0.0660     ?      2.1060+-0.0848        ? might be 1.0150x slower
   bitops-nsieve-bits                                 3.6661+-0.0843            3.5808+-0.0712          might be 1.0238x faster
   controlflow-recursive                              2.0715+-0.3358            2.0191+-0.1495          might be 1.0260x faster
   crypto-aes                                         3.9376+-0.0707            3.9072+-0.0963        
   crypto-md5                                         2.2342+-0.0829     ?      2.2422+-0.0560        ?
   crypto-sha1                                        2.5750+-0.2035            2.5121+-0.2493          might be 1.0250x faster
   date-format-tofte                                  9.0503+-0.3890            8.8080+-0.2753          might be 1.0275x faster
   date-format-xparb                                  5.2533+-0.2041     ?      5.3968+-0.1412        ? might be 1.0273x slower
   math-cordic                                        3.1400+-0.3674            2.9217+-0.0946          might be 1.0747x faster
   math-partial-sums                                  5.0568+-0.0919            5.0260+-0.1388        
   math-spectral-norm                                 1.9373+-0.2209            1.8276+-0.1143          might be 1.0600x faster
   regexp-dna                                         8.0685+-1.5339            7.6910+-1.2203          might be 1.0491x faster
   string-base64                                      4.4906+-0.7532            4.4093+-0.7236          might be 1.0184x faster
   string-fasta                                       6.7231+-0.6331            6.5398+-0.2697          might be 1.0280x faster
   string-tagcloud                                    9.7680+-0.2805            9.4676+-0.1879          might be 1.0317x faster
   string-unpack-code                                21.3592+-1.8620           20.8679+-0.3843          might be 1.0235x faster
   string-validate-input                              4.7307+-0.2053            4.7252+-0.0773        

   <arithmetic> *                                     5.0723+-0.1102            5.0000+-0.0392          might be 1.0145x faster
   <geometric>                                        4.1539+-0.0611            4.0900+-0.0443          might be 1.0156x faster
   <harmonic>                                         3.5392+-0.0745            3.4643+-0.0461          might be 1.0216x faster

                                                          NoEdge                 OriginalEdge                                   
LongSpider:
   3d-cube                                          842.5684+-5.4784     ^    819.3873+-6.3395        ^ definitely 1.0283x faster
   3d-morph                                        1520.5031+-4.7924         1517.3269+-3.9255        
   3d-raytrace                                      785.0220+-6.0387     ?    789.6619+-11.3813       ?
   access-binary-trees                             1047.9515+-7.4059         1044.2719+-6.1026        
   access-fannkuch                                  318.2774+-5.7856          317.3702+-6.1373        
   access-nbody                                     629.6464+-1.8397     ?    632.7269+-5.5777        ?
   access-nsieve                                    974.7134+-5.2599          969.1644+-12.6602       
   bitops-3bit-bits-in-byte                          45.2803+-1.3536           45.1784+-1.8556        
   bitops-bits-in-byte                               93.8600+-1.3513     !    103.3273+-3.5802        ! definitely 1.1009x slower
   bitops-nsieve-bits                               716.7527+-2.4818     ?    724.6387+-7.1358        ? might be 1.0110x slower
   controlflow-recursive                            500.6636+-8.6350     ^    476.1738+-4.0576        ^ definitely 1.0514x faster
   crypto-aes                                       721.0531+-9.2317          705.4679+-7.5017          might be 1.0221x faster
   crypto-md5                                       613.8013+-6.6029     ?    629.8641+-14.9234       ? might be 1.0262x slower
   crypto-sha1                                      713.0011+-3.0492     !    724.1548+-5.2631        ! definitely 1.0156x slower
   date-format-tofte                                782.9290+-20.6620         760.5611+-17.1576         might be 1.0294x faster
   date-format-xparb                                828.8994+-21.7037    ?    839.8141+-19.0623       ? might be 1.0132x slower
   math-cordic                                      595.7380+-1.9959     ?    596.2290+-1.9214        ?
   math-partial-sums                                546.2128+-1.5339     ?    546.9527+-1.8089        ?
   math-spectral-norm                               565.5413+-2.4491     ?    565.5567+-2.8546        ?
   string-base64                                    382.9948+-4.3472          381.9809+-7.3070        
   string-fasta                                     435.2933+-3.1558     ?    442.9768+-48.6434       ? might be 1.0177x slower
   string-tagcloud                                  219.8026+-3.3361     ?    221.5259+-2.5344        ?

   <arithmetic>                                     630.9321+-1.8274          629.7414+-1.6952          might be 1.0019x faster
   <geometric> *                                    513.7445+-0.5955     ?    514.8421+-1.8951        ? might be 1.0021x slower
   <harmonic>                                       325.3776+-3.0620     ?    329.5169+-4.1099        ? might be 1.0127x slower

                                                          NoEdge                 OriginalEdge                                   
V8Spider:
   crypto                                            59.1289+-6.1527           54.1401+-2.9165          might be 1.0921x faster
   deltablue                                         84.7660+-2.9282     !    101.2773+-2.8751        ! definitely 1.1948x slower
   earley-boyer                                      44.1268+-2.5555           43.0491+-1.0239          might be 1.0250x faster
   raytrace                                          32.9248+-2.1110     ?     34.3264+-2.6881        ? might be 1.0426x slower
   regexp                                            64.6245+-2.8286           63.6263+-2.0760          might be 1.0157x faster
   richards                                          75.7806+-1.6086     !     86.0550+-3.3720        ! definitely 1.1356x slower
   splay                                             33.5804+-0.6853           33.0387+-0.9394          might be 1.0164x faster

   <arithmetic>                                      56.4189+-0.8175     !     59.3590+-1.0394        ! definitely 1.0521x slower
   <geometric> *                                     53.0864+-0.7444     !     54.6647+-0.6365        ! definitely 1.0297x slower
   <harmonic>                                        49.8206+-0.7352     ?     50.5271+-0.4164        ? might be 1.0142x slower

                                                          NoEdge                 OriginalEdge                                   
Octane:
   encrypt                                           0.24180+-0.00272    ^     0.23444+-0.00114       ^ definitely 1.0314x faster
   decrypt                                           4.32135+-0.02635    ^     4.11357+-0.02466       ^ definitely 1.0505x faster
   deltablue                                x2       0.27267+-0.00255    ^     0.21119+-0.00229       ^ definitely 1.2911x faster
   earley                                            0.73779+-0.00525    !     0.74956+-0.00641       ! definitely 1.0160x slower
   boyer                                             5.33287+-0.02516          5.32994+-0.05543       
   navier-stokes                            x2       5.16838+-0.04323    ?     5.18000+-0.01738       ?
   raytrace                                 x2       1.62509+-0.00884    ^     1.59093+-0.01447       ^ definitely 1.0215x faster
   richards                                 x2       0.14222+-0.00146    ^     0.13222+-0.00166       ^ definitely 1.0756x faster
   splay                                    x2       0.39290+-0.00179    ^     0.38686+-0.00338       ^ definitely 1.0156x faster
   regexp                                   x2      35.56106+-0.35218    ?    35.56423+-0.24496       ?
   pdfjs                                    x2      52.18572+-0.19361    ?    52.92099+-1.53004       ? might be 1.0141x slower
   mandreel                                 x2      52.53030+-0.71364    ?    52.55126+-0.57848       ?
   gbemu                                    x2      40.41020+-0.39611    !    41.92264+-0.14305       ! definitely 1.0374x slower
   closure                                           0.57280+-0.00358          0.56464+-0.00514         might be 1.0144x faster
   jquery                                            7.16769+-0.03484    ^     7.03735+-0.02678       ^ definitely 1.0185x faster
   box2d                                    x2      13.77945+-0.12152    ?    13.88613+-0.17012       ?
   zlib                                     x2     470.55471+-21.01013   ?   478.68171+-18.73276      ? might be 1.0173x slower
   typescript                               x2     856.15588+-9.00129    ?   874.67851+-11.91900      ? might be 1.0216x slower

   <arithmetic>                                    102.53105+-1.23219    ?   104.44810+-1.81418       ? might be 1.0187x slower
   <geometric> *                                     7.42466+-0.02169    ^     7.27067+-0.03278       ^ definitely 1.0212x faster
   <harmonic>                                        0.82790+-0.00254    ^     0.75594+-0.00342       ^ definitely 1.0952x faster

                                                          NoEdge                 OriginalEdge                                   
Kraken:
   ai-astar                                          268.204+-1.402      ?     269.264+-2.056         ?
   audio-beat-detection                              102.855+-1.243            102.425+-0.615         
   audio-dft                                         158.867+-4.006            158.451+-2.367         
   audio-fft                                          76.492+-0.747      ?      76.632+-1.659         ?
   audio-oscillator                                  243.841+-2.223      ^     235.773+-2.250         ^ definitely 1.0342x faster
   imaging-darkroom                                  179.972+-1.761      ?     181.559+-5.048         ?
   imaging-desaturate                                 61.440+-1.387      ?      61.745+-1.813         ?
   imaging-gaussian-blur                             107.652+-1.326            105.845+-0.845           might be 1.0171x faster
   json-parse-financial                               44.688+-1.196      ?      46.611+-1.655         ? might be 1.0430x slower
   json-stringify-tinderbox                           63.690+-2.268      ?      63.881+-2.049         ?
   stanford-crypto-aes                                58.620+-0.595             58.586+-0.835         
   stanford-crypto-ccm                                54.828+-6.911      ?      56.654+-5.999         ? might be 1.0333x slower
   stanford-crypto-pbkdf2                            172.781+-2.815            170.348+-2.326           might be 1.0143x faster
   stanford-crypto-sha256-iterative                   54.186+-1.816      ?      54.745+-1.933         ? might be 1.0103x slower

   <arithmetic> *                                    117.723+-0.601            117.323+-0.487           might be 1.0034x faster
   <geometric>                                        98.651+-0.512      ?      98.910+-0.587         ? might be 1.0026x slower
   <harmonic>                                         84.371+-0.650      ?      85.151+-0.849         ? might be 1.0092x slower

                                                          NoEdge                 OriginalEdge                                   
JSRegress:
   adapt-to-double-divide                            15.9111+-0.3794           15.4702+-0.1769          might be 1.0285x faster
   aliased-arguments-getbyval                         0.8621+-0.1134            0.7594+-0.0111          might be 1.1352x faster
   allocate-big-object                                2.2462+-0.1378            2.1949+-0.0361          might be 1.0234x faster
   arity-mismatch-inlining                            0.7242+-0.0304     ?      0.7278+-0.0240        ?
   array-access-polymorphic-structure                 6.7087+-0.8464     ?      7.0485+-1.2418        ? might be 1.0507x slower
   array-nonarray-polymorhpic-access                 35.4830+-0.4827           34.9902+-0.5444          might be 1.0141x faster
   array-prototype-every                             75.6961+-3.9991           73.9722+-1.7908          might be 1.0233x faster
   array-prototype-forEach                           74.0184+-1.0229     ?     74.5172+-2.0256        ?
   array-prototype-map                               88.4963+-1.6784     ?     88.6663+-1.2885        ?
   array-prototype-some                              75.1981+-3.4914           74.1090+-1.4905          might be 1.0147x faster
   array-splice-contiguous                           39.9036+-1.5865     ?     41.1190+-2.2504        ? might be 1.0305x slower
   array-with-double-add                              4.1946+-0.0772     ?      4.2574+-0.0634        ? might be 1.0150x slower
   array-with-double-increment                        3.1049+-0.1840     ?      3.1573+-0.1417        ? might be 1.0169x slower
   array-with-double-mul-add                          4.7375+-0.0480            4.6980+-0.0617        
   array-with-double-sum                              3.1662+-0.1059     ?      3.2035+-0.1582        ? might be 1.0118x slower
   array-with-int32-add-sub                           7.1881+-0.1429            7.1535+-0.0247        
   array-with-int32-or-double-sum                     3.2732+-0.0985            3.1968+-0.0909          might be 1.0239x faster
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     69.5790+-3.5262     ?     70.1785+-3.3918        ?
   ArrayBuffer-DataView-alloc-long-lived             20.9268+-2.2182     ?     21.2425+-1.8890        ? might be 1.0151x slower
   ArrayBuffer-Int32Array-byteOffset                  3.2653+-0.0377     ?      3.3121+-0.0566        ? might be 1.0143x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     69.8014+-2.8434     ?     69.8719+-1.4509        ?
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     31.8586+-1.9146           30.6895+-0.5594          might be 1.0381x faster
   ArrayBuffer-Int8Array-alloc-long-lived            18.7221+-0.2388     ?     19.5688+-1.5233        ? might be 1.0452x slower
   ArrayBuffer-Int8Array-alloc                       18.3263+-2.1856           17.9643+-1.8646          might be 1.0202x faster
   asmjs_bool_bug                                     7.8994+-1.3570            7.2526+-0.1980          might be 1.0892x faster
   assign-custom-setter-polymorphic                   2.9304+-0.0292     ?      3.0886+-0.1924        ? might be 1.0540x slower
   assign-custom-setter                               4.1167+-0.0826     ?      4.2771+-0.0887        ? might be 1.0390x slower
   basic-set                                          9.5746+-0.2563     ?      9.9709+-0.7458        ? might be 1.0414x slower
   big-int-mul                                        3.7051+-0.2071     ?      3.9315+-0.0989        ? might be 1.0611x slower
   boolean-test                                       2.9324+-0.1512            2.8737+-0.1060          might be 1.0204x faster
   branch-fold                                        3.4703+-0.0202     ?      3.5655+-0.0910        ? might be 1.0274x slower
   by-val-generic                                     8.1034+-0.3149            7.9562+-0.2035          might be 1.0185x faster
   call-spread-apply                                 15.8373+-1.5391     ^     14.0627+-0.1449        ^ definitely 1.1262x faster
   call-spread-call                                   6.5248+-1.0521            5.9438+-0.1489          might be 1.0978x faster
   captured-assignments                               0.4024+-0.0192            0.3993+-0.0171        
   cast-int-to-double                                 5.2120+-0.4517            5.0604+-0.0951          might be 1.0299x faster
   cell-argument                                      7.6795+-0.1549     ?      7.6952+-0.2505        ?
   cfg-simplify                                       2.7973+-0.0675            2.7950+-0.0832        
   chain-getter-access                                8.5792+-0.2557            8.4199+-0.1241          might be 1.0189x faster
   cmpeq-obj-to-obj-other                             8.7150+-0.6359     ?      8.9523+-0.3819        ? might be 1.0272x slower
   constant-test                                      4.7135+-0.0420            4.6895+-0.0396        
   DataView-custom-properties                        72.8916+-1.9729     ?     72.9229+-2.4997        ?
   delay-tear-off-arguments-strictmode                2.4387+-0.0392     ?      2.5474+-0.2668        ? might be 1.0446x slower
   destructuring-arguments                            5.0554+-0.2161     ?      5.0835+-0.1511        ?
   destructuring-swap                                 4.7841+-0.0539     ?      4.9194+-0.2878        ? might be 1.0283x slower
   direct-arguments-getbyval                          0.8061+-0.1090            0.7881+-0.0413          might be 1.0228x faster
   double-get-by-val-out-of-bounds                    4.5018+-0.1201            4.4972+-0.1434        
   double-pollution-getbyval                          8.6908+-0.1331     ?      8.7819+-0.1349        ? might be 1.0105x slower
   double-pollution-putbyoffset                       4.1869+-0.3003            4.1423+-0.4187          might be 1.0108x faster
   double-to-int32-typed-array-no-inline              2.1236+-0.1380            2.0773+-0.1395          might be 1.0223x faster
   double-to-int32-typed-array                        1.6457+-0.0163     ?      1.7067+-0.1082        ? might be 1.0371x slower
   double-to-uint32-typed-array-no-inline             2.2726+-0.2554     ?      2.4224+-0.2973        ? might be 1.0659x slower
   double-to-uint32-typed-array                       1.8773+-0.1858            1.8276+-0.0998          might be 1.0272x faster
   empty-string-plus-int                              6.8245+-0.1863     ?      6.9182+-0.3005        ? might be 1.0137x slower
   emscripten-cube2hash                              37.1687+-1.7054           37.0793+-1.6314        
   external-arguments-getbyval                        1.3024+-0.0599            1.2797+-0.0251          might be 1.0177x faster
   external-arguments-putbyval                        1.9347+-0.0804     ?      1.9585+-0.1900        ? might be 1.0123x slower
   fixed-typed-array-storage-var-index                1.1995+-0.2246            1.1874+-0.0808          might be 1.0102x faster
   fixed-typed-array-storage                          0.8004+-0.0254     ?      0.8008+-0.0396        ?
   Float32Array-matrix-mult                           4.2402+-0.1553            4.1408+-0.0512          might be 1.0240x faster
   Float32Array-to-Float64Array-set                  53.7261+-0.4866           51.1899+-2.0759          might be 1.0495x faster
   Float64Array-alloc-long-lived                     65.4648+-1.4425           65.1720+-1.2079        
   Float64Array-to-Int16Array-set                    68.6312+-2.4850     !     77.6664+-2.8946        ! definitely 1.1316x slower
   fold-double-to-int                                15.2721+-1.2254     ?     15.3154+-1.3821        ?
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     13.7276+-0.1743     !     16.7234+-0.6794        ! definitely 1.2182x slower
   fold-get-by-id-to-multi-get-by-offset             13.0972+-0.3694     !     15.3417+-0.3027        ! definitely 1.1714x slower
   fold-multi-get-by-offset-to-get-by-offset   
                                                      9.9243+-1.3441     !     12.9417+-0.9058        ! definitely 1.3040x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                     10.7543+-0.9525     !     12.9153+-0.5390        ! definitely 1.2009x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                     11.1685+-1.7139     ?     13.3257+-1.3338        ? might be 1.1932x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                      9.9705+-1.3328     ?     11.3238+-0.6811        ? might be 1.1357x slower
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     13.0063+-1.5383     ?     15.3808+-1.1142        ? might be 1.1826x slower
   fold-put-by-id-to-multi-put-by-offset             14.5850+-1.4851     !     17.0713+-0.5377        ! definitely 1.1705x slower
   fold-put-structure                                 9.0202+-1.4336     ?     11.9835+-1.5647        ? might be 1.3285x slower
   for-of-iterate-array-entries                       6.5238+-0.6746     ^      5.4028+-0.1032        ^ definitely 1.2075x faster
   for-of-iterate-array-keys                          2.6152+-0.5891     ?      2.7003+-0.1956        ? might be 1.0325x slower
   for-of-iterate-array-values                        2.1786+-0.0832     ?      2.2372+-0.1414        ? might be 1.0269x slower
   fround                                            16.8982+-0.6107     ?     16.9528+-0.6850        ?
   ftl-library-inlining-dataview                     77.3541+-3.2728           74.9972+-7.2996          might be 1.0314x faster
   ftl-library-inlining                              85.4471+-24.8381          76.5651+-1.7014          might be 1.1160x faster
   function-dot-apply                                 1.3936+-0.3093            1.2738+-0.0818          might be 1.0940x faster
   function-test                                      3.2131+-0.1507     ?      3.2445+-0.0373        ?
   function-with-eval                                62.2939+-0.8023     ?     65.5090+-3.3291        ? might be 1.0516x slower
   gcse-poly-get-less-obvious                        19.3448+-1.4976           19.1231+-1.1029          might be 1.0116x faster
   gcse-poly-get                                     20.3541+-1.8252     ?     21.6840+-1.5183        ? might be 1.0653x slower
   gcse                                               4.6964+-1.2257            4.2856+-0.1788          might be 1.0958x faster
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.6061+-0.0825            2.5830+-0.0350        
   get-by-id-bimorphic-check-structure-elimination   
                                                      6.3439+-0.0930     ?      6.6302+-0.8366        ? might be 1.0451x slower
   get-by-id-chain-from-try-block                     6.6023+-1.2225            5.7734+-0.1104          might be 1.1436x faster
   get-by-id-check-structure-elimination              5.5341+-1.1783            5.0542+-0.0145          might be 1.0949x faster
   get-by-id-proto-or-self                           15.8207+-0.8941     ?     16.5671+-1.4006        ? might be 1.0472x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      2.7938+-0.0426     ?      2.8753+-0.2118        ? might be 1.0292x slower
   get-by-id-self-or-proto                           16.4991+-0.8380     ?     16.5658+-1.2540        ?
   get-by-val-out-of-bounds                           4.2852+-0.0358     ?      4.2942+-0.1340        ?
   get_callee_monomorphic                             3.5390+-0.2195            3.5242+-0.1881        
   get_callee_polymorphic                             3.5861+-0.4303            3.4099+-0.2039          might be 1.0517x faster
   getter-no-activation                               4.8639+-0.2115            4.8145+-0.2318          might be 1.0103x faster
   getter-richards                                  110.5074+-4.8510     !    119.5030+-3.9497        ! definitely 1.0814x slower
   getter                                             5.2279+-0.4467            4.9337+-0.1508          might be 1.0596x faster
   global-var-const-infer-fire-from-opt               0.8542+-0.0528            0.8513+-0.0689        
   global-var-const-infer                             0.7503+-0.0476            0.7448+-0.0769        
   HashMap-put-get-iterate-keys                      25.8888+-0.4146           25.8401+-0.2909        
   HashMap-put-get-iterate                           26.0439+-0.7772           25.7233+-0.4655          might be 1.0125x faster
   HashMap-string-put-get-iterate                    30.1717+-1.3682     ?     30.5080+-2.1760        ? might be 1.0111x slower
   hoist-make-rope                                   10.6191+-1.0045     ?     11.2228+-0.7758        ? might be 1.0568x slower
   hoist-poly-check-structure-effectful-loop   
                                                      4.9403+-0.2043            4.8663+-0.0317          might be 1.0152x faster
   hoist-poly-check-structure                         3.9851+-0.5505            3.7021+-0.0620          might be 1.0765x faster
   imul-double-only                                   6.2677+-0.4827     ?      7.0034+-1.0197        ? might be 1.1174x slower
   imul-int-only                                      8.4528+-0.3082            8.3773+-0.1552        
   imul-mixed                                         6.5246+-0.9244            6.1228+-0.0462          might be 1.0656x faster
   in-four-cases                                     18.6560+-0.3046     ?     19.1302+-1.0203        ? might be 1.0254x slower
   in-one-case-false                                  9.7225+-0.1670            9.6523+-0.0895        
   in-one-case-true                                   9.8327+-0.4384            9.6627+-0.1184          might be 1.0176x faster
   in-two-cases                                      10.1604+-0.3205            9.9874+-0.0396          might be 1.0173x faster
   indexed-properties-in-objects                      2.7975+-0.0979     ?      2.8376+-0.2024        ? might be 1.0143x slower
   infer-closure-const-then-mov-no-inline             3.4567+-0.3130     ?      3.4683+-0.1833        ?
   infer-closure-const-then-mov                      21.2340+-1.6698           21.1328+-1.8970        
   infer-closure-const-then-put-to-scope-no-inline   
                                                     11.3818+-1.5609           10.6845+-0.1597          might be 1.0653x faster
   infer-closure-const-then-put-to-scope             23.1054+-1.7867           22.2324+-0.1961          might be 1.0393x faster
   infer-closure-const-then-reenter-no-inline   
                                                     49.1418+-1.8046     ?     49.2811+-1.5624        ?
   infer-closure-const-then-reenter                  23.4318+-1.6904           22.1821+-1.3155          might be 1.0563x faster
   infer-constant-global-property                     3.4155+-0.1272     ?      3.4680+-0.1178        ? might be 1.0154x slower
   infer-constant-property                            2.5532+-0.0242            2.5520+-0.0489        
   infer-one-time-closure-ten-vars                   11.3206+-0.5638     ?     11.4216+-0.3024        ?
   infer-one-time-closure-two-vars                   11.6942+-1.4416     ?     11.7767+-1.6861        ?
   infer-one-time-closure                            10.9237+-0.2231     ?     11.2741+-1.0375        ? might be 1.0321x slower
   infer-one-time-deep-closure                       21.4851+-1.5776           19.6698+-0.3563          might be 1.0923x faster
   inline-arguments-access                            1.6934+-0.7321            1.2264+-0.0196          might be 1.3808x faster
   inline-arguments-aliased-access                    1.6298+-0.2979            1.5596+-0.2434          might be 1.0450x faster
   inline-arguments-local-escape                     12.4895+-1.2815           12.4754+-1.1180        
   inline-get-scoped-var                              4.5354+-0.1123     ?      4.6167+-0.3023        ? might be 1.0179x slower
   inlined-put-by-id-transition                       9.5757+-0.4593            9.1686+-0.4597          might be 1.0444x faster
   int-or-other-abs-then-get-by-val                   5.0558+-0.6787            4.6918+-0.0407          might be 1.0776x faster
   int-or-other-abs-zero-then-get-by-val             17.8658+-0.8633           17.1224+-0.8024          might be 1.0434x faster
   int-or-other-add-then-get-by-val                   4.1244+-0.0332     ?      4.3808+-0.6842        ? might be 1.0622x slower
   int-or-other-add                                   5.0975+-0.2398     ?      5.2316+-0.5137        ? might be 1.0263x slower
   int-or-other-div-then-get-by-val                   4.1434+-0.0275     ?      4.5543+-0.6530        ? might be 1.0992x slower
   int-or-other-max-then-get-by-val                   4.7247+-0.6093            4.3715+-0.2153          might be 1.0808x faster
   int-or-other-min-then-get-by-val                   4.4168+-0.3083     ?      4.6044+-0.8284        ? might be 1.0425x slower
   int-or-other-mod-then-get-by-val                   3.8519+-0.1236     ?      4.0944+-0.7097        ? might be 1.0630x slower
   int-or-other-mul-then-get-by-val                   3.7355+-0.0173     ?      4.0438+-0.8224        ? might be 1.0825x slower
   int-or-other-neg-then-get-by-val                   4.5945+-0.1655     ?      4.6135+-0.1305        ?
   int-or-other-neg-zero-then-get-by-val             18.2699+-1.7508           17.2702+-1.4201          might be 1.0579x faster
   int-or-other-sub-then-get-by-val                   4.1020+-0.0152     ?      4.1439+-0.0968        ? might be 1.0102x slower
   int-or-other-sub                                   3.9244+-0.6470            3.5462+-0.4530          might be 1.1066x faster
   int-overflow-local                                 4.1763+-0.1527            4.1477+-0.0530        
   Int16Array-alloc-long-lived                       48.3547+-1.2463     ?     49.4706+-1.9856        ? might be 1.0231x slower
   Int16Array-bubble-sort-with-byteLength            20.3020+-0.3422           20.2823+-0.1688        
   Int16Array-bubble-sort                            23.3156+-1.8187           21.2502+-0.4455          might be 1.0972x faster
   Int16Array-load-int-mul                            1.3829+-0.0426            1.3620+-0.0305          might be 1.0153x faster
   Int16Array-to-Int32Array-set                      52.4358+-1.6477     !     57.8646+-2.3241        ! definitely 1.1035x slower
   Int32Array-alloc-large                            24.3643+-1.0646     ?     24.9952+-1.5593        ? might be 1.0259x slower
   Int32Array-alloc-long-lived                       52.6765+-0.8567     ?     53.6390+-2.0571        ? might be 1.0183x slower
   Int32Array-alloc                                   3.1096+-0.1966            2.9393+-0.0523          might be 1.0579x faster
   Int32Array-Int8Array-view-alloc                    9.8758+-0.8232            9.4195+-0.3729          might be 1.0484x faster
   int52-spill                                        7.3663+-0.4578            7.2469+-0.2739          might be 1.0165x faster
   Int8Array-alloc-long-lived                        45.1335+-1.5725           44.5667+-1.3823          might be 1.0127x faster
   Int8Array-load-with-byteLength                     3.2445+-0.0181            3.2413+-0.0496        
   Int8Array-load                                     3.2509+-0.0614     ?      3.3375+-0.1489        ? might be 1.0266x slower
   integer-divide                                    11.9307+-1.1483     ?     12.0754+-1.2857        ? might be 1.0121x slower
   integer-modulo                                     1.9662+-0.0202     ?      2.0782+-0.3246        ? might be 1.0570x slower
   large-int-captured                                 6.2275+-0.5615     ?      6.7668+-0.8904        ? might be 1.0866x slower
   large-int-neg                                     16.7774+-1.5628     ?     16.8585+-1.6128        ?
   large-int                                         14.8174+-0.8984           14.5152+-0.2137          might be 1.0208x faster
   logical-not                                        4.5780+-0.5774            4.3991+-0.1087          might be 1.0407x faster
   lots-of-fields                                     9.1056+-0.1623     ?      9.5751+-0.5806        ? might be 1.0516x slower
   make-indexed-storage                               2.9815+-0.2547            2.8788+-0.3443          might be 1.0357x faster
   make-rope-cse                                      4.2918+-0.4433     ?      4.7550+-0.5868        ? might be 1.1079x slower
   marsaglia-larger-ints                             38.9830+-2.2262           37.2422+-1.0770          might be 1.0467x faster
   marsaglia-osr-entry                               22.1200+-0.6642     ?     22.7126+-1.7192        ? might be 1.0268x slower
   method-on-number                                  18.1733+-1.5487           17.4480+-0.1897          might be 1.0416x faster
   misc-strict-eq                                    34.5827+-0.2961           34.5660+-1.0912        
   negative-zero-divide                               0.2840+-0.0107     ?      0.2914+-0.0084        ? might be 1.0259x slower
   negative-zero-modulo                               0.2907+-0.0075     ?      0.2935+-0.0136        ?
   negative-zero-negate                               0.2782+-0.0123     ?      0.2872+-0.0425        ? might be 1.0325x slower
   nested-function-parsing                           26.6517+-0.1572     ?     27.3912+-1.5352        ? might be 1.0277x slower
   new-array-buffer-dead                              2.6147+-0.1604            2.5889+-0.0607        
   new-array-buffer-push                              7.3367+-1.1664            6.8397+-0.3621          might be 1.0727x faster
   new-array-dead                                    10.1835+-0.8362            9.8870+-0.1967          might be 1.0300x faster
   new-array-push                                     4.8244+-0.0982            4.8015+-0.1095        
   number-test                                        2.8549+-0.0639     ?      2.8715+-0.1602        ?
   object-closure-call                                5.6683+-0.0775            5.6558+-0.1248        
   object-test                                        3.0335+-0.3794            2.9198+-0.0143          might be 1.0390x faster
   poly-chain-access-different-prototypes-simple   
                                                      3.1692+-0.0404     ?      3.1778+-0.0484        ?
   poly-chain-access-different-prototypes             2.6706+-0.2488            2.4948+-0.1757          might be 1.0705x faster
   poly-chain-access-simpler                          3.2211+-0.0885            3.1744+-0.0364          might be 1.0147x faster
   poly-chain-access                                  2.8715+-0.3457            2.6664+-0.0817          might be 1.0769x faster
   poly-stricteq                                     58.8503+-1.0791     ?     59.3150+-1.4607        ?
   polymorphic-array-call                             1.5146+-0.0350            1.4777+-0.0275          might be 1.0250x faster
   polymorphic-get-by-id                              3.0059+-0.0711     ?      3.0193+-0.0372        ?
   polymorphic-put-by-id                             48.1945+-11.9810    ?     49.2583+-11.9805       ? might be 1.0221x slower
   polymorphic-structure                             16.1277+-0.9380           15.6676+-0.4752          might be 1.0294x faster
   polyvariant-monomorphic-get-by-id                  8.2548+-0.0496     ?      8.3204+-0.1054        ?
   proto-getter-access                                8.5110+-0.1902            8.3546+-0.1638          might be 1.0187x faster
   put-by-id-replace-and-transition                   8.9042+-0.6722            8.6540+-0.4206          might be 1.0289x faster
   put-by-id-slightly-polymorphic                     2.8051+-0.1792            2.7749+-0.1026          might be 1.0109x faster
   put-by-id                                         12.9309+-0.3145     ?     13.5411+-0.3987        ? might be 1.0472x slower
   put-by-val-large-index-blank-indexing-type   
                                                      6.5837+-0.7903     ?      7.0031+-1.5198        ? might be 1.0637x slower
   put-by-val-machine-int                             2.5360+-0.1726            2.4324+-0.0417          might be 1.0426x faster
   rare-osr-exit-on-local                            15.6233+-1.2658           15.5515+-1.4393        
   register-pressure-from-osr                        21.5783+-0.4031           21.5454+-0.4809        
   setter                                             5.5010+-0.6955            5.3040+-0.1353          might be 1.0371x faster
   simple-activation-demo                            25.6603+-1.6143           24.4016+-0.2851          might be 1.0516x faster
   simple-getter-access                              11.2225+-0.1747           11.0363+-0.1479          might be 1.0169x faster
   slow-array-profile-convergence                     2.6027+-0.0602     ?      2.6858+-0.1195        ? might be 1.0320x slower
   slow-convergence                                   2.9814+-0.0624     ?      3.0376+-0.0896        ? might be 1.0188x slower
   sparse-conditional                                 1.0778+-0.1098            1.0367+-0.1096          might be 1.0397x faster
   splice-to-remove                                  16.6445+-1.3590           16.0108+-0.1856          might be 1.0396x faster
   string-char-code-at                               16.8199+-1.2434           16.1958+-0.3733          might be 1.0385x faster
   string-concat-object                               2.1056+-0.2109            2.0127+-0.0591          might be 1.0462x faster
   string-concat-pair-object                          2.0357+-0.2461            1.9605+-0.0422          might be 1.0384x faster
   string-concat-pair-simple                         10.8020+-0.4288     ?     10.8233+-0.5840        ?
   string-concat-simple                              11.1286+-0.8912           11.0067+-0.4792          might be 1.0111x faster
   string-cons-repeat                                 7.6390+-0.5620            7.1277+-0.2877          might be 1.0717x faster
   string-cons-tower                                  7.5937+-0.1633     ?      8.2820+-0.9543        ? might be 1.0906x slower
   string-equality                                   18.4849+-1.4579           18.4778+-1.0770        
   string-get-by-val-big-char                         8.6880+-0.3581     ?      8.9099+-0.7731        ? might be 1.0255x slower
   string-get-by-val-out-of-bounds-insane             3.5379+-0.1419            3.4765+-0.0527          might be 1.0177x faster
   string-get-by-val-out-of-bounds                    5.2203+-0.8339            4.7222+-0.0504          might be 1.1055x faster
   string-get-by-val                                  3.1877+-0.1266     ?      3.1895+-0.1588        ?
   string-hash                                        1.9369+-0.1679     ?      2.1098+-0.2733        ? might be 1.0893x slower
   string-long-ident-equality                        14.9052+-0.7969     ?     15.0607+-1.2600        ? might be 1.0104x slower
   string-repeat-arith                               35.6364+-1.8490           33.9522+-2.6905          might be 1.0496x faster
   string-sub                                        66.7113+-1.6644     ?     67.1939+-1.5708        ?
   string-test                                        2.7688+-0.0983            2.7147+-0.0765          might be 1.0199x faster
   string-var-equality                               30.3304+-0.1587     ?     31.2149+-1.3281        ? might be 1.0292x slower
   structure-hoist-over-transitions                   2.3429+-0.0345     ?      2.3896+-0.0396        ? might be 1.0200x slower
   substring-concat-weird                            38.4196+-1.7533     ?     38.9191+-1.4116        ? might be 1.0130x slower
   substring-concat                                  40.1971+-1.8932     ?     40.8398+-1.7974        ? might be 1.0160x slower
   substring                                         46.1918+-1.6901           45.6327+-2.0348          might be 1.0123x faster
   switch-char-constant                               2.5327+-0.0277     ?      2.5557+-0.0687        ?
   switch-char                                        6.2882+-0.7865            5.9194+-0.1049          might be 1.0623x faster
   switch-constant                                    7.8412+-0.4152            7.3651+-0.2029          might be 1.0646x faster
   switch-string-basic-big-var                       14.9858+-1.5225     ?     15.5098+-1.9016        ? might be 1.0350x slower
   switch-string-basic-big                           14.3429+-1.4372           14.1205+-0.6040          might be 1.0157x faster
   switch-string-basic-var                           14.9522+-1.3434     ?     16.0954+-2.1056        ? might be 1.0765x slower
   switch-string-basic                               13.2338+-0.2802     ?     13.9162+-1.5945        ? might be 1.0516x slower
   switch-string-big-length-tower-var                21.3246+-1.7976           20.5445+-1.5737          might be 1.0380x faster
   switch-string-length-tower-var                    15.5506+-1.6214           15.3820+-1.3330          might be 1.0110x faster
   switch-string-length-tower                        13.0862+-1.5414     ?     13.5650+-1.7874        ? might be 1.0366x slower
   switch-string-short                               12.5442+-0.5609     ?     14.5010+-1.9328        ? might be 1.1560x slower
   switch                                            11.7876+-0.6867           11.6716+-0.6270        
   tear-off-arguments-simple                          1.6832+-0.2013            1.6030+-0.0714          might be 1.0500x faster
   tear-off-arguments                                 2.6537+-0.0916            2.6357+-0.1202        
   temporal-structure                                12.1997+-0.5764           11.9831+-0.2281          might be 1.0181x faster
   to-int32-boolean                                  13.9837+-1.4621     ?     14.0686+-0.8808        ?
   undefined-test                                     2.7749+-0.0561     ?      2.7833+-0.0249        ?
   unprofiled-licm                                   22.7968+-2.0947           22.0306+-1.5355          might be 1.0348x faster
   weird-inlining-const-prop                          1.9047+-0.2366            1.8256+-0.1197          might be 1.0433x faster

   <arithmetic>                                      14.7120+-0.1571     ?     14.8053+-0.0908        ? might be 1.0063x slower
   <geometric> *                                      7.6077+-0.0367     ?      7.6211+-0.0333        ? might be 1.0018x slower
   <harmonic>                                         3.7796+-0.0316            3.7639+-0.0306          might be 1.0042x faster

                                                          NoEdge                 OriginalEdge                                   
AsmBench:
   bigfib.cpp                                       482.0354+-3.6144     ?    486.8372+-4.3456        ?
   cray.c                                           466.2465+-6.9750          460.3600+-3.1552          might be 1.0128x faster
   dry.c                                            499.1194+-7.1821          491.2013+-6.2425          might be 1.0161x faster
   FloatMM.c                                        718.8969+-2.1531     !    735.4163+-2.3293        ! definitely 1.0230x slower
   gcc-loops.cpp                                   4335.2929+-15.3065    ?   4341.2349+-29.8479       ?
   n-body.c                                        1000.7402+-5.2103          991.7749+-3.8531        
   Quicksort.c                                      430.2230+-2.4660          424.4895+-4.2282          might be 1.0135x faster
   stepanov_container.cpp                          3597.1681+-61.7194        3579.1082+-13.4140       
   Towers.c                                         275.1847+-1.8351     ?    276.2987+-2.5164        ?

   <arithmetic>                                    1311.6563+-6.5661         1309.6357+-3.7600          might be 1.0015x faster
   <geometric> *                                    809.3140+-2.8585          807.6984+-2.4090          might be 1.0020x faster
   <harmonic>                                       596.7762+-1.8347          595.4123+-2.9594          might be 1.0023x faster

                                                          NoEdge                 OriginalEdge                                   
All benchmarks:
   <arithmetic>                                      97.1485+-0.3264     ?     97.2872+-0.2141        ? might be 1.0014x slower
   <geometric>                                       12.1848+-0.0447           12.1737+-0.0391          might be 1.0009x faster
   <harmonic>                                         3.2484+-0.0174     ^      3.1375+-0.0144        ^ definitely 1.0354x faster

                                                          NoEdge                 OriginalEdge                                   
Geomean of preferred means:
   <scaled-result>                                   49.6551+-0.2149           49.6027+-0.1224          might be 1.0011x faster
Comment 27 Filip Pizlo 2014-08-24 20:22:19 PDT
And the other machine:



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

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r172859)
"PolyInline" at /Volumes/Data/fromMiniMe/quartary/OpenSource/WebKitBuild/Release/jsc (r172859)

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                 PolyInline                                    
SunSpider:
   3d-cube                                            7.6417+-0.1425     ?      7.6646+-0.1572        ?
   3d-morph                                           9.7458+-0.1848            9.7160+-0.1626        
   3d-raytrace                                        9.6039+-0.1371     ?      9.6735+-0.1106        ?
   access-binary-trees                                2.8898+-0.1344     ?      2.9089+-0.1210        ?
   access-fannkuch                                    9.3876+-0.1983     ?      9.5025+-0.1697        ? might be 1.0122x slower
   access-nbody                                       4.7691+-0.0513     ?      4.7718+-0.0138        ?
   access-nsieve                                      5.8240+-0.1303            5.7928+-0.1274        
   bitops-3bit-bits-in-byte                           2.0142+-0.0148     ?      2.0529+-0.0736        ? might be 1.0192x slower
   bitops-bits-in-byte                                6.8547+-0.0138     ?      6.8665+-0.0363        ?
   bitops-bitwise-and                                 3.1777+-0.0162     ?      3.1884+-0.0056        ?
   bitops-nsieve-bits                                 5.6684+-0.0317     ?      5.7118+-0.0936        ?
   controlflow-recursive                              2.9793+-0.0949     ?      3.0256+-0.0419        ? might be 1.0155x slower
   crypto-aes                                         6.2204+-0.0272     ?      6.2342+-0.0437        ?
   crypto-md5                                         3.5196+-0.0805     ?      3.5896+-0.1039        ? might be 1.0199x slower
   crypto-sha1                                        3.6911+-0.1204     ?      3.6951+-0.1273        ?
   date-format-tofte                                 13.4150+-0.0833     ^     12.9730+-0.1729        ^ definitely 1.0341x faster
   date-format-xparb                                  8.3730+-0.1538     !      8.9183+-0.3152        ! definitely 1.0651x slower
   math-cordic                                        4.6856+-0.0550            4.6676+-0.0593        
   math-partial-sums                                 10.4670+-0.1425           10.4116+-0.1630        
   math-spectral-norm                                 3.0164+-0.0302     ?      3.0216+-0.0250        ?
   regexp-dna                                        11.7566+-0.2298           11.7492+-0.1535        
   string-base64                                      6.3475+-0.0331     ?      6.3821+-0.0893        ?
   string-fasta                                      10.1973+-0.2379           10.0804+-0.2544          might be 1.0116x faster
   string-tagcloud                                   15.2227+-0.1573           15.1354+-0.1027        
   string-unpack-code                                30.7170+-0.3014     ?     30.9201+-0.1492        ?
   string-validate-input                              7.5859+-0.0820     ?      7.5934+-0.1610        ?

   <arithmetic> *                                     7.9143+-0.0192     ?      7.9326+-0.0214        ? might be 1.0023x slower
   <geometric>                                        6.5135+-0.0168     ?      6.5406+-0.0221        ? might be 1.0042x slower
   <harmonic>                                         5.4585+-0.0204     ?      5.4934+-0.0281        ? might be 1.0064x slower

                                                        TipOfTree                 PolyInline                                    
LongSpider:
   3d-cube                                         1362.1188+-23.3389        1356.5332+-8.0583        
   3d-morph                                        2273.7000+-2.4353     ?   2275.1687+-4.6213        ?
   3d-raytrace                                     1319.6954+-8.1454     ?   1339.1442+-33.1985       ? might be 1.0147x slower
   access-binary-trees                             1672.5390+-4.3509     ?   1677.0076+-9.2447        ?
   access-fannkuch                                  522.6868+-15.3211    ?    536.7624+-26.5314       ? might be 1.0269x slower
   access-nbody                                    1246.2704+-1.1416     ?   1247.4120+-3.3324        ?
   access-nsieve                                   1615.5767+-4.6635         1612.7738+-3.6321        
   bitops-3bit-bits-in-byte                          57.5059+-0.2064     ?     57.6591+-0.2030        ?
   bitops-bits-in-byte                              396.1296+-5.5647          391.4351+-3.9145          might be 1.0120x faster
   bitops-nsieve-bits                              1179.4961+-6.3083     ?   1180.5186+-6.1871        ?
   controlflow-recursive                            865.7085+-1.4374     ?    873.6347+-20.5855       ?
   crypto-aes                                      1157.5219+-25.5496        1140.0722+-26.8268         might be 1.0153x faster
   crypto-md5                                       963.3516+-19.5316    ?    975.2854+-29.4450       ? might be 1.0124x slower
   crypto-sha1                                     1196.9741+-4.8196     ?   1198.4860+-4.7225        ?
   date-format-tofte                               1208.6256+-19.7178        1188.6861+-21.8736         might be 1.0168x faster
   date-format-xparb                               1300.4768+-16.9396    !   1396.9031+-63.0692       ! definitely 1.0741x slower
   math-cordic                                      811.4911+-0.8017     ?    813.4789+-4.4890        ?
   math-partial-sums                               1327.8299+-28.7805        1316.1350+-2.6537        
   math-spectral-norm                              1297.2773+-2.9668     ?   1302.5513+-17.4491       ?
   string-base64                                    590.3318+-3.7112     !    606.2293+-2.5908        ! definitely 1.0269x slower
   string-fasta                                     694.8701+-2.9479     ?    719.1703+-23.9962       ? might be 1.0350x slower
   string-tagcloud                                  362.7490+-4.4563     ?    364.6218+-2.4075        ?

   <arithmetic>                                    1064.6785+-1.8617     !   1071.3486+-3.1591        ! definitely 1.0063x slower
   <geometric> *                                    887.7965+-1.3726     !    894.0869+-2.5645        ! definitely 1.0071x slower
   <harmonic>                                       539.6869+-0.5961     !    542.7310+-1.1555        ! definitely 1.0056x slower

                                                        TipOfTree                 PolyInline                                    
V8Spider:
   crypto                                            81.8224+-0.9865           81.5522+-0.9030        
   deltablue                                         98.9138+-0.7415     !    121.6165+-0.8403        ! definitely 1.2295x slower
   earley-boyer                                      75.0022+-1.6672           74.7264+-1.9566        
   raytrace                                          44.4572+-0.5908     !     47.2005+-0.3877        ! definitely 1.0617x slower
   regexp                                           104.0005+-0.2074     ?    105.7373+-2.9882        ? might be 1.0167x slower
   richards                                         106.8020+-1.2684     !    118.9234+-1.2036        ! definitely 1.1135x slower
   splay                                             49.7790+-0.5114     ?     50.4914+-0.6756        ? might be 1.0143x slower

   <arithmetic>                                      80.1110+-0.3317     !     85.7497+-0.6706        ! definitely 1.0704x slower
   <geometric> *                                     76.1987+-0.2431     !     80.6520+-0.6375        ! definitely 1.0584x slower
   <harmonic>                                        71.9892+-0.2134     !     75.4808+-0.5826        ! definitely 1.0485x slower

                                                        TipOfTree                 PolyInline                                    
Octane:
   encrypt                                           0.39505+-0.00037          0.39478+-0.00029       
   decrypt                                           7.14203+-0.00466    ?     7.14556+-0.01286       ?
   deltablue                                x2       0.44034+-0.00323    ^     0.34492+-0.00262       ^ definitely 1.2767x faster
   earley                                            1.35041+-0.01006    ?     1.37208+-0.01624       ? might be 1.0160x slower
   boyer                                            10.40394+-0.12814    ?    10.47997+-0.07309       ?
   navier-stokes                            x2       7.73104+-0.00436          7.72868+-0.00662       
   raytrace                                 x2       2.66991+-0.02755    ?     2.67586+-0.03853       ?
   richards                                 x2       0.22932+-0.01102    ^     0.21293+-0.00244       ^ definitely 1.0770x faster
   splay                                    x2       0.62858+-0.01083          0.62304+-0.00373       
   regexp                                   x2      61.79943+-0.21471         61.37440+-0.28687       
   pdfjs                                    x2      87.56147+-2.74194    ?    88.78002+-0.29038       ? might be 1.0139x slower
   mandreel                                 x2      92.28253+-0.68799    ?    92.28710+-0.53171       ?
   gbemu                                    x2      69.17189+-1.80168    !    73.99837+-0.38989       ! definitely 1.0698x slower
   closure                                           0.90926+-0.00153    ?     0.90982+-0.00191       ?
   jquery                                           11.36424+-0.09067         11.29259+-0.08539       
   box2d                                    x2      24.73689+-0.16971         24.70213+-0.15788       
   zlib                                     x2     819.99953+-13.93619       816.56055+-3.78940       
   typescript                               x2    1284.09753+-7.63138    !  1313.03080+-12.06748      ! definitely 1.0225x slower

   <arithmetic>                                    164.47540+-0.89563    !   166.54108+-0.86400       ! definitely 1.0126x slower
   <geometric> *                                    12.35351+-0.06026    ^    12.17029+-0.02356       ^ definitely 1.0151x faster
   <harmonic>                                        1.34229+-0.02486    ^     1.23546+-0.00594       ^ definitely 1.0865x faster

                                                        TipOfTree                 PolyInline                                    
Kraken:
   ai-astar                                          527.570+-1.057      ?     530.890+-9.426         ?
   audio-beat-detection                              182.564+-0.934            179.410+-3.845           might be 1.0176x faster
   audio-dft                                         266.410+-23.780           252.810+-1.661           might be 1.0538x faster
   audio-fft                                         130.191+-0.503      ?     130.244+-0.248         ?
   audio-oscillator                                  367.561+-0.973      ?     368.280+-1.165         ?
   imaging-darkroom                                  292.169+-15.735           289.151+-7.171           might be 1.0104x faster
   imaging-desaturate                                112.736+-0.352            112.600+-0.370         
   imaging-gaussian-blur                             181.066+-4.892            179.763+-1.549         
   json-parse-financial                               82.034+-0.909      !      85.358+-0.729         ! definitely 1.0405x slower
   json-stringify-tinderbox                          105.918+-0.712      !     108.709+-0.538         ! definitely 1.0263x slower
   stanford-crypto-aes                               101.987+-1.261      ?     102.860+-1.738         ?
   stanford-crypto-ccm                                90.227+-12.114     ?      90.382+-12.305        ?
   stanford-crypto-pbkdf2                            274.997+-0.964            274.822+-1.750         
   stanford-crypto-sha256-iterative                  106.944+-0.226      ?     108.682+-2.631         ? might be 1.0162x slower

   <arithmetic> *                                    201.598+-2.399            200.997+-0.750           might be 1.0030x faster
   <geometric>                                       170.149+-2.483      ?     170.322+-1.830         ? might be 1.0010x slower
   <harmonic>                                        147.349+-2.797      ?     148.317+-2.768         ? might be 1.0066x slower

                                                        TipOfTree                 PolyInline                                    
JSRegress:
   abs-boolean                                        4.1904+-0.0129     ?      4.2500+-0.0819        ? might be 1.0142x slower
   adapt-to-double-divide                            20.2640+-0.5298           20.2598+-0.3938        
   aliased-arguments-getbyval                         1.1014+-0.0085            1.1008+-0.0069        
   allocate-big-object                                3.6531+-0.1073     ?      3.7896+-0.1890        ? might be 1.0374x slower
   arity-mismatch-inlining                            1.0096+-0.0058     ?      1.0140+-0.0181        ?
   array-access-polymorphic-structure                10.8286+-0.2492     ?     10.8593+-0.1247        ?
   array-nonarray-polymorhpic-access                 60.5963+-0.1674     ?     60.8316+-0.2437        ?
   array-prototype-every                            125.3885+-3.0495          124.0745+-5.5939          might be 1.0106x faster
   array-prototype-forEach                          124.9354+-1.9330          122.3156+-1.2700          might be 1.0214x faster
   array-prototype-map                              149.5084+-0.9437     ^    146.0835+-1.2415        ^ definitely 1.0234x faster
   array-prototype-some                             123.8954+-1.2506          121.2385+-1.7273          might be 1.0219x faster
   array-splice-contiguous                           67.8742+-0.7705     ?     68.2931+-0.7644        ?
   array-with-double-add                              6.6257+-0.1668     ?      6.6960+-0.0970        ? might be 1.0106x slower
   array-with-double-increment                        4.7144+-0.1455            4.6615+-0.0857          might be 1.0114x faster
   array-with-double-mul-add                          7.9227+-0.2054            7.8576+-0.1301        
   array-with-double-sum                              5.0220+-0.0820            5.0055+-0.0740        
   array-with-int32-add-sub                          11.9456+-0.3755     ?     12.1267+-0.3805        ? might be 1.0152x slower
   array-with-int32-or-double-sum                     5.1040+-0.0776     ?      5.1344+-0.0857        ?
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                    115.2481+-0.8356     ?    115.4960+-1.1770        ?
   ArrayBuffer-DataView-alloc-long-lived             32.4589+-0.3013           32.1158+-0.3501          might be 1.0107x faster
   ArrayBuffer-Int32Array-byteOffset                  5.2599+-0.0291            5.2572+-0.0084        
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                    119.1289+-1.2854     ?    121.1141+-1.6794        ? might be 1.0167x slower
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     50.5560+-0.5118           50.5299+-0.4884        
   ArrayBuffer-Int8Array-alloc-long-lived            31.0512+-0.4596     ?     31.8198+-0.9214        ? might be 1.0248x slower
   ArrayBuffer-Int8Array-alloc                       27.6998+-0.5981     ?     28.3936+-0.6987        ? might be 1.0250x slower
   asmjs_bool_bug                                    10.2784+-0.1962           10.2381+-0.2763        
   assign-custom-setter-polymorphic                   4.8741+-0.0899     ?      4.9091+-0.0147        ?
   assign-custom-setter                               6.7618+-0.2158            6.7132+-0.1560        
   basic-set                                         15.9680+-1.3795           15.5776+-0.2155          might be 1.0251x faster
   big-int-mul                                        6.2659+-0.1083     !      6.8029+-0.1353        ! definitely 1.0857x slower
   boolean-test                                       4.7462+-0.0350     ?      4.7810+-0.0241        ?
   branch-fold                                        5.0542+-0.0138     ?      5.1107+-0.0503        ? might be 1.0112x slower
   by-val-generic                                    12.8189+-0.1152           12.7554+-0.1893        
   call-spread-apply                                 20.7896+-0.3648           20.5406+-0.2497          might be 1.0121x faster
   call-spread-call                                   8.7040+-0.1308     ?      8.7699+-0.2139        ?
   captured-assignments                               0.5747+-0.0027     !      0.5870+-0.0044        ! definitely 1.0215x slower
   cast-int-to-double                                 9.4230+-0.1677     ?      9.4385+-0.1295        ?
   cell-argument                                     11.0344+-0.1046     ?     11.0364+-0.1733        ?
   cfg-simplify                                       4.0660+-0.0378            4.0552+-0.0090        
   chain-getter-access                               13.7381+-0.1893     ?     13.8132+-0.2665        ?
   cmpeq-obj-to-obj-other                            13.5122+-0.2048     ?     13.6499+-0.4508        ? might be 1.0102x slower
   constant-test                                      8.8265+-0.0770            8.7828+-0.0697        
   DataView-custom-properties                       125.4700+-1.6947          123.8021+-0.9935          might be 1.0135x faster
   delay-tear-off-arguments-strictmode                3.6772+-0.0983            3.6356+-0.0188          might be 1.0115x faster
   destructuring-arguments                            8.9448+-0.2378            8.9150+-0.0839        
   destructuring-swap                                 8.9359+-0.1647            8.9254+-0.0927        
   direct-arguments-getbyval                          1.1204+-0.0368            1.1176+-0.0095        
   div-boolean-double                                 6.4215+-0.0791            6.4041+-0.0504        
   div-boolean                                       11.7522+-0.1085           11.7490+-0.3016        
   double-get-by-val-out-of-bounds                    6.6582+-0.1284     ?      6.7003+-0.1772        ?
   double-pollution-getbyval                         11.4834+-0.2198     ?     11.6361+-0.1453        ? might be 1.0133x slower
   double-pollution-putbyoffset                       6.1704+-0.1254            6.1212+-0.1235        
   double-to-int32-typed-array-no-inline              3.0806+-0.1453            3.0271+-0.0497          might be 1.0177x faster
   double-to-int32-typed-array                        2.4511+-0.0153     !      2.4803+-0.0085        ! definitely 1.0119x slower
   double-to-uint32-typed-array-no-inline             3.1080+-0.1167            3.0998+-0.1145        
   double-to-uint32-typed-array                       2.6748+-0.0515            2.6697+-0.0259        
   empty-string-plus-int                             10.3418+-0.2661     ?     10.4449+-0.0703        ?
   emscripten-cube2hash                              53.6081+-0.9473     ?     53.6765+-0.3949        ?
   external-arguments-getbyval                        2.0438+-0.0189     ?      2.0570+-0.0099        ?
   external-arguments-putbyval                        3.0013+-0.0375     ?      3.0664+-0.1714        ? might be 1.0217x slower
   fixed-typed-array-storage-var-index                1.5112+-0.0095     ?      1.5288+-0.0143        ? might be 1.0116x slower
   fixed-typed-array-storage                          1.0985+-0.0212     ?      1.1035+-0.0133        ?
   Float32Array-matrix-mult                           7.5809+-0.2066            7.5293+-0.1596        
   Float32Array-to-Float64Array-set                  89.3455+-2.0997           88.6150+-0.6059        
   Float64Array-alloc-long-lived                    101.4982+-1.3239     ?    101.7382+-1.0706        ?
   Float64Array-to-Int16Array-set                   116.0667+-2.3927     ?    116.4505+-0.3207        ?
   fold-double-to-int                                20.7860+-0.2592     ?     20.8783+-0.1261        ?
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     19.3485+-0.5090     !     24.2670+-0.4757        ! definitely 1.2542x slower
   fold-get-by-id-to-multi-get-by-offset             18.0706+-0.4343     !     22.9762+-0.3276        ! definitely 1.2715x slower
   fold-multi-get-by-offset-to-get-by-offset   
                                                     13.0519+-0.1259     !     17.7496+-0.4189        ! definitely 1.3599x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                     13.3820+-0.4219     !     18.1259+-0.5271        ! definitely 1.3545x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                     13.2170+-0.0956     !     18.5815+-0.2961        ! definitely 1.4059x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                     13.1535+-1.1090     !     16.8832+-0.3022        ! definitely 1.2835x slower
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     18.4565+-0.8418     !     22.5794+-0.1791        ! definitely 1.2234x slower
   fold-put-by-id-to-multi-put-by-offset             20.6331+-0.3293     !     25.9192+-0.5631        ! definitely 1.2562x slower
   fold-put-structure                                12.8500+-0.1783     !     17.6426+-0.1786        ! definitely 1.3730x slower
   for-of-iterate-array-entries                       9.4312+-0.2016     ^      8.5077+-0.1317        ^ definitely 1.1085x faster
   for-of-iterate-array-keys                          3.6118+-0.0215     !      3.9165+-0.0564        ! definitely 1.0844x slower
   for-of-iterate-array-values                        3.1910+-0.1020     ?      3.3229+-0.0539        ? might be 1.0414x slower
   fround                                            23.5791+-0.3557     ?     24.1922+-1.0135        ? might be 1.0260x slower
   ftl-library-inlining-dataview                    110.4998+-4.6072          109.1077+-1.2288          might be 1.0128x faster
   ftl-library-inlining                             117.3490+-2.4552          116.6074+-1.4423        
   function-dot-apply                                 2.2856+-0.0272     ?      2.2889+-0.0173        ?
   function-test                                      5.3420+-0.2516            5.2459+-0.1262          might be 1.0183x faster
   function-with-eval                               102.3576+-2.4186     ?    104.8975+-1.4622        ? might be 1.0248x slower
   gcse-poly-get-less-obvious                        29.3587+-0.2803           28.9246+-0.5704          might be 1.0150x faster
   gcse-poly-get                                     29.4891+-0.1294     ?     29.5617+-0.1769        ?
   gcse                                               7.6128+-0.0942     ?      7.6907+-0.1486        ? might be 1.0102x slower
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.8202+-0.0900            3.7778+-0.0733          might be 1.0112x faster
   get-by-id-bimorphic-check-structure-elimination   
                                                      9.6056+-0.2382            9.5563+-0.2300        
   get-by-id-chain-from-try-block                     8.3434+-0.1099     ^      7.9974+-0.1113        ^ definitely 1.0433x faster
   get-by-id-check-structure-elimination              8.7511+-0.1382            8.6842+-0.2031        
   get-by-id-proto-or-self                           26.0265+-1.7440     ?     27.1607+-2.0516        ? might be 1.0436x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      4.5235+-0.0640     ?      4.5489+-0.0741        ?
   get-by-id-self-or-proto                           28.9979+-4.6041           27.9952+-5.6188          might be 1.0358x faster
   get-by-val-out-of-bounds                           6.5971+-0.0353     !      6.7671+-0.1132        ! definitely 1.0258x slower
   get_callee_monomorphic                             5.2896+-0.1336            5.2832+-0.0786        
   get_callee_polymorphic                             4.9591+-0.0910            4.9468+-0.0562        
   getter-no-activation                               6.7582+-0.1084            6.6928+-0.0491        
   getter-richards                                  148.9347+-1.3699     !    159.9229+-5.4891        ! definitely 1.0738x slower
   getter                                             7.5523+-0.1618            7.4640+-0.1007          might be 1.0118x faster
   global-var-const-infer-fire-from-opt               1.1779+-0.0744     ?      1.2557+-0.0354        ? might be 1.0661x slower
   global-var-const-infer                             1.0273+-0.0307            1.0205+-0.0051        
   HashMap-put-get-iterate-keys                      39.9696+-0.3442     ?     40.4733+-0.6120        ? might be 1.0126x slower
   HashMap-put-get-iterate                           39.7800+-0.3737           39.6106+-0.5474        
   HashMap-string-put-get-iterate                    44.9473+-0.5934           44.7971+-0.4299        
   hoist-make-rope                                   14.3222+-1.2139           13.1725+-0.5165          might be 1.0873x faster
   hoist-poly-check-structure-effectful-loop   
                                                      7.4647+-0.2217     ?      7.5913+-0.0568        ? might be 1.0170x slower
   hoist-poly-check-structure                         5.6422+-0.1109            5.5929+-0.0107        
   imul-double-only                                   9.7821+-0.1979     ?      9.7927+-0.3047        ?
   imul-int-only                                     13.2105+-0.4060           13.0717+-0.1521          might be 1.0106x faster
   imul-mixed                                         9.5378+-0.6005            9.4825+-0.7362        
   in-four-cases                                     28.3360+-0.5053     ?     28.3902+-0.5436        ?
   in-one-case-false                                 14.6774+-0.1651     ?     14.8540+-0.1751        ? might be 1.0120x slower
   in-one-case-true                                  14.7084+-0.1736     ?     14.7157+-0.1950        ?
   in-two-cases                                      15.4439+-0.2359           15.3542+-0.2213        
   indexed-properties-in-objects                      4.2903+-0.0604     ?      4.3174+-0.0706        ?
   infer-closure-const-then-mov-no-inline             4.7271+-0.0438     ?      4.7900+-0.0913        ? might be 1.0133x slower
   infer-closure-const-then-mov                      29.1670+-0.0623     ?     29.1813+-0.0752        ?
   infer-closure-const-then-put-to-scope-no-inline   
                                                     17.5997+-0.1876           17.5252+-0.1327        
   infer-closure-const-then-put-to-scope             33.1616+-0.0635     ?     33.1768+-0.1238        ?
   infer-closure-const-then-reenter-no-inline   
                                                     77.6793+-1.6291           77.0885+-0.1401        
   infer-closure-const-then-reenter                  33.1973+-0.1083           33.1812+-0.0738        
   infer-constant-global-property                     5.3742+-0.0119     !      5.4571+-0.0639        ! definitely 1.0154x slower
   infer-constant-property                            3.6722+-0.0574     ?      3.6731+-0.0510        ?
   infer-one-time-closure-ten-vars                   16.5052+-0.1355           16.4454+-0.3889        
   infer-one-time-closure-two-vars                   15.7928+-0.1118           15.7264+-0.1075        
   infer-one-time-closure                            15.6665+-0.1384     ?     16.0077+-0.4487        ? might be 1.0218x slower
   infer-one-time-deep-closure                       28.4102+-0.4318           28.1293+-0.1471        
   inline-arguments-access                            2.2023+-0.0099     ?      2.2218+-0.0149        ?
   inline-arguments-aliased-access                    2.4943+-0.0923            2.4766+-0.0155        
   inline-arguments-local-escape                     20.2693+-0.2325     ^     19.7572+-0.1435        ^ definitely 1.0259x faster
   inline-get-scoped-var                              6.4665+-0.1020            6.4353+-0.0273        
   inlined-put-by-id-transition                      15.8419+-0.2961           15.6768+-0.3129          might be 1.0105x faster
   int-or-other-abs-then-get-by-val                   7.9000+-0.0330     ?      7.9666+-0.0472        ?
   int-or-other-abs-zero-then-get-by-val             29.2445+-0.1132           29.0841+-0.1230        
   int-or-other-add-then-get-by-val                   6.7159+-0.0579     ?      6.7597+-0.0419        ?
   int-or-other-add                                   8.9752+-0.1532     ?      9.0004+-0.0993        ?
   int-or-other-div-then-get-by-val                   5.8857+-0.1269            5.8822+-0.0355        
   int-or-other-max-then-get-by-val                   7.5189+-0.2053            7.4499+-0.1188        
   int-or-other-min-then-get-by-val                   6.0328+-0.0981            5.9889+-0.0299        
   int-or-other-mod-then-get-by-val                   5.8432+-0.0246     ?      5.8482+-0.0359        ?
   int-or-other-mul-then-get-by-val                   5.7489+-0.0898            5.7148+-0.0333        
   int-or-other-neg-then-get-by-val                   7.1750+-0.0237            7.1353+-0.0325        
   int-or-other-neg-zero-then-get-by-val             29.2216+-0.1930     ?     29.2758+-0.3230        ?
   int-or-other-sub-then-get-by-val                   6.7803+-0.1393            6.7571+-0.0432        
   int-or-other-sub                                   5.4471+-0.0135     ?      5.4540+-0.0300        ?
   int-overflow-local                                 6.6791+-0.0605     ?      6.6889+-0.0245        ?
   Int16Array-alloc-long-lived                       72.4471+-0.3725     ?     72.8431+-0.8254        ?
   Int16Array-bubble-sort-with-byteLength            44.2178+-0.2543     ?     44.3513+-0.2525        ?
   Int16Array-bubble-sort                            43.3371+-0.1215           43.2833+-0.1032        
   Int16Array-load-int-mul                            2.0850+-0.0160     ?      2.0905+-0.0314        ?
   Int16Array-to-Int32Array-set                      87.1538+-0.7086     ?     88.4499+-2.4546        ? might be 1.0149x slower
   Int32Array-alloc-large                            42.4533+-0.6858     ?     42.6210+-1.5237        ?
   Int32Array-alloc-long-lived                       80.7248+-0.6793     ?     81.5413+-0.5318        ? might be 1.0101x slower
   Int32Array-alloc                                   4.8114+-0.1552            4.7766+-0.1509        
   Int32Array-Int8Array-view-alloc                   15.6599+-0.7869           15.3693+-0.1938          might be 1.0189x faster
   int52-spill                                       11.1039+-0.1095     ?     11.3079+-0.3121        ? might be 1.0184x slower
   Int8Array-alloc-long-lived                        66.9782+-0.7497           66.5729+-0.5437        
   Int8Array-load-with-byteLength                     5.4493+-0.0111     ?      5.5251+-0.0758        ? might be 1.0139x slower
   Int8Array-load                                     5.5015+-0.0948     ?      5.5527+-0.0768        ?
   integer-divide                                    16.7788+-0.0662     ?     16.8385+-0.1250        ?
   integer-modulo                                     3.1339+-0.2867            3.0809+-0.2984          might be 1.0172x faster
   large-int-captured                                10.7169+-0.2030     ?     10.8913+-0.0488        ? might be 1.0163x slower
   large-int-neg                                     24.1620+-0.2618           24.0846+-0.2337        
   large-int                                         21.4510+-0.2560     ?     21.5533+-0.5627        ?
   logical-not                                        6.9349+-0.1920            6.8632+-0.1250          might be 1.0104x faster
   lots-of-fields                                    16.9520+-0.1439     ?     16.9801+-0.1257        ?
   make-indexed-storage                               4.5560+-0.1572     ?      4.6114+-0.1452        ? might be 1.0122x slower
   make-rope-cse                                      6.2449+-0.0544     ?      6.2853+-0.0966        ?
   marsaglia-larger-ints                             59.2665+-0.7333     ?     59.4852+-0.5810        ?
   marsaglia-osr-entry                               31.0822+-0.3873     ?     31.1824+-0.4348        ?
   max-boolean                                        3.6989+-0.0179     ?      3.7004+-0.0089        ?
   method-on-number                                  27.7057+-0.6499           27.5643+-0.4926        
   min-boolean                                        3.7804+-0.3378            3.6527+-0.0476          might be 1.0350x faster
   minus-boolean-double                               4.7937+-0.0390     ?      4.7972+-0.0419        ?
   minus-boolean                                      3.6539+-0.0797            3.6165+-0.0200          might be 1.0103x faster
   misc-strict-eq                                    55.5595+-0.6492     ?     56.6303+-0.9475        ? might be 1.0193x slower
   mod-boolean-double                                13.9290+-0.2239           13.9090+-0.1097        
   mod-boolean                                       10.5693+-0.1510     ?     10.5900+-0.1720        ?
   mul-boolean-double                                 5.6012+-0.0564            5.6012+-0.0124        
   mul-boolean                                        4.0441+-0.1646            3.9701+-0.0542          might be 1.0187x faster
   neg-boolean                                        4.8645+-0.0211            4.8600+-0.0102        
   negative-zero-divide                               0.4234+-0.0016     ?      0.4297+-0.0070        ? might be 1.0149x slower
   negative-zero-modulo                               0.4255+-0.0025     ?      0.4302+-0.0033        ? might be 1.0109x slower
   negative-zero-negate                               0.3944+-0.0027     ?      0.3978+-0.0016        ?
   nested-function-parsing                           48.4243+-0.1858     ^     46.8136+-0.2802        ^ definitely 1.0344x faster
   new-array-buffer-dead                              4.0485+-0.0912     ?      4.1210+-0.1290        ? might be 1.0179x slower
   new-array-buffer-push                             10.7369+-0.2564           10.7238+-0.2654        
   new-array-dead                                    14.3492+-0.4051     ?     14.6842+-0.3093        ? might be 1.0233x slower
   new-array-push                                     7.5195+-0.1034            7.4357+-0.0818          might be 1.0113x faster
   number-test                                        4.6294+-0.0085     ?      4.6885+-0.0536        ? might be 1.0128x slower
   object-closure-call                                9.0721+-0.0646            9.0653+-0.0703        
   object-test                                        5.0187+-0.0895            4.9842+-0.0513        
   plus-boolean-arith                                 3.7793+-0.1231            3.7638+-0.0861        
   plus-boolean-double                                4.7785+-0.1238     ?      4.7989+-0.0134        ?
   plus-boolean                                       3.5606+-0.0427            3.5514+-0.0109        
   poly-chain-access-different-prototypes-simple   
                                                      4.4509+-0.0825            4.4481+-0.0623        
   poly-chain-access-different-prototypes             3.6587+-0.0349            3.6493+-0.0115        
   poly-chain-access-simpler                          4.3841+-0.0114     ?      4.4067+-0.0206        ?
   poly-chain-access                                  2.8846+-0.1668     !      3.6304+-0.0153        ! definitely 1.2585x slower
   poly-stricteq                                     82.4382+-0.3777     ?     82.4407+-0.4155        ?
   polymorphic-array-call                             2.2198+-0.0540     ?      2.2225+-0.0337        ?
   polymorphic-get-by-id                              4.7649+-0.1187            4.7328+-0.0237        
   polymorphic-put-by-id                             91.9373+-30.8290          87.1221+-28.8626         might be 1.0553x faster
   polymorphic-structure                             24.7231+-0.1363           24.6898+-0.1252        
   polyvariant-monomorphic-get-by-id                 13.4931+-0.2289           13.4032+-0.0837        
   proto-getter-access                               13.9190+-0.4572           13.8847+-0.2176        
   put-by-id-replace-and-transition                  12.5491+-0.2205     ?     12.6838+-0.1237        ? might be 1.0107x slower
   put-by-id-slightly-polymorphic                     4.0026+-0.0134     ?      4.0087+-0.0077        ?
   put-by-id                                         21.0482+-0.6425     ?     21.2810+-0.2682        ? might be 1.0111x slower
   put-by-val-direct                                  0.7841+-0.0095            0.7792+-0.0025        
   put-by-val-large-index-blank-indexing-type   
                                                     10.7024+-0.1690     ?     10.8392+-0.1432        ? might be 1.0128x slower
   put-by-val-machine-int                             4.5385+-0.1343     ?      4.6261+-0.1769        ? might be 1.0193x slower
   rare-osr-exit-on-local                            21.5156+-0.2435     ?     21.5888+-0.6285        ?
   register-pressure-from-osr                        31.7705+-0.1699           31.7360+-0.1140        
   setter                                             7.4878+-0.1001     ?      7.5004+-0.0629        ?
   simple-activation-demo                            35.3610+-0.6028           35.0068+-0.0759          might be 1.0101x faster
   simple-getter-access                              20.0123+-0.3547     ?     20.1828+-0.5748        ?
   sin-boolean                                       23.9242+-0.5900     ?     23.9323+-0.9815        ?
   slow-array-profile-convergence                     4.3903+-0.2625     ?      4.5756+-0.4369        ? might be 1.0422x slower
   slow-convergence                                   4.8061+-0.0550     ?      4.8268+-0.0344        ?
   sparse-conditional                                 1.4873+-0.0067     ?      1.5115+-0.0270        ? might be 1.0162x slower
   splice-to-remove                                  27.2432+-0.2019     ?     29.3931+-3.0136        ? might be 1.0789x slower
   string-char-code-at                               23.5105+-0.4838           23.4856+-0.1206        
   string-concat-object                               3.2496+-0.1139            3.2120+-0.0202          might be 1.0117x faster
   string-concat-pair-object                          3.0885+-0.0432     !      3.1497+-0.0158        ! definitely 1.0198x slower
   string-concat-pair-simple                         18.4476+-0.1737     ?     18.4703+-0.2432        ?
   string-concat-simple                              18.8616+-0.3274     ?     18.9595+-0.3733        ?
   string-cons-repeat                                11.9074+-0.0273     ?     12.1541+-0.4696        ? might be 1.0207x slower
   string-cons-tower                                 10.9768+-0.1776     ?     11.0043+-0.0530        ?
   string-equality                                   26.0942+-0.2869           26.0892+-0.2254        
   string-get-by-val-big-char                        13.6257+-0.1574     ?     14.0764+-0.4104        ? might be 1.0331x slower
   string-get-by-val-out-of-bounds-insane             5.9830+-0.1955     ?      6.0499+-0.1949        ? might be 1.0112x slower
   string-get-by-val-out-of-bounds                    7.1162+-0.1626     ?      7.1683+-0.1190        ?
   string-get-by-val                                  5.5465+-0.0554     ?      5.5812+-0.0523        ?
   string-hash                                        2.8822+-0.0554     ?      2.9874+-0.0660        ? might be 1.0365x slower
   string-long-ident-equality                        21.2462+-0.0597     ?     21.3082+-0.2540        ?
   string-repeat-arith                               49.3693+-0.3392     ?     49.7930+-0.4433        ?
   string-sub                                        97.3771+-1.1276           95.6066+-0.8561          might be 1.0185x faster
   string-test                                        4.6431+-0.0028     !      4.7363+-0.0884        ! definitely 1.0201x slower
   string-var-equality                               52.0043+-0.1377     ?     52.0246+-0.2029        ?
   structure-hoist-over-transitions                   3.8567+-0.0423     ?      3.8895+-0.0547        ?
   substring-concat-weird                            62.9324+-0.6381     ?     63.2316+-0.3894        ?
   substring-concat                                  66.0892+-0.3537     ?     66.4879+-0.4288        ?
   substring                                         74.3722+-0.2614     ?     74.7019+-0.3242        ?
   switch-char-constant                               3.6740+-0.0118     ?      3.6772+-0.0170        ?
   switch-char                                       10.2209+-0.0667           10.1985+-0.1072        
   switch-constant                                   11.5618+-0.1827     ?     11.6426+-0.1172        ?
   switch-string-basic-big-var                       24.6698+-2.1359     ?     25.5852+-1.6928        ? might be 1.0371x slower
   switch-string-basic-big                           34.1510+-2.3720           31.8389+-4.2405          might be 1.0726x faster
   switch-string-basic-var                           31.9045+-0.6724           31.3460+-0.8992          might be 1.0178x faster
   switch-string-basic                               33.0007+-1.7155           31.9442+-2.7196          might be 1.0331x faster
   switch-string-big-length-tower-var                29.9474+-0.1772     ?     30.0159+-0.1438        ?
   switch-string-length-tower-var                    23.9316+-0.0810           23.8863+-0.1909        
   switch-string-length-tower                        17.3813+-0.1221     ?     17.3878+-0.0895        ?
   switch-string-short                               18.6518+-2.6385     ?     19.2562+-2.6851        ? might be 1.0324x slower
   switch                                            16.0593+-0.1999     ?     16.0626+-0.1502        ?
   tear-off-arguments-simple                          2.3925+-0.1304            2.3508+-0.0117          might be 1.0177x faster
   tear-off-arguments                                 3.8904+-0.0478            3.8652+-0.0390        
   temporal-structure                                20.3263+-0.1458           20.2465+-0.1312        
   to-int32-boolean                                  24.8057+-0.4850           24.5769+-0.1128        
   undefined-test                                     4.8271+-0.0573     ?      4.9126+-0.0749        ? might be 1.0177x slower
   unprofiled-licm                                   30.9115+-0.6142     ?     31.4133+-0.2212        ? might be 1.0162x slower
   weird-inlining-const-prop                          2.6380+-0.0319     ?      2.7479+-0.1101        ? might be 1.0417x slower

   <arithmetic>                                      21.9531+-0.1235     ?     22.1194+-0.1603        ? might be 1.0076x slower
   <geometric> *                                     11.0702+-0.0183     !     11.2025+-0.0304        ! definitely 1.0120x slower
   <harmonic>                                         5.4656+-0.0129     !      5.5220+-0.0108        ! definitely 1.0103x slower

                                                        TipOfTree                 PolyInline                                    
AsmBench:
   bigfib.cpp                                       799.0097+-5.1042     ?    799.2521+-4.6963        ?
   cray.c                                           797.0303+-6.2303          793.0916+-3.5205        
   dry.c                                            777.9469+-12.0910    ?    788.5703+-23.1861       ? might be 1.0137x slower
   FloatMM.c                                       1148.9486+-1.8388     ?   1153.1522+-11.9924       ?
   gcc-loops.cpp                                   7556.7237+-6.3893     ?   7616.5415+-156.1593      ?
   n-body.c                                        2019.8949+-29.8675        2008.2724+-7.3764        
   Quicksort.c                                      696.5685+-1.2122          694.4550+-14.2886       
   stepanov_container.cpp                          5830.7129+-14.5595    ?   5833.9621+-21.0850       ?
   Towers.c                                         494.4412+-4.2497          493.4085+-1.7915        

   <arithmetic>                                    2235.6974+-4.7198     ?   2242.3006+-16.8359       ? might be 1.0030x slower
   <geometric> *                                   1373.9217+-5.5283     ?   1375.3999+-7.2820        ? might be 1.0011x slower
   <harmonic>                                      1009.0399+-5.0517     ?   1009.4332+-6.3465        ? might be 1.0004x slower

                                                        TipOfTree                 PolyInline                                    
All benchmarks:
   <arithmetic>                                     155.1876+-0.3016     !    156.1091+-0.5973        ! definitely 1.0059x slower
   <geometric>                                       17.9896+-0.0226     !     18.1537+-0.0416        ! definitely 1.0091x slower
   <harmonic>                                         4.9180+-0.0281     ^      4.8290+-0.0097        ^ definitely 1.0184x faster

                                                        TipOfTree                 PolyInline                                    
Geomean of preferred means:
   <scaled-result>                                   79.6170+-0.1866     !     80.3163+-0.1431        ! definitely 1.0088x slower
Comment 28 Filip Pizlo 2014-08-24 21:37:58 PDT
Created attachment 237056 [details]
the patch

Some fixes.
Comment 29 WebKit Commit Bot 2014-08-24 21:40:32 PDT
Attachment 237056 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:70:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/Spectrum.h:114:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGNode.h:182:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 3 in 73 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 30 Filip Pizlo 2014-08-25 08:39:16 PDT
Created attachment 237087 [details]
the patch

Fix for CMake.
Comment 31 WebKit Commit Bot 2014-08-25 08:42:27 PDT
Attachment 237087 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:70:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/Spectrum.h:114:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGNode.h:182:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 3 in 73 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 32 Filip Pizlo 2014-08-25 11:37:15 PDT
Created attachment 237099 [details]
the patch

More fixes.
Comment 33 WebKit Commit Bot 2014-08-25 11:39:20 PDT
Attachment 237099 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:70:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/Spectrum.h:114:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGNode.h:182:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 3 in 73 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 34 Geoffrey Garen 2014-08-25 12:16:08 PDT
Comment on attachment 237099 [details]
the patch

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

> Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:55
> +        for (CallEdge entry : m_otherCallees->m_processed) {

CallEdge&?

> Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:82
> +    for (CallEdge edge : callEdges())

CallEdge&?

> Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:212
> +        for (auto entry : *m_otherCallees->m_temporarySpectrum)

I think auto& is best here. The pointed-to items are not super huge, but we have scripts that flag uses of "for (auto " because it has been a problem in other places, and it's nice to stay out of the noise.

> Source/JavaScriptCore/bytecode/CallVariant.h:172
> +    JSCell* m_callee;

It looks like this value is ultimately a member of a heap data structure. Does it need to be a WriteBarrier<JSCell>?

> Source/WTF/wtf/OwnPtr.h:81
> +        // Construct an object to store into this OwnPtr, but only so long as this OwnPtr
> +        // doesn't already point to an object. This will ensure that after you call this,
> +        // the OwnPtr will point to an instance of T. This instance may or may not have been
> +        // created by this call. Moreover, this call uses an opportunistic transaction, in
> +        // that we may create an instance of T and then immediately throw it away.

Comment should probably mention concurrency: "will point to an instance of T, even in called concurrently".

> Source/WTF/wtf/Spectrum.h:55
> +        for (auto entry : otherSpectrum)

auto&
Comment 35 Filip Pizlo 2014-08-25 12:39:51 PDT
(In reply to comment #34)
> (From update of attachment 237099 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=237099&action=review
> 
> > Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:55
> > +        for (CallEdge entry : m_otherCallees->m_processed) {
> 
> CallEdge&?

I'll fix these in this patch and I understand the reasoning, but I think it's a dangerous trade-off.  We used to use references a lot in the DFG - and it led to crash bugs if the underlying storage was changed.  Ever since, we've been erring on the side of copying to avoid such crashes.  I guess that this won't happen in any of these loops, but to me it feels like bad form to introduce aliasing unless it's really needed, since it can cause memory corruption bugs.

> 
> > Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:82
> > +    for (CallEdge edge : callEdges())
> 
> CallEdge&?

Fixed, but see above.

> 
> > Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:212
> > +        for (auto entry : *m_otherCallees->m_temporarySpectrum)
> 
> I think auto& is best here. The pointed-to items are not super huge, but we have scripts that flag uses of "for (auto " because it has been a problem in other places, and it's nice to stay out of the noise.

Fixed, but see above.  I assume that the problem you're referring to is copying large amounts of stuff?

> 
> > Source/JavaScriptCore/bytecode/CallVariant.h:172
> > +    JSCell* m_callee;
> 
> It looks like this value is ultimately a member of a heap data structure. Does it need to be a WriteBarrier<JSCell>?

I think I just added a comment about this.  CallVariant is meant to be used form the concurrent JIT thread, so WriteBarrier<JSCell> would just get in the way.  We don't want to fire barriers from the concurrent threads.  At least until we finally fix the bug where JS doesn't have concurrency. :-P

> 
> > Source/WTF/wtf/OwnPtr.h:81
> > +        // Construct an object to store into this OwnPtr, but only so long as this OwnPtr
> > +        // doesn't already point to an object. This will ensure that after you call this,
> > +        // the OwnPtr will point to an instance of T. This instance may or may not have been
> > +        // created by this call. Moreover, this call uses an opportunistic transaction, in
> > +        // that we may create an instance of T and then immediately throw it away.
> 
> Comment should probably mention concurrency: "will point to an instance of T, even in called concurrently".

Will fix.

> 
> > Source/WTF/wtf/Spectrum.h:55
> > +        for (auto entry : otherSpectrum)
> 
> auto&

Fixed, but see above.
Comment 36 Build Bot 2014-08-25 14:28:25 PDT
Comment on attachment 237099 [details]
the patch

Attachment 237099 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/4980519884292096

New failing tests:
compositing/checkerboard.html
compositing/absolute-position-changed-in-composited-layer.html
compositing/bounds-in-flipped-writing-mode.html
accessibility/adjacent-continuations-cause-assertion-failure.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.html
animations/3d/matrix-transform-type-animation.html
animations/animation-border-overflow.html
animations/3d/transform-origin-vs-functions.html
http/tests/appcache/abort-cache-onchecking.html
animations/3d/state-at-end-event-transform.html
canvas/philip/tests/2d.clearRect+fillRect.basic.html
animations/animation-add-events-in-handler.html
animations/animation-controller-drt-api.html
animations/additive-transform-animations.html
animations/3d/replace-filling-transform.html
http/tests/appcache/abort-cache-onchecking-resource-404.html
accessibility/alt-tag-on-image-with-nonimage-role.html
compositing/absolute-position-changed-with-composited-parent-layer.html
Comment 37 Build Bot 2014-08-25 14:28:32 PDT
Created attachment 237107 [details]
Archive of layout-test-results from webkit-ews-09 for mac-mountainlion-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-09  Port: mac-mountainlion-wk2  Platform: Mac OS X 10.8.5
Comment 38 Filip Pizlo 2014-08-25 15:06:44 PDT
(In reply to comment #36)
> (From update of attachment 237099 [details])
> Attachment 237099 [details] did not pass mac-wk2-ews (mac-wk2):
> Output: http://webkit-queues.appspot.com/results/4980519884292096
> 
> New failing tests:
> compositing/checkerboard.html
> compositing/absolute-position-changed-in-composited-layer.html
> compositing/bounds-in-flipped-writing-mode.html
> accessibility/adjacent-continuations-cause-assertion-failure.html
> canvas/philip/tests/2d.clearRect+fillRect.alpha0.html
> animations/3d/matrix-transform-type-animation.html
> animations/animation-border-overflow.html
> animations/3d/transform-origin-vs-functions.html
> http/tests/appcache/abort-cache-onchecking.html
> animations/3d/state-at-end-event-transform.html
> canvas/philip/tests/2d.clearRect+fillRect.basic.html
> animations/animation-add-events-in-handler.html
> animations/animation-controller-drt-api.html
> animations/additive-transform-animations.html
> animations/3d/replace-filling-transform.html
> http/tests/appcache/abort-cache-onchecking-resource-404.html
> accessibility/alt-tag-on-image-with-nonimage-role.html
> compositing/absolute-position-changed-with-composited-parent-layer.html

The bot seems to be failing these even without my patch.
Comment 39 Filip Pizlo 2014-08-25 15:38:00 PDT
Landed in http://trac.webkit.org/changeset/172940
Comment 40 Alexey Proskuryakov 2014-08-25 19:00:19 PDT
Looks like this patch broke fast/storage/serialized-script-value.html:

Thread 15 Crashed:: DFG Worklist Worker Thread
0   com.apple.JavaScriptCore      	0x0000000109f50f7a WTFCrash + 42 (Assertions.cpp:329)
1   com.apple.JavaScriptCore      	0x0000000109998325 JSC::DFG::SpeculativeJIT::speculationCheck(JSC::ExitKind, JSC::JSValueSource, JSC::DFG::Edge, JSC::AbstractMacroAssembler<JSC::X86Assembler>::Jump) + 101 (DFGSpeculativeJIT.cpp:171)
2   com.apple.JavaScriptCore      	0x00000001099df645 JSC::DFG::SpeculativeJIT::fillSpeculateCell(JSC::DFG::Edge) + 1413 (DFGSpeculativeJIT64.cpp:1053)
3   com.apple.JavaScriptCore      	0x00000001099b58f0 JSC::DFG::SpeculateCellOperand::gpr() + 144 (DFGSpeculativeJIT.h:3094)
4   com.apple.JavaScriptCore      	0x00000001099d72da JSC::DFG::SpeculateCellOperand::SpeculateCellOperand(JSC::DFG::SpeculativeJIT*, JSC::DFG::Edge, JSC::DFG::OperandSpeculationMode) + 266 (DFGSpeculativeJIT.h:3069)
5   com.apple.JavaScriptCore      	0x00000001099b584b JSC::DFG::SpeculateCellOperand::SpeculateCellOperand(JSC::DFG::SpeculativeJIT*, JSC::DFG::Edge, JSC::DFG::OperandSpeculationMode) + 43 (DFGSpeculativeJIT.h:3070)
6   com.apple.JavaScriptCore      	0x00000001099af1b7 JSC::DFG::SpeculativeJIT::speculateCell(JSC::DFG::Edge) + 103 (DFGSpeculativeJIT.cpp:4583)
7   com.apple.JavaScriptCore      	0x00000001099b046d JSC::DFG::SpeculativeJIT::speculate(JSC::DFG::Node*, JSC::DFG::Edge) + 733 (DFGSpeculativeJIT.cpp:4855)
8   com.apple.JavaScriptCore      	0x00000001099f5f8f JSC::DFG::SpeculativeJIT::compile(JSC::DFG::Node*) + 72895 (DFGSpeculativeJIT64.cpp:4646)
9   com.apple.JavaScriptCore      	0x000000010999e450 JSC::DFG::SpeculativeJIT::compileCurrentBlock() + 1776 (DFGSpeculativeJIT.cpp:1452)
10  com.apple.JavaScriptCore      	0x000000010999ec36 JSC::DFG::SpeculativeJIT::compile() + 182 (DFGSpeculativeJIT.cpp:1558)
Comment 41 WebKit Commit Bot 2014-08-26 09:43:05 PDT
Re-opened since this is blocked by bug 136256
Comment 42 Filip Pizlo 2014-08-27 22:16:59 PDT
Created attachment 237289 [details]
patch for relanding

This has a fix for the crash that Alexey saw.
Comment 43 WebKit Commit Bot 2014-08-27 22:18:19 PDT
Attachment 237289 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:70:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/WTF/wtf/Spectrum.h:114:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGNode.h:182:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 3 in 74 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 44 Build Bot 2014-08-28 01:16:42 PDT
Comment on attachment 237289 [details]
patch for relanding

Attachment 237289 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/6048694088499200

New failing tests:
canvas/philip/tests/2d.clearRect+fillRect.basic.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.5.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.html
Comment 45 Build Bot 2014-08-28 01:16:49 PDT
Created attachment 237300 [details]
Archive of layout-test-results from webkit-ews-16 for mac-mountainlion-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-16  Port: mac-mountainlion-wk2  Platform: Mac OS X 10.8.5
Comment 46 Filip Pizlo 2014-08-28 12:11:01 PDT
Landed in http://trac.webkit.org/changeset/173069