Bug 143802 - Make MarkedBlock and WeakBlock 4x smaller.
Summary: Make MarkedBlock and WeakBlock 4x smaller.
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Andreas Kling
URL:
Keywords: Performance
Depends on:
Blocks:
 
Reported: 2015-04-15 15:17 PDT by Andreas Kling
Modified: 2015-04-16 01:10 PDT (History)
3 users (show)

See Also:


Attachments
Patch (3.64 KB, patch)
2015-04-15 15:26 PDT, Andreas Kling
mhahnenb: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Kling 2015-04-15 15:17:50 PDT
I have prototyped this and it looks real good.
Comment 1 Andreas Kling 2015-04-15 15:26:04 PDT
Created attachment 250874 [details]
Patch
Comment 2 Andreas Kling 2015-04-15 15:26:40 PDT
Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on spacecake (MacPro6,1).

VMs tested:
"BO" at /Volumes/Data/Source/Safari/ToT-Clean/WebKitBuild/Release/jsc
"AXE" at /Volumes/Data/Source/Safari/OpenSource/WebKitBuild/Release/jsc

Collected 4 samples per benchmark/VM, with 4 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.

                                                            BO                       AXE                                        
SunSpider:
   3d-cube                                            5.3124+-0.2047            5.2454+-0.0943          might be 1.0128x faster
   3d-morph                                           6.1514+-0.1600            6.1342+-0.1554        
   3d-raytrace                                        6.9675+-0.1385            6.8185+-0.2188          might be 1.0219x faster
   access-binary-trees                                2.4368+-0.0947            2.3693+-0.0243          might be 1.0285x faster
   access-fannkuch                                    6.2316+-0.3488            6.2107+-0.3249        
   access-nbody                                       3.1663+-0.0814            3.0799+-0.0806          might be 1.0280x faster
   access-nsieve                                      3.8538+-0.2135            3.6467+-0.1475          might be 1.0568x faster
   bitops-3bit-bits-in-byte                           1.8404+-0.1170            1.8136+-0.0517          might be 1.0148x faster
   bitops-bits-in-byte                                3.7824+-0.1537     ?      3.8103+-0.1519        ?
   bitops-bitwise-and                                 2.3906+-0.0847     ?      2.4443+-0.2318        ? might be 1.0225x slower
   bitops-nsieve-bits                                 4.0120+-0.1870            3.8978+-0.0876          might be 1.0293x faster
   controlflow-recursive                              2.3546+-0.0645     ?      2.4251+-0.0185        ? might be 1.0300x slower
   crypto-aes                                         4.6707+-0.1032            4.4871+-0.2847          might be 1.0409x faster
   crypto-md5                                         2.6117+-0.0329     ?      2.6376+-0.1666        ?
   crypto-sha1                                        2.8610+-0.0855            2.8102+-0.0328          might be 1.0181x faster
   date-format-tofte                                  9.7930+-0.4122     ?     10.1357+-0.0883        ? might be 1.0350x slower
   date-format-xparb                                  5.8846+-0.3533            5.4700+-0.2038          might be 1.0758x faster
   math-cordic                                        3.4144+-0.0253     ?      3.4543+-0.0928        ? might be 1.0117x slower
   math-partial-sums                                  5.6042+-0.2556            5.4873+-0.0688          might be 1.0213x faster
   math-spectral-norm                                 2.1588+-0.0400     ?      2.2460+-0.1367        ? might be 1.0404x slower
   regexp-dna                                         7.4401+-0.2432     ?      7.4950+-0.3283        ?
   string-base64                                      4.6455+-0.1035            4.6212+-0.0405        
   string-fasta                                       7.0834+-0.3122            6.8721+-0.2123          might be 1.0307x faster
   string-tagcloud                                   10.0217+-0.0255     ?     10.0836+-0.4424        ?
   string-unpack-code                                21.1861+-0.5162           20.8375+-0.6203          might be 1.0167x faster
   string-validate-input                              5.0027+-0.1193     ?      5.0938+-0.1773        ? might be 1.0182x slower

   <arithmetic>                                       5.4184+-0.0287            5.3703+-0.0213          might be 1.0090x faster

                                                            BO                       AXE                                        
LongSpider:
   3d-cube                                          904.3926+-21.4545    ^    861.3475+-6.4430        ^ definitely 1.0500x faster
   3d-morph                                        1634.8491+-7.0456         1633.5402+-4.4904        
   3d-raytrace                                      787.0019+-2.7971     ?    788.5394+-13.9676       ?
   access-binary-trees                             1004.3445+-5.3588     ?   1009.9066+-11.3908       ?
   access-fannkuch                                  349.0145+-10.5963         345.5499+-5.5052          might be 1.0100x faster
   access-nbody                                     649.4805+-1.0111     !    655.9157+-1.7641        ! definitely 1.0099x slower
   access-nsieve                                    837.2178+-9.0473          837.1707+-10.0336       
   bitops-3bit-bits-in-byte                          49.3583+-0.4966     ?     50.1943+-0.8238        ? might be 1.0169x slower
   bitops-bits-in-byte                               98.2145+-3.8984     ?     99.9626+-1.2433        ? might be 1.0178x slower
   bitops-nsieve-bits                               763.6873+-9.8139          760.6769+-6.3963        
   controlflow-recursive                            531.4977+-2.8876     ^    522.1580+-1.6424        ^ definitely 1.0179x faster
   crypto-aes                                       717.4895+-3.5195     ?    720.6940+-10.9024       ?
   crypto-md5                                       589.5162+-2.3055          582.4601+-13.4977         might be 1.0121x faster
   crypto-sha1                                      661.1862+-16.4368         655.3258+-4.2036        
   date-format-tofte                                794.0353+-12.7888    ?    812.2611+-26.0680       ? might be 1.0230x slower
   date-format-xparb                                797.8284+-14.1077    ?    799.7114+-37.2043       ?
   math-cordic                                      630.8295+-4.1514          630.0887+-2.5887        
   math-partial-sums                                537.9346+-2.6588     ?    542.1467+-6.5583        ?
   math-spectral-norm                               603.6270+-3.2389          602.8115+-3.6672        
   string-base64                                    371.3326+-12.7748    ?    382.4376+-5.4110        ? might be 1.0299x slower
   string-fasta                                     467.2502+-15.2119         450.2410+-5.6344          might be 1.0378x faster
   string-tagcloud                                  232.9247+-7.6140          229.5247+-2.2717          might be 1.0148x faster

   <geometric>                                      522.9267+-1.0899          522.0318+-0.9360          might be 1.0017x faster

                                                            BO                       AXE                                        
V8Spider:
   crypto                                            59.8049+-0.8519           59.6380+-0.5543        
   deltablue                                         77.8837+-1.2742     ?     79.9221+-1.8790        ? might be 1.0262x slower
   earley-boyer                                      43.6544+-0.5165     ?     45.8703+-2.2336        ? might be 1.0508x slower
   raytrace                                          34.4373+-1.0763     ?     35.0862+-0.8457        ? might be 1.0188x slower
   regexp                                            70.5182+-1.3234           69.2200+-0.8141          might be 1.0188x faster
   richards                                          83.4803+-2.1650     ?     83.7681+-1.6380        ?
   splay                                             39.3003+-2.6308           38.2538+-0.8822          might be 1.0274x faster

   <geometric>                                       55.4822+-0.2034     ?     55.8758+-0.4041        ? might be 1.0071x slower

                                                            BO                       AXE                                        
Octane:
   encrypt                                           0.23680+-0.00355          0.23460+-0.00094       
   decrypt                                           4.14548+-0.06261          4.13557+-0.02105       
   deltablue                                x2       0.21702+-0.00307    ?     0.21730+-0.00151       ?
   earley                                            0.60350+-0.01475    ?     0.60547+-0.00236       ?
   boyer                                             6.79201+-0.03350    !     6.87880+-0.01045       ! definitely 1.0128x slower
   navier-stokes                            x2       5.56547+-0.00917    ?     5.57165+-0.03358       ?
   raytrace                                 x2       1.26205+-0.07013    ?     1.27902+-0.06659       ? might be 1.0135x slower
   richards                                 x2       0.12353+-0.00263    ?     0.12450+-0.00368       ?
   splay                                    x2       0.39500+-0.00347    !     0.41104+-0.00666       ! definitely 1.0406x slower
   regexp                                   x2      33.12252+-0.37352         33.01513+-0.67381       
   pdfjs                                    x2      47.41298+-1.22544         47.11950+-0.16379       
   mandreel                                 x2      56.58420+-0.64600         56.51368+-0.56204       
   gbemu                                    x2      42.40911+-0.39027         42.25367+-0.25213       
   closure                                           0.62118+-0.00516          0.62036+-0.00711       
   jquery                                            7.82071+-0.03333    !     7.90711+-0.04668       ! definitely 1.0110x slower
   box2d                                    x2      13.54643+-0.04813    ?    13.72254+-0.24410       ? might be 1.0130x slower
   zlib                                     x2     398.22044+-31.31341   ?   415.25692+-1.77055       ? might be 1.0428x slower
   typescript                               x2     885.87708+-27.28859   ?   886.44458+-21.54617      ?

   <geometric>                                       7.10305+-0.02210    !     7.15650+-0.01738       ! definitely 1.0075x slower

                                                            BO                       AXE                                        
Kraken:
   ai-astar                                          356.661+-8.679            352.213+-11.858          might be 1.0126x faster
   audio-beat-detection                              114.928+-2.613            114.609+-2.115         
   audio-dft                                         149.980+-2.451            148.105+-4.527           might be 1.0127x faster
   audio-fft                                          83.971+-2.826             83.511+-1.147         
   audio-oscillator                                  222.603+-8.561            219.808+-0.934           might be 1.0127x faster
   imaging-darkroom                                  111.209+-0.554            110.752+-0.894         
   imaging-desaturate                                 69.593+-0.858             69.063+-1.258         
   imaging-gaussian-blur                             117.873+-0.783            117.503+-1.226         
   json-parse-financial                               46.727+-1.032      ?      49.478+-4.803         ? might be 1.0589x slower
   json-stringify-tinderbox                           59.842+-0.576             58.777+-0.844           might be 1.0181x faster
   stanford-crypto-aes                                64.979+-3.726             64.101+-0.894           might be 1.0137x faster
   stanford-crypto-ccm                                59.819+-10.008            59.271+-9.840         
   stanford-crypto-pbkdf2                            183.386+-15.966           179.328+-2.747           might be 1.0226x faster
   stanford-crypto-sha256-iterative                   58.809+-2.343             57.741+-0.562           might be 1.0185x faster

   <arithmetic>                                      121.456+-1.539            120.304+-1.733           might be 1.0096x faster

                                                            BO                       AXE                                        
JSRegress:
   abs-boolean                                        2.8148+-0.0581     ?      2.8397+-0.1532        ?
   adapt-to-double-divide                            17.6067+-0.3011           17.5671+-0.2994        
   aliased-arguments-getbyval                         1.4095+-0.1380     ?      1.4480+-0.1718        ? might be 1.0273x slower
   allocate-big-object                                2.5697+-0.0448     ?      2.7820+-0.1826        ? might be 1.0826x slower
   arguments-named-and-reflective                    12.3537+-0.5486           12.1307+-0.2705          might be 1.0184x faster
   arguments-out-of-bounds                           15.4832+-0.4528           15.3765+-1.3123        
   arguments-strict-mode                             11.1330+-0.0387     ^     10.8450+-0.1376        ^ definitely 1.0266x faster
   arguments                                          9.7797+-0.1601     ?      9.9943+-0.4190        ? might be 1.0219x slower
   arity-mismatch-inlining                            1.0500+-0.0261            1.0100+-0.0329          might be 1.0396x faster
   array-access-polymorphic-structure                 6.4428+-0.3370     ?      6.7060+-0.2127        ? might be 1.0408x slower
   array-nonarray-polymorhpic-access                 37.4465+-0.9177           36.2528+-2.9532          might be 1.0329x faster
   array-prototype-every                             90.8048+-0.4646           90.3806+-0.6239        
   array-prototype-forEach                           87.9794+-0.5539     ?     88.0450+-1.2445        ?
   array-prototype-map                              100.7972+-2.2734           97.5763+-1.1320          might be 1.0330x faster
   array-prototype-some                              92.2256+-2.5984           90.6516+-0.6609          might be 1.0174x faster
   array-splice-contiguous                           45.6198+-2.2085           43.8127+-0.8394          might be 1.0412x faster
   array-with-double-add                              4.3492+-0.1096            4.3045+-0.0606          might be 1.0104x faster
   array-with-double-increment                        3.4250+-0.0825            3.4003+-0.0290        
   array-with-double-mul-add                          5.4216+-0.2864            5.2970+-0.1427          might be 1.0235x faster
   array-with-double-sum                              3.4872+-0.0792            3.4849+-0.0622        
   array-with-int32-add-sub                           7.2263+-0.2456     ?      7.3370+-0.2539        ? might be 1.0153x slower
   array-with-int32-or-double-sum                     3.6368+-0.1252            3.5980+-0.2351          might be 1.0108x faster
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     33.6624+-0.3875           33.0543+-0.2374          might be 1.0184x faster
   ArrayBuffer-DataView-alloc-long-lived             14.3377+-0.3203           14.0626+-0.4097          might be 1.0196x faster
   ArrayBuffer-Int32Array-byteOffset                  4.0290+-0.0567     ?      4.0678+-0.0788        ?
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     34.7370+-0.6488           34.5241+-0.3996        
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     23.4542+-0.2930           23.2030+-0.5114          might be 1.0108x faster
   ArrayBuffer-Int8Array-alloc-long-lived            13.5059+-0.1414     ^     13.0240+-0.2091        ^ definitely 1.0370x faster
   ArrayBuffer-Int8Array-alloc                       11.2415+-0.2754           11.0846+-0.7867          might be 1.0142x faster
   asmjs_bool_bug                                     8.0206+-0.0438            7.9908+-0.1719        
   assign-custom-setter-polymorphic                   3.5152+-0.2711            3.4401+-0.1307          might be 1.0218x faster
   assign-custom-setter                               4.4233+-0.1679     !      4.7132+-0.0817        ! definitely 1.0655x slower
   basic-set                                          9.9030+-0.2166     ?     10.0807+-0.5603        ? might be 1.0179x slower
   big-int-mul                                        4.3751+-0.0940            4.3116+-0.1320          might be 1.0147x faster
   boolean-test                                       3.2691+-0.0501            3.2653+-0.0569        
   branch-fold                                        4.0764+-0.1755            4.0164+-0.1142          might be 1.0149x faster
   by-val-generic                                     8.5236+-0.7244            8.0345+-0.3946          might be 1.0609x faster
   caching-of-property-access-misses                 20.2668+-0.4267           20.2538+-0.2373        
   call-spread-apply                                 31.7206+-1.0985           31.2189+-0.4828          might be 1.0161x faster
   call-spread-call                                  25.8625+-0.5957           25.6970+-0.7513        
   captured-assignments                               0.5720+-0.0288            0.5339+-0.0403          might be 1.0712x faster
   cast-int-to-double                                 5.7220+-0.0510            5.6318+-0.0743          might be 1.0160x faster
   cell-argument                                      8.6476+-0.2868            8.5615+-0.3369          might be 1.0101x faster
   cfg-simplify                                       3.1169+-0.2141            3.0194+-0.0830          might be 1.0323x faster
   chain-getter-access                               10.6987+-0.4503           10.5282+-0.3111          might be 1.0162x faster
   cmpeq-obj-to-obj-other                            12.0027+-0.0747           11.3866+-0.6566          might be 1.0541x faster
   constant-test                                      5.3818+-0.0641            5.3483+-0.0686        
   DataView-custom-properties                        38.6641+-0.7881           38.3707+-0.8791        
   deconstructing-parameters-overridden-by-function   
                                                      0.6191+-0.0493     ?      0.6602+-0.0372        ? might be 1.0662x slower
   delay-tear-off-arguments-strictmode               13.6933+-0.0566     ?     14.4861+-1.9398        ? might be 1.0579x slower
   deltablue-varargs                                212.1443+-0.7768     ?    215.3542+-2.6421        ? might be 1.0151x slower
   destructuring-arguments                           16.6625+-0.2504     ?     17.0474+-0.1955        ? might be 1.0231x slower
   destructuring-swap                                 5.4918+-0.2611            5.4800+-0.1688        
   direct-arguments-getbyval                          1.4390+-0.0569            1.3622+-0.0644          might be 1.0564x faster
   div-boolean-double                                 5.6625+-0.0725            5.6002+-0.0799          might be 1.0111x faster
   div-boolean                                        8.3529+-0.1398            8.3517+-0.1626        
   double-get-by-val-out-of-bounds                    4.6891+-0.1252            4.6675+-0.1680        
   double-pollution-getbyval                          9.3887+-0.2051     ?      9.4282+-0.0992        ?
   double-pollution-putbyoffset                       4.4229+-0.1320     ?      4.6747+-0.1773        ? might be 1.0569x slower
   double-to-int32-typed-array-no-inline              2.5110+-0.0742     ?      2.5178+-0.0884        ?
   double-to-int32-typed-array                        2.1708+-0.0342     ?      2.1896+-0.0223        ?
   double-to-uint32-typed-array-no-inline             2.5878+-0.0990            2.5852+-0.0957        
   double-to-uint32-typed-array                       2.2595+-0.0695            2.2492+-0.1563        
   elidable-new-object-dag                           41.3300+-0.8578     ?     42.0645+-0.7070        ? might be 1.0178x slower
   elidable-new-object-roflcopter                    45.2447+-0.7553     ?     46.6805+-1.4880        ? might be 1.0317x slower
   elidable-new-object-then-call                     36.8849+-2.8548           35.2172+-0.9325          might be 1.0474x faster
   elidable-new-object-tree                          43.4965+-0.6999     ?     43.8753+-0.9380        ?
   empty-string-plus-int                              5.5972+-0.2293     ?      5.6060+-0.4887        ?
   emscripten-cube2hash                              40.7499+-1.8371           40.1702+-0.3561          might be 1.0144x faster
   exit-length-on-plain-object                       14.0113+-0.2186           13.8025+-0.4554          might be 1.0151x faster
   external-arguments-getbyval                        1.4261+-0.1136            1.4196+-0.1653        
   external-arguments-putbyval                        2.4487+-0.0517     !      2.6233+-0.0366        ! definitely 1.0713x slower
   fixed-typed-array-storage-var-index                1.4809+-0.0256            1.4783+-0.0739        
   fixed-typed-array-storage                          1.1640+-0.0622            1.0690+-0.1006          might be 1.0888x faster
   Float32Array-matrix-mult                           4.7658+-0.3065            4.6041+-0.0188          might be 1.0351x faster
   Float32Array-to-Float64Array-set                  53.8843+-0.5783     ?     55.0107+-1.4081        ? might be 1.0209x slower
   Float64Array-alloc-long-lived                     73.0842+-0.2047           72.5352+-1.1640        
   Float64Array-to-Int16Array-set                    72.1237+-0.9158           72.0578+-0.4884        
   fold-double-to-int                                14.8677+-0.3275           14.6769+-0.3358          might be 1.0130x faster
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                      9.0190+-0.7897            8.8010+-0.3178          might be 1.0248x faster
   fold-get-by-id-to-multi-get-by-offset              7.6708+-0.3417            7.5024+-0.1541          might be 1.0224x faster
   fold-multi-get-by-offset-to-get-by-offset   
                                                      6.4128+-0.9258     ?      7.0507+-0.9764        ? might be 1.0995x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      7.2812+-0.8662     ?      7.9865+-0.1034        ? might be 1.0969x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      6.5530+-0.8903     ?      6.7056+-0.7824        ? might be 1.0233x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                      5.0082+-0.8952            4.9532+-0.7296          might be 1.0111x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     10.4145+-0.7938     ?     10.8802+-1.1618        ? might be 1.0447x slower
   fold-put-by-id-to-multi-put-by-offset              7.2593+-0.4882            7.1056+-0.6513          might be 1.0216x faster
   fold-put-structure                                 4.6037+-0.0838     ?      4.7863+-0.8934        ? might be 1.0397x slower
   for-of-iterate-array-entries                       4.8066+-0.1128     ?      4.8085+-0.1991        ?
   for-of-iterate-array-keys                          3.9550+-0.2060            3.8221+-0.1535          might be 1.0348x faster
   for-of-iterate-array-values                        4.0283+-0.1796     ^      3.6439+-0.1116        ^ definitely 1.1055x faster
   fround                                            19.9265+-0.5943     ?     20.0439+-0.6636        ?
   ftl-library-inlining-dataview                     83.0442+-0.9624     ?     85.2243+-8.9668        ? might be 1.0263x slower
   ftl-library-inlining                              71.4195+-1.3749     ?     75.0284+-19.7030       ? might be 1.0505x slower
   function-dot-apply                                 2.0714+-0.0776     ?      2.2453+-0.2417        ? might be 1.0840x slower
   function-test                                      3.7199+-0.1348            3.6253+-0.2356          might be 1.0261x faster
   function-with-eval                                94.9014+-3.1869           93.6572+-1.0094          might be 1.0133x faster
   gcse-poly-get-less-obvious                        21.6149+-1.2322     ^     18.9980+-0.2784        ^ definitely 1.1377x faster
   gcse-poly-get                                     24.2838+-4.5750     ?     25.5722+-5.6124        ? might be 1.0531x slower
   gcse                                               4.5957+-0.1040            4.5242+-0.1953          might be 1.0158x faster
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.9407+-0.0248     ?      2.9736+-0.1134        ? might be 1.0112x slower
   get-by-id-bimorphic-check-structure-elimination   
                                                      7.0533+-0.0649     !      7.5961+-0.2276        ! definitely 1.0770x slower
   get-by-id-chain-from-try-block                     7.1542+-0.2034            7.0644+-0.2444          might be 1.0127x faster
   get-by-id-check-structure-elimination              5.5721+-0.1460     ?      5.6691+-0.1680        ? might be 1.0174x slower
   get-by-id-proto-or-self                           18.0339+-1.6893     ?     18.0582+-0.8109        ?
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      3.6032+-0.0725            3.5621+-0.1072          might be 1.0115x faster
   get-by-id-self-or-proto                           17.9402+-0.3495     ?     18.4219+-1.3352        ? might be 1.0269x slower
   get-by-val-out-of-bounds                           4.5253+-0.0473            4.4748+-0.0958          might be 1.0113x faster
   get_callee_monomorphic                             3.4402+-0.1624     ?      3.6058+-0.2314        ? might be 1.0481x slower
   get_callee_polymorphic                             3.4346+-0.2860     ?      3.7600+-0.3669        ? might be 1.0947x slower
   getter-no-activation                               4.9061+-0.0476            4.8382+-0.0554          might be 1.0140x faster
   getter-richards                                  106.3368+-2.3793          103.0007+-1.1644          might be 1.0324x faster
   getter                                             5.9396+-0.0833     ?      5.9548+-0.1079        ?
   global-var-const-infer-fire-from-opt               1.0635+-0.0991     ?      1.0765+-0.0648        ? might be 1.0122x slower
   global-var-const-infer                             1.1279+-0.0788     ?      1.1580+-0.1641        ? might be 1.0267x slower
   HashMap-put-get-iterate-keys                      28.0142+-0.6381           27.8768+-0.4181        
   HashMap-put-get-iterate                           28.2142+-0.3095           28.1274+-0.2841        
   HashMap-string-put-get-iterate                    27.6838+-0.3113     ?     27.9554+-0.9912        ?
   hoist-make-rope                                   12.0707+-1.2891           12.0505+-1.5048        
   hoist-poly-check-structure-effectful-loop   
                                                      5.4206+-0.1666     ?      5.5257+-0.2454        ? might be 1.0194x slower
   hoist-poly-check-structure                         3.9943+-0.0845            3.9142+-0.1104          might be 1.0204x faster
   imul-double-only                                   8.1747+-0.3473            7.9510+-0.3530          might be 1.0281x faster
   imul-int-only                                      9.8508+-0.4407     ?     10.0049+-0.2885        ? might be 1.0156x slower
   imul-mixed                                         7.6109+-0.1565            7.5436+-0.2185        
   in-four-cases                                     20.1788+-0.3974           19.9685+-0.1683          might be 1.0105x faster
   in-one-case-false                                 10.8085+-0.1625     ?     10.8806+-0.1624        ?
   in-one-case-true                                  10.8165+-0.1081     ?     10.9340+-0.1164        ? might be 1.0109x slower
   in-two-cases                                      11.1406+-0.3142           11.0443+-0.1523        
   indexed-properties-in-objects                      3.1807+-0.1735     ?      3.1893+-0.1043        ?
   infer-closure-const-then-mov-no-inline             4.1402+-0.0370            3.9672+-0.1996          might be 1.0436x faster
   infer-closure-const-then-mov                      17.7077+-0.8302           17.6288+-0.3209        
   infer-closure-const-then-put-to-scope-no-inline   
                                                     12.0037+-0.0973     ?     12.0872+-0.3725        ?
   infer-closure-const-then-put-to-scope             23.0732+-0.7907     ?     23.5395+-0.6151        ? might be 1.0202x slower
   infer-closure-const-then-reenter-no-inline   
                                                     50.9787+-0.2928     ?     51.8077+-2.8530        ? might be 1.0163x slower
   infer-closure-const-then-reenter                 131.9565+-2.1652          130.6250+-2.4607          might be 1.0102x faster
   infer-constant-global-property                    31.8063+-0.6076     ?     32.9803+-4.4425        ? might be 1.0369x slower
   infer-constant-property                            2.9073+-0.0744     ?      2.9390+-0.1046        ? might be 1.0109x slower
   infer-one-time-closure-ten-vars                   12.8087+-0.1805           12.6422+-0.9250          might be 1.0132x faster
   infer-one-time-closure-two-vars                   11.8967+-0.6442           11.8486+-0.3323        
   infer-one-time-closure                            11.7468+-0.1782     ?     11.9232+-0.2712        ? might be 1.0150x slower
   infer-one-time-deep-closure                       21.1288+-0.6738     ?     21.2053+-0.0971        ?
   inline-arguments-access                            4.1879+-0.2007     ?      4.3747+-0.1490        ? might be 1.0446x slower
   inline-arguments-aliased-access                    4.1913+-0.2689     ?      4.6992+-0.4538        ? might be 1.1212x slower
   inline-arguments-local-escape                      4.2306+-0.2128     ?      4.3962+-0.2100        ? might be 1.0392x slower
   inline-get-scoped-var                              4.8300+-0.1073            4.7934+-0.0529        
   inlined-put-by-id-transition                      10.4809+-0.2272     ?     10.6790+-0.9499        ? might be 1.0189x slower
   int-or-other-abs-then-get-by-val                   5.3652+-0.0479     ?      5.3665+-0.2219        ?
   int-or-other-abs-zero-then-get-by-val             17.8698+-0.3472           17.7800+-0.0988        
   int-or-other-add-then-get-by-val                   4.6860+-0.1790            4.5706+-0.0452          might be 1.0253x faster
   int-or-other-add                                   5.7279+-0.0638     ?      5.8004+-0.2287        ? might be 1.0127x slower
   int-or-other-div-then-get-by-val                   4.6070+-0.0962            4.5435+-0.0688          might be 1.0140x faster
   int-or-other-max-then-get-by-val                   4.7268+-0.1286     ?      4.8913+-0.3043        ? might be 1.0348x slower
   int-or-other-min-then-get-by-val                   4.9790+-0.1031     ^      4.7540+-0.1017        ^ definitely 1.0473x faster
   int-or-other-mod-then-get-by-val                   4.2628+-0.1031            4.1643+-0.2026          might be 1.0236x faster
   int-or-other-mul-then-get-by-val                   4.4700+-0.0833            4.3216+-0.0733          might be 1.0343x faster
   int-or-other-neg-then-get-by-val                   5.0945+-0.2202            4.9592+-0.0382          might be 1.0273x faster
   int-or-other-neg-zero-then-get-by-val             18.2416+-0.5592           17.7065+-0.4181          might be 1.0302x faster
   int-or-other-sub-then-get-by-val                   4.6973+-0.1234            4.6655+-0.0723        
   int-or-other-sub                                   3.8598+-0.2715            3.7228+-0.1555          might be 1.0368x faster
   int-overflow-local                                 4.7143+-0.1620            4.6948+-0.1348        
   Int16Array-alloc-long-lived                       49.9990+-0.7955     ?     51.6949+-0.9941        ? might be 1.0339x slower
   Int16Array-bubble-sort-with-byteLength            21.3203+-1.1449           21.0838+-0.6582          might be 1.0112x faster
   Int16Array-bubble-sort                            21.9567+-2.2643           21.1935+-0.8225          might be 1.0360x faster
   Int16Array-load-int-mul                            1.7230+-0.0440            1.6688+-0.0449          might be 1.0325x faster
   Int16Array-to-Int32Array-set                      57.0495+-0.5401     ?     57.5585+-1.2246        ?
   Int32Array-alloc-large                            21.3757+-0.4047     ?     21.4184+-0.8540        ?
   Int32Array-alloc-long-lived                       56.4711+-0.9052     ?     57.1424+-0.6262        ? might be 1.0119x slower
   Int32Array-alloc                                   2.7802+-0.0929     !      3.0582+-0.1316        ! definitely 1.1000x slower
   Int32Array-Int8Array-view-alloc                    6.9559+-0.1041     ?      7.0066+-0.1811        ?
   int52-spill                                        7.0180+-0.1843            6.9558+-0.3789        
   Int8Array-alloc-long-lived                        45.5339+-0.2902     !     46.6559+-0.4017        ! definitely 1.0246x slower
   Int8Array-load-with-byteLength                     3.6703+-0.1019     ?      3.7048+-0.2318        ?
   Int8Array-load                                     3.7167+-0.1097            3.6399+-0.2067          might be 1.0211x faster
   integer-divide                                    12.2686+-0.1583           12.2386+-0.2442        
   integer-modulo                                     2.5461+-0.1675            2.3604+-0.2080          might be 1.0787x faster
   large-int-captured                                 5.4034+-0.0997     ?      5.6616+-0.2855        ? might be 1.0478x slower
   large-int-neg                                     17.2428+-0.3136     ?     17.2847+-0.4246        ?
   large-int                                         15.8444+-0.0749     ?     16.1617+-0.6098        ? might be 1.0200x slower
   logical-not                                        5.0551+-0.2096            4.9691+-0.1296          might be 1.0173x faster
   lots-of-fields                                    13.3174+-0.3685     ?     13.4628+-0.4353        ? might be 1.0109x slower
   make-indexed-storage                               3.2976+-0.5759            3.2427+-0.4028          might be 1.0169x faster
   make-rope-cse                                      4.1738+-1.2260            3.9447+-0.1648          might be 1.0581x faster
   marsaglia-larger-ints                             41.1466+-0.9740           40.8591+-0.8946        
   marsaglia-osr-entry                               23.2627+-0.3849           23.2353+-0.5706        
   max-boolean                                        2.6942+-0.1254            2.6912+-0.0833        
   method-on-number                                  19.9265+-0.3582     ^     18.1041+-0.3347        ^ definitely 1.1007x faster
   min-boolean                                        2.7136+-0.1352     ?      2.7311+-0.2204        ?
   minus-boolean-double                               3.3718+-0.1612            3.3435+-0.0267        
   minus-boolean                                      2.4975+-0.0694            2.4837+-0.0653        
   misc-strict-eq                                    39.0215+-1.0617           38.7501+-1.0687        
   mod-boolean-double                                11.7204+-0.3007           11.6471+-0.3862        
   mod-boolean                                        8.4581+-0.3682            8.4072+-0.2778        
   mul-boolean-double                                 3.9737+-0.1784     ?      4.0005+-0.2276        ?
   mul-boolean                                        3.0344+-0.0278     ?      3.0580+-0.0845        ?
   neg-boolean                                        3.3537+-0.1218     ?      3.4313+-0.2416        ? might be 1.0231x slower
   negative-zero-divide                               0.4390+-0.0298            0.4246+-0.0338          might be 1.0341x faster
   negative-zero-modulo                               0.4515+-0.0722            0.4447+-0.0265          might be 1.0152x faster
   negative-zero-negate                               0.4140+-0.0139            0.4110+-0.0262        
   nested-function-parsing                           37.5920+-0.2746           37.1382+-0.3264          might be 1.0122x faster
   new-array-buffer-dead                              2.9965+-0.0792     ?      3.0215+-0.0751        ?
   new-array-buffer-push                              6.1622+-0.1607     ?      6.4418+-0.2028        ? might be 1.0454x slower
   new-array-dead                                    12.6097+-1.0899           12.3341+-1.3894          might be 1.0223x faster
   new-array-push                                     4.0259+-0.2995     ?      4.1082+-0.4264        ? might be 1.0204x slower
   number-test                                        3.2542+-0.0544            3.2458+-0.1223        
   object-closure-call                                5.9286+-0.0473     ?      5.9607+-0.0977        ?
   object-test                                        3.3978+-0.2150     ?      3.4005+-0.1291        ?
   obvious-sink-pathology-taken                     133.4529+-2.9501          129.8032+-2.8443          might be 1.0281x faster
   obvious-sink-pathology                           126.8414+-1.8889          123.1696+-6.6834          might be 1.0298x faster
   obviously-elidable-new-object                     34.7593+-1.1735           34.6291+-0.8315        
   plus-boolean-arith                                 2.7308+-0.1308            2.6824+-0.0873          might be 1.0180x faster
   plus-boolean-double                                3.4185+-0.1279            3.4108+-0.2337        
   plus-boolean                                       2.5561+-0.0163            2.5293+-0.0259          might be 1.0106x faster
   poly-chain-access-different-prototypes-simple   
                                                      3.4877+-0.0805            3.4683+-0.0954        
   poly-chain-access-different-prototypes             2.8695+-0.1216            2.8465+-0.0469        
   poly-chain-access-simpler                          3.5807+-0.3283            3.5659+-0.1352        
   poly-chain-access                                  2.8284+-0.0721            2.7985+-0.1076          might be 1.0107x faster
   poly-stricteq                                     60.5480+-0.3929           60.3116+-0.2318        
   polymorphic-array-call                             1.7210+-0.2605     ?      1.7466+-0.0459        ? might be 1.0149x slower
   polymorphic-get-by-id                              3.3597+-0.1357            3.2775+-0.1163          might be 1.0251x faster
   polymorphic-put-by-id                             30.3734+-2.5643           29.7443+-2.1774          might be 1.0211x faster
   polymorphic-structure                             15.4373+-0.2169     ?     15.4410+-0.2041        ?
   polyvariant-monomorphic-get-by-id                  9.4014+-0.1655            9.2325+-0.1654          might be 1.0183x faster
   proto-getter-access                               10.4927+-0.1389     ?     10.6310+-0.1891        ? might be 1.0132x slower
   put-by-id-replace-and-transition                   8.7256+-0.1586     ?      9.0667+-0.1995        ? might be 1.0391x slower
   put-by-id-slightly-polymorphic                     3.1274+-0.0883            3.0538+-0.1237          might be 1.0241x faster
   put-by-id                                         13.5238+-0.2680           13.0048+-0.2646          might be 1.0399x faster
   put-by-val-direct                                  0.7431+-0.0097     ^      0.5938+-0.0342        ^ definitely 1.2515x faster
   put-by-val-large-index-blank-indexing-type   
                                                      5.6142+-0.1878     ?      5.7003+-0.2342        ? might be 1.0153x slower
   put-by-val-machine-int                             2.5745+-0.0741     ?      2.7729+-0.1379        ? might be 1.0771x slower
   rare-osr-exit-on-local                            15.5408+-0.1195           15.4777+-0.1628        
   register-pressure-from-osr                        22.7615+-0.2151           22.6348+-0.6718        
   setter                                             5.9764+-0.0596            5.9481+-0.0984        
   simple-activation-demo                            26.9961+-0.3074     ^     26.0160+-0.1185        ^ definitely 1.0377x faster
   simple-getter-access                              13.6696+-0.5367           13.5219+-0.1977          might be 1.0109x faster
   simple-poly-call-nested                            9.1648+-0.2443            9.0678+-0.2524          might be 1.0107x faster
   simple-poly-call                                   1.6288+-0.2101     ?      1.7059+-0.1812        ? might be 1.0473x slower
   sin-boolean                                       19.4198+-0.7811           19.3460+-0.6366        
   sinkable-new-object-dag                           69.6763+-0.9612     !     72.2692+-0.4288        ! definitely 1.0372x slower
   sinkable-new-object-taken                         53.9908+-4.5998     ?     54.2162+-5.0917        ?
   sinkable-new-object                               38.1906+-0.7155     ?     38.5447+-0.9011        ?
   slow-array-profile-convergence                     3.2375+-0.2065            3.0195+-0.1024          might be 1.0722x faster
   slow-convergence                                   3.6523+-0.0779            3.5319+-0.1522          might be 1.0341x faster
   sorting-benchmark                                 22.6425+-0.5354           22.2411+-0.4376          might be 1.0180x faster
   sparse-conditional                                 1.3690+-0.0870            1.3502+-0.1364          might be 1.0140x faster
   splice-to-remove                                  17.4984+-0.8705           17.0923+-1.2712          might be 1.0238x faster
   string-char-code-at                               16.7932+-0.0964           16.6844+-0.1554        
   string-concat-object                               2.0745+-0.0937     ?      2.2264+-0.1022        ? might be 1.0732x slower
   string-concat-pair-object                          2.0403+-0.0356     !      2.2733+-0.1877        ! definitely 1.1142x slower
   string-concat-pair-simple                         11.5300+-0.2977     ?     11.7729+-0.2614        ? might be 1.0211x slower
   string-concat-simple                              11.6546+-0.2020     !     12.1947+-0.2823        ! definitely 1.0463x slower
   string-cons-repeat                                 7.2703+-0.1621     ?      7.5312+-0.2758        ? might be 1.0359x slower
   string-cons-tower                                  7.2968+-0.0888     !      7.5643+-0.0372        ! definitely 1.0367x slower
   string-equality                                   18.1639+-0.4136     ?     18.4255+-0.4140        ? might be 1.0144x slower
   string-get-by-val-big-char                         7.4581+-0.2741     ?      7.5136+-0.3198        ?
   string-get-by-val-out-of-bounds-insane             4.3908+-0.3296            3.8765+-0.2553          might be 1.1327x faster
   string-get-by-val-out-of-bounds                    5.7872+-0.0423            5.7085+-0.1808          might be 1.0138x faster
   string-get-by-val                                  3.6000+-0.2677            3.4519+-0.1085          might be 1.0429x faster
   string-hash                                        2.3055+-0.1121     ?      2.3130+-0.0957        ?
   string-long-ident-equality                        14.8979+-0.1595     ?     14.9088+-0.2109        ?
   string-out-of-bounds                              15.2498+-0.3209           15.2038+-0.1816        
   string-repeat-arith                               32.4025+-0.1446     ?     32.6853+-0.3497        ?
   string-sub                                        64.3193+-2.4941           63.9529+-1.1066        
   string-test                                        3.1917+-0.1223            3.1837+-0.1180        
   string-var-equality                               31.4825+-0.2783           31.3152+-0.2516        
   structure-hoist-over-transitions                   2.6018+-0.1002     ?      2.6497+-0.0489        ? might be 1.0184x slower
   substring-concat-weird                            40.2578+-0.8437     ?     40.8912+-0.5790        ? might be 1.0157x slower
   substring-concat                                  41.7631+-0.7722     ?     42.3220+-0.4406        ? might be 1.0134x slower
   substring                                         47.0643+-0.8086           46.8294+-0.5450        
   switch-char-constant                               3.0044+-0.0773            2.9675+-0.0725          might be 1.0124x faster
   switch-char                                        7.1210+-0.0262            7.0292+-0.0712          might be 1.0131x faster
   switch-constant                                    8.4805+-0.5671     ?      8.5723+-0.0803        ? might be 1.0108x slower
   switch-string-basic-big-var                       15.6741+-0.1579           15.5470+-0.2624        
   switch-string-basic-big                           14.4418+-0.3975           14.3686+-0.3134        
   switch-string-basic-var                           15.1533+-0.4641           15.0434+-0.2871        
   switch-string-basic                               13.7289+-0.2240           13.5805+-0.1759          might be 1.0109x faster
   switch-string-big-length-tower-var                20.7231+-0.2961           20.6047+-0.3434        
   switch-string-length-tower-var                    15.5130+-0.2731           15.4240+-0.2845        
   switch-string-length-tower                        13.3013+-0.4077     ?     13.3380+-0.2463        ?
   switch-string-short                               13.1188+-0.1897     ?     13.3082+-0.4225        ? might be 1.0144x slower
   switch                                            12.4352+-0.4226     ?     12.9710+-0.1405        ? might be 1.0431x slower
   tear-off-arguments-simple                          3.4771+-0.3934            3.2936+-0.1115          might be 1.0557x faster
   tear-off-arguments                                 4.5708+-0.2663     ?      4.7083+-0.0571        ? might be 1.0301x slower
   temporal-structure                                12.9910+-0.2481           12.7654+-0.4187          might be 1.0177x faster
   tilde-tilde-folding                               42.5036+-2.6412           41.7748+-0.8327          might be 1.0174x faster
   to-int32-boolean                                  14.4003+-0.2451           14.3705+-0.4932        
   try-catch-get-by-val-cloned-arguments             13.9913+-0.6377           13.7917+-0.3377          might be 1.0145x faster
   try-catch-get-by-val-direct-arguments              5.9280+-0.5385            5.8954+-0.1450        
   try-catch-get-by-val-scoped-arguments              6.7288+-0.2134     ?      6.8700+-0.1871        ? might be 1.0210x slower
   undefined-property-access                        406.0381+-5.5785          404.8080+-1.8144        
   undefined-test                                     3.2967+-0.0407     ?      3.3137+-0.1099        ?
   unprofiled-licm                                   22.9076+-0.4121     ?     23.1360+-0.2794        ?
   varargs-call                                      15.7157+-0.5434     ?     15.7200+-0.2393        ?
   varargs-construct-inline                          21.9393+-0.5694     ?     22.4552+-0.4651        ? might be 1.0235x slower
   varargs-construct                                 33.6310+-0.5160     ?     33.9678+-0.4645        ? might be 1.0100x slower
   varargs-inline                                     9.2563+-0.3387     ?      9.3724+-0.7592        ? might be 1.0125x slower
   varargs-strict-mode                               10.0715+-0.1949     ?     10.2230+-0.1128        ? might be 1.0150x slower
   varargs                                            9.9409+-0.1656     ?     10.2992+-0.5852        ? might be 1.0360x slower
   weird-inlining-const-prop                          2.3953+-0.1086     ?      2.4322+-0.0778        ? might be 1.0154x slower

   <geometric>                                        8.8982+-0.0241            8.8882+-0.0243          might be 1.0011x faster

                                                            BO                       AXE                                        
AsmBench:
   bigfib.cpp                                       529.8680+-1.3170          527.3084+-2.5699        
   cray.c                                           464.4332+-4.3666     ?    465.7454+-1.8677        ?
   dry.c                                            522.3862+-18.5921         511.2756+-16.3415         might be 1.0217x faster
   FloatMM.c                                        829.5422+-1.6183     ?    830.7151+-10.3146       ?
   gcc-loops.cpp                                   4416.0571+-21.9510        4414.7697+-22.8542       
   n-body.c                                        1051.8797+-2.8320         1051.5721+-3.2741        
   Quicksort.c                                      472.2245+-5.9797     ?    472.3325+-10.3054       ?
   stepanov_container.cpp                          3934.6675+-17.2783    ?   3943.5222+-18.1979       ?
   Towers.c                                         281.8233+-4.4983     ?    282.9013+-0.5190        ?

   <geometric>                                      860.7395+-3.4744          859.1751+-4.0191          might be 1.0018x faster

                                                            BO                       AXE                                        
CompressionBench:
   huffman                                          385.8627+-1.3242          383.7420+-2.8097        
   arithmetic-simple                                428.1730+-4.5776          423.6381+-3.5442          might be 1.0107x faster
   arithmetic-precise                               316.8400+-5.0096          314.5815+-7.9833        
   arithmetic-complex-precise                       313.4549+-1.6838          309.4612+-2.7077          might be 1.0129x faster
   arithmetic-precise-order-0                       451.9055+-4.7456          447.8956+-6.4474        
   arithmetic-precise-order-1                       344.3370+-3.2021     ?    344.8810+-4.2263        ?
   arithmetic-precise-order-2                       393.2943+-3.7653     ?    399.0703+-3.1402        ? might be 1.0147x slower
   arithmetic-simple-order-1                        443.4107+-3.2495     ?    448.4453+-6.0606        ? might be 1.0114x slower
   arithmetic-simple-order-2                        505.0058+-8.1018     ?    507.8505+-2.5149        ?
   lz-string                                        310.7788+-5.8369          309.5888+-7.1182        

   <geometric>                                      384.0859+-0.4046          383.4755+-1.0894          might be 1.0016x faster

                                                            BO                       AXE                                        
Geomean of preferred means:
   <scaled-result>                                   66.8520+-0.0995           66.7673+-0.1557          might be 1.0013x faster
Comment 3 Mark Hahnenberg 2015-04-15 15:56:07 PDT
Looks like an Octane regression, no?
Comment 4 Andreas Kling 2015-04-15 16:02:04 PDT
(In reply to comment #3)
> Looks like an Octane regression, no?

Oh, you're right. I also realized that I ran the benchmarks with only MarkedBlock changed, and WeakBlock still at 4kB. Rerunning now, will post once ready!
Comment 5 Andreas Kling 2015-04-15 17:08:59 PDT
Okay, here we go again!

There are indeed some small slowdowns on Octane and LongSpider.
And some speedups on Kraken and CompressionBench.
Nothing scary IMO.

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

VMs tested:
"BO" at /Volumes/Data/Source/Safari/ToT-Clean/WebKitBuild/Release/jsc
"AXE" at /Volumes/Data/Source/Safari/OpenSource/WebKitBuild/Release/jsc

Collected 4 samples per benchmark/VM, with 4 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.

                                                            BO                       AXE                                        
SunSpider:
   3d-cube                                            5.4741+-0.1843            5.3132+-0.0743          might be 1.0303x faster
   3d-morph                                           6.1888+-0.0762            6.0787+-0.1081          might be 1.0181x faster
   3d-raytrace                                        6.7092+-0.1250            6.7036+-0.1978        
   access-binary-trees                                2.3765+-0.0708     ?      2.4100+-0.1203        ? might be 1.0141x slower
   access-fannkuch                                    6.1437+-0.1161            6.1231+-0.0444        
   access-nbody                                       3.1929+-0.0228            3.0881+-0.1689          might be 1.0340x faster
   access-nsieve                                      3.8229+-0.2081            3.6578+-0.0668          might be 1.0451x faster
   bitops-3bit-bits-in-byte                           1.8460+-0.0727            1.8051+-0.0698          might be 1.0227x faster
   bitops-bits-in-byte                                3.6675+-0.0896     ?      3.7225+-0.2566        ? might be 1.0150x slower
   bitops-bitwise-and                                 2.3305+-0.0495     ?      2.3790+-0.0734        ? might be 1.0208x slower
   bitops-nsieve-bits                                 3.9653+-0.1277            3.9443+-0.1333        
   controlflow-recursive                              2.4592+-0.1438            2.3953+-0.0182          might be 1.0267x faster
   crypto-aes                                         4.6289+-0.3583            4.4562+-0.0850          might be 1.0387x faster
   crypto-md5                                         2.6910+-0.1181            2.6414+-0.0907          might be 1.0188x faster
   crypto-sha1                                        2.8602+-0.0867            2.7927+-0.0703          might be 1.0241x faster
   date-format-tofte                                 10.0085+-0.1423     ?     10.2320+-0.2735        ? might be 1.0223x slower
   date-format-xparb                                  5.7372+-0.0720            5.5038+-0.4760          might be 1.0424x faster
   math-cordic                                        3.3930+-0.0735            3.3528+-0.0804          might be 1.0120x faster
   math-partial-sums                                  5.7034+-0.6629            5.4871+-0.1043          might be 1.0394x faster
   math-spectral-norm                                 2.1898+-0.0173            2.1550+-0.0759          might be 1.0161x faster
   regexp-dna                                         7.3167+-0.0738     ?      7.4305+-0.2971        ? might be 1.0156x slower
   string-base64                                      4.7261+-0.3191            4.6645+-0.1319          might be 1.0132x faster
   string-fasta                                       7.0090+-0.1081            6.8469+-0.1715          might be 1.0237x faster
   string-tagcloud                                    9.9017+-0.1473            9.7538+-0.1465          might be 1.0152x faster
   string-unpack-code                                21.0257+-0.2818           20.7527+-0.3030          might be 1.0132x faster
   string-validate-input                              5.0233+-0.1215     ?      5.1132+-0.3381        ? might be 1.0179x slower

   <arithmetic>                                       5.3997+-0.0382            5.3386+-0.0498          might be 1.0114x faster

                                                            BO                       AXE                                        
LongSpider:
   3d-cube                                          896.0269+-7.0199          872.7719+-21.8086         might be 1.0266x faster
   3d-morph                                        1620.6433+-4.5353     ?   1622.4252+-3.7885        ?
   3d-raytrace                                      782.4073+-3.4452     ?    784.0435+-8.7423        ?
   access-binary-trees                              995.2147+-5.4526          994.9916+-7.1671        
   access-fannkuch                                  355.0831+-1.7735          349.1285+-11.1283         might be 1.0171x faster
   access-nbody                                     645.8480+-1.7874     !    653.6118+-5.9621        ! definitely 1.0120x slower
   access-nsieve                                    827.0486+-5.2656          823.9493+-5.0607        
   bitops-3bit-bits-in-byte                          49.2617+-0.2073           49.2028+-0.6145        
   bitops-bits-in-byte                               98.0665+-1.5095           97.9528+-1.7409        
   bitops-nsieve-bits                               759.9272+-10.7426    ?    767.3227+-40.7363       ?
   controlflow-recursive                            525.7874+-2.1345          525.4905+-1.0770        
   crypto-aes                                       717.9355+-6.5422          716.8865+-5.8339        
   crypto-md5                                       596.7657+-8.8157          590.4872+-8.6572          might be 1.0106x faster
   crypto-sha1                                      661.0462+-15.1386         652.5642+-9.0912          might be 1.0130x faster
   date-format-tofte                                786.9632+-7.2478     ?    818.2549+-33.9533       ? might be 1.0398x slower
   date-format-xparb                                786.2692+-33.7915    ?    850.1767+-184.0447      ? might be 1.0813x slower
   math-cordic                                      627.1616+-3.4214          626.4023+-2.7529        
   math-partial-sums                                537.3233+-3.0201          536.3049+-7.4863        
   math-spectral-norm                               598.3804+-1.5967     ?    603.2363+-6.2826        ?
   string-base64                                    363.2280+-0.7895     !    377.0786+-3.9922        ! definitely 1.0381x slower
   string-fasta                                     464.0621+-10.4461         451.4243+-10.1278         might be 1.0280x faster
   string-tagcloud                                  230.7266+-1.9197          227.9215+-1.0017          might be 1.0123x faster

   <geometric>                                      520.1489+-1.7432     ?    521.6337+-5.4703        ? might be 1.0029x slower

                                                            BO                       AXE                                        
V8Spider:
   crypto                                            59.5106+-0.6563     ?     59.5667+-0.6215        ?
   deltablue                                         78.1448+-0.8809     ?     80.1292+-2.7493        ? might be 1.0254x slower
   earley-boyer                                      43.0155+-0.7699     !     45.7155+-1.1074        ! definitely 1.0628x slower
   raytrace                                          33.9033+-0.6223     ?     34.9352+-1.4111        ? might be 1.0304x slower
   regexp                                            70.2372+-0.5313     ^     68.3010+-0.6926        ^ definitely 1.0283x faster
   richards                                          84.4021+-1.8905           84.2354+-0.9394        
   splay                                             37.7021+-1.9639     ?     37.8451+-1.9036        ?

   <geometric>                                       54.9612+-0.2947     ?     55.6769+-0.7267        ? might be 1.0130x slower

                                                            BO                       AXE                                        
Octane:
   encrypt                                           0.23496+-0.00315    ?     0.23508+-0.00625       ?
   decrypt                                           4.15004+-0.14803    ?     4.20214+-0.13021       ? might be 1.0126x slower
   deltablue                                x2       0.21546+-0.00577    ?     0.21616+-0.00179       ?
   earley                                            0.59828+-0.00259    ?     0.59998+-0.00337       ?
   boyer                                             6.72205+-0.02982    !     6.82320+-0.05083       ! definitely 1.0150x slower
   navier-stokes                            x2       5.52610+-0.01171          5.51212+-0.01243       
   raytrace                                 x2       1.27420+-0.03142          1.25666+-0.08951         might be 1.0140x faster
   richards                                 x2       0.12254+-0.00276    ?     0.12295+-0.00250       ?
   splay                                    x2       0.39381+-0.00476    ?     0.40375+-0.00781       ? might be 1.0252x slower
   regexp                                   x2      33.05398+-0.83730         32.76362+-0.63422       
   pdfjs                                    x2      46.66908+-0.27157    ?    46.82159+-0.44746       ?
   mandreel                                 x2      55.98000+-0.15696    ?    56.03301+-0.31625       ?
   gbemu                                    x2      41.95008+-0.13824    !    42.55622+-0.36284       ! definitely 1.0144x slower
   closure                                           0.61055+-0.00158    ?     0.61206+-0.00554       ?
   jquery                                            7.81796+-0.03983    ?     7.86789+-0.02880       ?
   box2d                                    x2      13.50487+-0.11417    ?    13.55646+-0.12083       ?
   zlib                                     x2     411.75140+-2.74567        403.51801+-27.59831        might be 1.0204x faster
   typescript                               x2     877.98151+-13.49527       874.86615+-22.26265      

   <geometric>                                       7.07742+-0.02215    ?     7.08845+-0.04297       ? might be 1.0016x slower

                                                            BO                       AXE                                        
Kraken:
   ai-astar                                          352.328+-1.790      ?     356.414+-7.684         ? might be 1.0116x slower
   audio-beat-detection                              112.720+-0.820      ?     113.069+-1.824         ?
   audio-dft                                         147.960+-2.977      ?     148.936+-2.579         ?
   audio-fft                                          82.787+-1.097             82.423+-0.627         
   audio-oscillator                                  218.589+-4.241            217.844+-2.658         
   imaging-darkroom                                  110.396+-1.325      ?     110.974+-2.554         ?
   imaging-desaturate                                 70.104+-4.511             68.739+-0.971           might be 1.0199x faster
   imaging-gaussian-blur                             116.913+-0.677      ?     117.072+-0.185         ?
   json-parse-financial                               46.315+-0.331      ?      47.114+-0.818         ? might be 1.0172x slower
   json-stringify-tinderbox                           59.681+-0.466      ^      58.284+-0.692         ^ definitely 1.0240x faster
   stanford-crypto-aes                                66.863+-2.276      ^      63.300+-1.007         ^ definitely 1.0563x faster
   stanford-crypto-ccm                                55.919+-8.809      ?      61.783+-8.291         ? might be 1.1049x slower
   stanford-crypto-pbkdf2                            177.827+-1.129            176.338+-1.580         
   stanford-crypto-sha256-iterative                   57.606+-0.292      ?      57.752+-1.480         ?

   <arithmetic>                                      119.715+-0.560      ?     120.003+-0.616         ? might be 1.0024x slower

                                                            BO                       AXE                                        
JSRegress:
   abs-boolean                                        2.8173+-0.0573     ?      2.8281+-0.0669        ?
   adapt-to-double-divide                            17.4714+-0.5094           17.3600+-0.1415        
   aliased-arguments-getbyval                         1.3651+-0.0914     ?      1.4418+-0.1547        ? might be 1.0562x slower
   allocate-big-object                                2.5677+-0.4004     ?      2.8524+-0.0775        ? might be 1.1109x slower
   arguments-named-and-reflective                    12.0286+-0.1296           12.0107+-0.1173        
   arguments-out-of-bounds                           15.0981+-0.5692           14.9612+-0.1565        
   arguments-strict-mode                             10.9950+-0.1875           10.9343+-0.3664        
   arguments                                          9.7319+-0.1412     ?      9.8725+-0.3105        ? might be 1.0144x slower
   arity-mismatch-inlining                            1.0148+-0.0285            0.9932+-0.0493          might be 1.0218x faster
   array-access-polymorphic-structure                 6.5537+-0.0889     ?      6.6423+-0.2431        ? might be 1.0135x slower
   array-nonarray-polymorhpic-access                 36.4812+-0.2766     ?     36.6710+-0.3381        ?
   array-prototype-every                             90.1464+-1.2017     ?     91.0908+-4.3909        ? might be 1.0105x slower
   array-prototype-forEach                           87.0969+-0.4316     ?     87.2391+-0.5936        ?
   array-prototype-map                               97.2327+-0.7501     ?     97.8619+-1.4081        ?
   array-prototype-some                              90.7228+-0.4443     ?     90.8922+-4.3676        ?
   array-splice-contiguous                           43.7982+-0.4083           43.0883+-0.7723          might be 1.0165x faster
   array-with-double-add                              4.3928+-0.1850            4.3317+-0.0467          might be 1.0141x faster
   array-with-double-increment                        3.4059+-0.1076            3.4016+-0.0921        
   array-with-double-mul-add                          5.3720+-0.0847            5.2660+-0.0742          might be 1.0201x faster
   array-with-double-sum                              3.4908+-0.0536            3.4796+-0.0272        
   array-with-int32-add-sub                           7.1035+-0.0518            7.0858+-0.0605        
   array-with-int32-or-double-sum                     3.5499+-0.0450            3.5114+-0.0348          might be 1.0110x faster
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     33.0380+-0.3723           32.7570+-0.2811        
   ArrayBuffer-DataView-alloc-long-lived             13.9694+-0.3211     ?     14.1235+-1.6816        ? might be 1.0110x slower
   ArrayBuffer-Int32Array-byteOffset                  4.0685+-0.0388     ?      4.0912+-0.1803        ?
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     33.7691+-0.7439     ?     34.0317+-0.9582        ?
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     23.3192+-0.6015     ^     22.3430+-0.2365        ^ definitely 1.0437x faster
   ArrayBuffer-Int8Array-alloc-long-lived            13.1286+-0.1076           12.8132+-0.2612          might be 1.0246x faster
   ArrayBuffer-Int8Array-alloc                       10.9952+-0.1452           10.8840+-0.3492          might be 1.0102x faster
   asmjs_bool_bug                                     8.0540+-0.0611            7.9628+-0.1138          might be 1.0115x faster
   assign-custom-setter-polymorphic                   3.2777+-0.0567     !      3.5045+-0.1001        ! definitely 1.0692x slower
   assign-custom-setter                               4.4142+-0.1153     !      4.6940+-0.0890        ! definitely 1.0634x slower
   basic-set                                          9.6655+-0.1652     ?      9.8473+-0.5138        ? might be 1.0188x slower
   big-int-mul                                        4.3309+-0.0928            4.2706+-0.3047          might be 1.0141x faster
   boolean-test                                       3.2960+-0.0656            3.2324+-0.0591          might be 1.0197x faster
   branch-fold                                        4.0480+-0.0855            3.9752+-0.1287          might be 1.0183x faster
   by-val-generic                                     8.2089+-0.0792            8.1165+-0.2743          might be 1.0114x faster
   caching-of-property-access-misses                 20.1128+-0.1946           19.9376+-0.0978        
   call-spread-apply                                 31.7484+-1.2365           31.3485+-0.5705          might be 1.0128x faster
   call-spread-call                                  26.0258+-0.4890     ?     26.3915+-1.5904        ? might be 1.0141x slower
   captured-assignments                               0.5976+-0.0065            0.5530+-0.0383          might be 1.0807x faster
   cast-int-to-double                                 5.6972+-0.0617     ?      5.7431+-0.1310        ?
   cell-argument                                      8.5130+-0.1696     ?      8.5534+-0.1070        ?
   cfg-simplify                                       3.0301+-0.0964            2.9847+-0.0897          might be 1.0152x faster
   chain-getter-access                               10.5108+-0.3066     ?     10.5405+-0.2565        ?
   cmpeq-obj-to-obj-other                            11.9147+-0.2273           11.4772+-0.4127          might be 1.0381x faster
   constant-test                                      5.4118+-0.1335            5.3048+-0.0510          might be 1.0202x faster
   DataView-custom-properties                        38.3843+-0.8089           38.3523+-0.8347        
   deconstructing-parameters-overridden-by-function   
                                                      0.6468+-0.0310            0.6459+-0.0521        
   delay-tear-off-arguments-strictmode               13.5410+-0.0476     ?     14.0536+-0.5334        ? might be 1.0379x slower
   deltablue-varargs                                212.1865+-3.1401          211.7460+-3.9058        
   destructuring-arguments                           16.5649+-0.3988     ?     17.1586+-0.4368        ? might be 1.0358x slower
   destructuring-swap                                 5.5198+-0.0656            5.4362+-0.1157          might be 1.0154x faster
   direct-arguments-getbyval                          1.3742+-0.0989     ?      1.4156+-0.1358        ? might be 1.0301x slower
   div-boolean-double                                 5.7558+-0.1490     ^      5.5532+-0.0336        ^ definitely 1.0365x faster
   div-boolean                                        8.3286+-0.0472     ?      8.3409+-0.1118        ?
   double-get-by-val-out-of-bounds                    4.5845+-0.1382     ?      4.6340+-0.1617        ? might be 1.0108x slower
   double-pollution-getbyval                          9.3340+-0.0431     ?      9.4075+-0.1074        ?
   double-pollution-putbyoffset                       4.5351+-0.1725     ?      4.6550+-0.1040        ? might be 1.0264x slower
   double-to-int32-typed-array-no-inline              2.5447+-0.1881            2.4814+-0.0590          might be 1.0255x faster
   double-to-int32-typed-array                        2.1715+-0.0396     ?      2.1805+-0.0358        ?
   double-to-uint32-typed-array-no-inline             2.5470+-0.1075            2.5423+-0.0418        
   double-to-uint32-typed-array                       2.2297+-0.0792            2.1932+-0.0864          might be 1.0167x faster
   elidable-new-object-dag                           40.6246+-0.8986     ?     41.7682+-1.4001        ? might be 1.0282x slower
   elidable-new-object-roflcopter                    44.8602+-0.3141     ?     45.6147+-1.2875        ? might be 1.0168x slower
   elidable-new-object-then-call                     37.5990+-3.8216           37.2524+-3.1255        
   elidable-new-object-tree                          43.1744+-0.9558     ?     43.9600+-0.7924        ? might be 1.0182x slower
   empty-string-plus-int                              5.5025+-0.1102     ?      5.5553+-0.0781        ?
   emscripten-cube2hash                              40.3615+-1.0178           39.6577+-0.3411          might be 1.0177x faster
   exit-length-on-plain-object                       14.1387+-1.2262           13.8103+-0.0369          might be 1.0238x faster
   external-arguments-getbyval                        1.3039+-0.1002     ?      1.3472+-0.0736        ? might be 1.0332x slower
   external-arguments-putbyval                        2.4913+-0.0916     ?      2.5905+-0.1063        ? might be 1.0398x slower
   fixed-typed-array-storage-var-index                1.4556+-0.0177            1.4540+-0.0669        
   fixed-typed-array-storage                          1.1185+-0.0818            1.0825+-0.0782          might be 1.0332x faster
   Float32Array-matrix-mult                           4.7341+-0.1198            4.6537+-0.0626          might be 1.0173x faster
   Float32Array-to-Float64Array-set                  53.6052+-0.5772     ?     54.0518+-0.6441        ?
   Float64Array-alloc-long-lived                     72.4789+-1.2328           72.0123+-0.5497        
   Float64Array-to-Int16Array-set                    71.2603+-0.4558     ?     71.4420+-0.4911        ?
   fold-double-to-int                                14.6328+-0.2249     ?     14.7542+-0.3274        ?
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                      9.1535+-0.7095            8.7618+-0.0477          might be 1.0447x faster
   fold-get-by-id-to-multi-get-by-offset              7.8105+-0.3088            7.7589+-0.4128        
   fold-multi-get-by-offset-to-get-by-offset   
                                                      6.3712+-0.8382     ?      7.0095+-0.9873        ? might be 1.1002x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      7.3644+-0.8404     ?      7.6298+-0.4088        ? might be 1.0360x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      6.4826+-0.8853     ?      6.9571+-0.1106        ? might be 1.0732x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                      5.2495+-0.0464            4.5049+-0.7078          might be 1.1653x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     10.6683+-0.8771     ?     11.2502+-0.3782        ? might be 1.0545x slower
   fold-put-by-id-to-multi-put-by-offset              7.1254+-0.0556     ?      7.3133+-0.6726        ? might be 1.0264x slower
   fold-put-structure                                 5.4416+-0.8582            4.8075+-0.8470          might be 1.1319x faster
   for-of-iterate-array-entries                       4.7729+-0.1068            4.6958+-0.2618          might be 1.0164x faster
   for-of-iterate-array-keys                          4.0034+-0.2424            3.6757+-0.1141          might be 1.0891x faster
   for-of-iterate-array-values                        3.8937+-0.1056     ^      3.6282+-0.1132        ^ definitely 1.0732x faster
   fround                                            20.0186+-0.2731           19.7175+-0.4423          might be 1.0153x faster
   ftl-library-inlining-dataview                     83.7477+-1.8038     ?     90.6600+-8.9810        ? might be 1.0825x slower
   ftl-library-inlining                              70.6351+-0.7401     ?     72.1832+-1.1122        ? might be 1.0219x slower
   function-dot-apply                                 2.0648+-0.0382     ?      2.1062+-0.1270        ? might be 1.0200x slower
   function-test                                      3.6403+-0.0460     ^      3.5338+-0.0430        ^ definitely 1.0302x faster
   function-with-eval                                93.3427+-2.8596           92.5827+-0.4242        
   gcse-poly-get-less-obvious                        21.6207+-2.5028           19.3956+-1.1805          might be 1.1147x faster
   gcse-poly-get                                     27.1310+-4.4246     ?     28.7548+-1.5098        ? might be 1.0598x slower
   gcse                                               4.5309+-0.0590            4.4883+-0.0270        
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.9770+-0.1579            2.9257+-0.0480          might be 1.0175x faster
   get-by-id-bimorphic-check-structure-elimination   
                                                      6.5565+-0.0848     ?      6.5887+-0.1621        ?
   get-by-id-chain-from-try-block                     7.2294+-0.1946            7.1865+-0.3038        
   get-by-id-check-structure-elimination              5.3928+-0.2406            5.3906+-0.1726        
   get-by-id-proto-or-self                           17.8199+-0.5784           17.7684+-1.0294        
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      3.1661+-0.0946            3.1368+-0.0618        
   get-by-id-self-or-proto                           18.3597+-0.9328           18.1061+-0.5259          might be 1.0140x faster
   get-by-val-out-of-bounds                           4.4990+-0.1120            4.4639+-0.1135        
   get_callee_monomorphic                             3.4688+-0.1498     ?      3.6565+-0.1960        ? might be 1.0541x slower
   get_callee_polymorphic                             3.3013+-0.0541     !      3.6284+-0.0504        ! definitely 1.0991x slower
   getter-no-activation                               4.9109+-0.0306            4.8517+-0.0795          might be 1.0122x faster
   getter-richards                                  102.9878+-1.2372     ?    104.5577+-2.9712        ? might be 1.0152x slower
   getter                                             5.9382+-0.0760     ?      5.9695+-0.0472        ?
   global-var-const-infer-fire-from-opt               1.0700+-0.0281            1.0352+-0.0684          might be 1.0336x faster
   global-var-const-infer                             1.0858+-0.1213            1.0720+-0.0711          might be 1.0128x faster
   HashMap-put-get-iterate-keys                      27.8839+-0.4135           27.2962+-0.3388          might be 1.0215x faster
   HashMap-put-get-iterate                           28.6182+-0.7751           27.8047+-0.4335          might be 1.0293x faster
   HashMap-string-put-get-iterate                    27.6917+-0.2785           27.5404+-0.6841        
   hoist-make-rope                                   11.0200+-0.3244     ?     11.2953+-2.3763        ? might be 1.0250x slower
   hoist-poly-check-structure-effectful-loop   
                                                      5.4310+-0.0835            5.4055+-0.1174        
   hoist-poly-check-structure                         3.9868+-0.1181            3.9358+-0.1066          might be 1.0129x faster
   imul-double-only                                   8.0775+-0.2684            7.7969+-0.3092          might be 1.0360x faster
   imul-int-only                                      9.9116+-0.7255            9.8957+-0.4589        
   imul-mixed                                         7.6181+-0.1527     ?      7.7523+-0.3401        ? might be 1.0176x slower
   in-four-cases                                     20.1473+-0.4185           20.0157+-0.1960        
   in-one-case-false                                 10.7322+-0.1355     ?     10.7465+-0.1403        ?
   in-one-case-true                                  10.7032+-0.0667     ?     10.7517+-0.1030        ?
   in-two-cases                                      11.0273+-0.2946     ?     11.0342+-0.2203        ?
   indexed-properties-in-objects                      3.0809+-0.0176     !      3.1275+-0.0180        ! definitely 1.0151x slower
   infer-closure-const-then-mov-no-inline             4.1393+-0.0551            4.1042+-0.0589        
   infer-closure-const-then-mov                      17.4025+-0.4067           17.1665+-0.1486          might be 1.0137x faster
   infer-closure-const-then-put-to-scope-no-inline   
                                                     12.0134+-0.0410           11.9376+-0.0910        
   infer-closure-const-then-put-to-scope             23.4002+-0.6147           23.2842+-0.3016        
   infer-closure-const-then-reenter-no-inline   
                                                     50.9871+-0.3729           50.9171+-0.2652        
   infer-closure-const-then-reenter                 129.9097+-3.0451          129.5822+-2.5297        
   infer-constant-global-property                    31.3700+-0.1474     ?     31.4330+-0.0938        ?
   infer-constant-property                            2.8718+-0.0715            2.8622+-0.0327        
   infer-one-time-closure-ten-vars                   12.2040+-0.1440           12.1487+-0.1743        
   infer-one-time-closure-two-vars                   11.7974+-0.3117     ?     11.8105+-0.1536        ?
   infer-one-time-closure                            11.7255+-0.2064           11.6390+-0.0938        
   infer-one-time-deep-closure                       20.9298+-0.4066           20.8944+-0.4320        
   inline-arguments-access                            4.0714+-0.1414     !      4.3562+-0.1397        ! definitely 1.0700x slower
   inline-arguments-aliased-access                    4.1108+-0.1367     ?      4.3333+-0.0963        ? might be 1.0541x slower
   inline-arguments-local-escape                      4.1724+-0.2296     ?      4.4558+-0.1404        ? might be 1.0679x slower
   inline-get-scoped-var                              4.8200+-0.0692            4.8015+-0.1233        
   inlined-put-by-id-transition                      10.4412+-0.3772     ?     10.4562+-0.2974        ?
   int-or-other-abs-then-get-by-val                   5.3710+-0.1303            5.2990+-0.0324          might be 1.0136x faster
   int-or-other-abs-zero-then-get-by-val             17.6646+-0.4933     ?     17.8472+-0.0919        ? might be 1.0103x slower
   int-or-other-add-then-get-by-val                   4.6703+-0.1531            4.5777+-0.0818          might be 1.0202x faster
   int-or-other-add                                   5.6548+-0.2062     ?      5.6938+-0.0689        ?
   int-or-other-div-then-get-by-val                   4.6019+-0.1822     ?      4.6411+-0.4329        ?
   int-or-other-max-then-get-by-val                   4.7576+-0.0875            4.6635+-0.0950          might be 1.0202x faster
   int-or-other-min-then-get-by-val                   4.7950+-0.0652     ?      4.8280+-0.1499        ?
   int-or-other-mod-then-get-by-val                   4.2608+-0.0827            4.1786+-0.0442          might be 1.0197x faster
   int-or-other-mul-then-get-by-val                   4.3338+-0.1009            4.2720+-0.0198          might be 1.0145x faster
   int-or-other-neg-then-get-by-val                   5.0529+-0.0722            4.9435+-0.0490          might be 1.0221x faster
   int-or-other-neg-zero-then-get-by-val             17.7862+-0.0817     ^     17.4681+-0.1699        ^ definitely 1.0182x faster
   int-or-other-sub-then-get-by-val                   4.6013+-0.0464            4.5783+-0.0358        
   int-or-other-sub                                   3.8552+-0.0807     ?      3.8644+-0.1021        ?
   int-overflow-local                                 4.6963+-0.0826            4.6538+-0.0518        
   Int16Array-alloc-long-lived                       49.5667+-0.9004     ?     50.8939+-0.6484        ? might be 1.0268x slower
   Int16Array-bubble-sort-with-byteLength            21.0464+-0.3567     ?     21.2465+-0.4599        ?
   Int16Array-bubble-sort                            20.8994+-0.6093     ?     21.0225+-0.5020        ?
   Int16Array-load-int-mul                            1.7283+-0.0543            1.7070+-0.0754          might be 1.0125x faster
   Int16Array-to-Int32Array-set                      56.3400+-0.2273     ?     56.8839+-0.4636        ?
   Int32Array-alloc-large                            21.2245+-0.4495           20.9330+-0.6452          might be 1.0139x faster
   Int32Array-alloc-long-lived                       56.2982+-0.5472     ?     56.5391+-0.3841        ?
   Int32Array-alloc                                   2.7679+-0.0277     !      2.9839+-0.0461        ! definitely 1.0781x slower
   Int32Array-Int8Array-view-alloc                    6.9471+-0.0576     ^      6.6542+-0.1017        ^ definitely 1.0440x faster
   int52-spill                                        6.9432+-0.1910     ^      6.6920+-0.0271        ^ definitely 1.0375x faster
   Int8Array-alloc-long-lived                        45.0732+-0.3031     ?     46.0505+-0.7148        ? might be 1.0217x slower
   Int8Array-load-with-byteLength                     3.5952+-0.0392            3.5914+-0.0318        
   Int8Array-load                                     3.6298+-0.0554            3.6076+-0.0177        
   integer-divide                                    12.3156+-0.2156           12.2142+-0.2347        
   integer-modulo                                     2.4222+-0.0807            2.3640+-0.0327          might be 1.0246x faster
   large-int-captured                                 5.3934+-0.2566     ?      5.5870+-0.0683        ? might be 1.0359x slower
   large-int-neg                                     17.1082+-0.1851           17.1014+-0.1648        
   large-int                                         15.7197+-0.5052           15.6060+-0.0373        
   logical-not                                        4.9603+-0.1007     ?      4.9645+-0.1957        ?
   lots-of-fields                                    13.1876+-0.3238           13.1483+-0.2779        
   make-indexed-storage                               3.3264+-0.1582            3.2428+-0.2499          might be 1.0258x faster
   make-rope-cse                                      3.6890+-0.0689     !      3.8664+-0.0328        ! definitely 1.0481x slower
   marsaglia-larger-ints                             40.8279+-0.7653     ?     40.9427+-1.3616        ?
   marsaglia-osr-entry                               23.0342+-0.2316     ?     23.3137+-0.6720        ? might be 1.0121x slower
   max-boolean                                        2.6765+-0.0445            2.6585+-0.0449        
   method-on-number                                  21.3163+-0.3616     ^     18.8449+-0.1932        ^ definitely 1.1311x faster
   min-boolean                                        2.7046+-0.0848            2.6908+-0.0428        
   minus-boolean-double                               3.3260+-0.0397            3.3257+-0.0280        
   minus-boolean                                      2.5045+-0.0410            2.4632+-0.0141          might be 1.0168x faster
   misc-strict-eq                                    39.7288+-3.6232           38.7145+-0.5035          might be 1.0262x faster
   mod-boolean-double                                11.4541+-0.0701           11.4156+-0.0885        
   mod-boolean                                        8.3013+-0.1268            8.2598+-0.1078        
   mul-boolean-double                                 3.9931+-0.1228     ?      4.0118+-0.1327        ?
   mul-boolean                                        3.0181+-0.0192     ?      3.0339+-0.0742        ?
   neg-boolean                                        3.4305+-0.2652            3.3560+-0.0492          might be 1.0222x faster
   negative-zero-divide                               0.4483+-0.0550            0.4157+-0.0302          might be 1.0784x faster
   negative-zero-modulo                               0.4443+-0.0483            0.4244+-0.0387          might be 1.0469x faster
   negative-zero-negate                               0.4110+-0.0128     ?      0.4116+-0.0036        ?
   nested-function-parsing                           37.3802+-0.6709           37.0632+-0.3451        
   new-array-buffer-dead                              3.0529+-0.1426            3.0362+-0.1501        
   new-array-buffer-push                              6.2137+-0.0580     ?      6.3737+-0.2655        ? might be 1.0257x slower
   new-array-dead                                    13.1484+-0.7919           12.3544+-0.9014          might be 1.0643x faster
   new-array-push                                     4.1795+-0.1827            4.0115+-0.1936          might be 1.0419x faster
   number-test                                        3.2422+-0.0632            3.2064+-0.0857          might be 1.0112x faster
   object-closure-call                                5.8789+-0.0927            5.8552+-0.0680        
   object-test                                        3.3680+-0.0804     ?      3.3744+-0.1084        ?
   obvious-sink-pathology-taken                     131.4255+-2.9941          129.9743+-1.9509          might be 1.0112x faster
   obvious-sink-pathology                           126.1149+-2.5608     ^    119.5573+-0.6438        ^ definitely 1.0548x faster
   obviously-elidable-new-object                     34.3278+-0.5971     ?     34.5640+-1.0616        ?
   plus-boolean-arith                                 2.6853+-0.1139     ?      2.6875+-0.0941        ?
   plus-boolean-double                                3.3590+-0.1508            3.3259+-0.0418        
   plus-boolean                                       2.6171+-0.2176            2.5742+-0.0524          might be 1.0166x faster
   poly-chain-access-different-prototypes-simple   
                                                      3.5247+-0.1182            3.4850+-0.0941          might be 1.0114x faster
   poly-chain-access-different-prototypes             2.8207+-0.0736     ?      2.8214+-0.2006        ?
   poly-chain-access-simpler                          3.5671+-0.2017            3.4351+-0.0362          might be 1.0384x faster
   poly-chain-access                                  2.8007+-0.0364            2.7781+-0.0485        
   poly-stricteq                                     61.2071+-2.7115           59.8720+-0.3829          might be 1.0223x faster
   polymorphic-array-call                             1.7645+-0.1278            1.5815+-0.1839          might be 1.1157x faster
   polymorphic-get-by-id                              3.3568+-0.1453            3.2971+-0.0477          might be 1.0181x faster
   polymorphic-put-by-id                             29.4958+-2.7162     ?     32.8378+-4.0322        ? might be 1.1133x slower
   polymorphic-structure                             15.4651+-0.2171           15.2858+-0.1136          might be 1.0117x faster
   polyvariant-monomorphic-get-by-id                  9.2629+-0.1430            9.2562+-0.1110        
   proto-getter-access                               10.4825+-0.1400           10.4133+-0.1742        
   put-by-id-replace-and-transition                   8.6725+-0.1942     !      9.0162+-0.1228        ! definitely 1.0396x slower
   put-by-id-slightly-polymorphic                     3.0731+-0.0717     ?      3.0827+-0.0654        ?
   put-by-id                                         13.4495+-0.1352     ^     12.7334+-0.3053        ^ definitely 1.0562x faster
   put-by-val-direct                                  0.7145+-0.0301     ^      0.5772+-0.0456        ^ definitely 1.2378x faster
   put-by-val-large-index-blank-indexing-type   
                                                      5.5316+-0.0864            5.4999+-0.1271        
   put-by-val-machine-int                             2.5960+-0.2044     ?      2.7890+-0.0509        ? might be 1.0743x slower
   rare-osr-exit-on-local                            15.6779+-0.2992           15.4392+-0.3340          might be 1.0155x faster
   register-pressure-from-osr                        22.4682+-0.0666     ?     22.5316+-0.3910        ?
   setter                                             5.9602+-0.1138            5.9092+-0.0301        
   simple-activation-demo                            26.0262+-0.1523     ?     26.0435+-0.2490        ?
   simple-getter-access                              13.4822+-0.3565           13.4229+-0.2409        
   simple-poly-call-nested                            9.1272+-0.0285            8.9952+-0.1596          might be 1.0147x faster
   simple-poly-call                                   1.7152+-0.1851            1.6317+-0.1704          might be 1.0512x faster
   sin-boolean                                       19.3862+-0.4430     ?     19.3925+-0.4326        ?
   sinkable-new-object-dag                           69.7773+-0.8788     ?     70.4230+-1.4410        ?
   sinkable-new-object-taken                         53.7957+-3.1097           51.6145+-0.6473          might be 1.0423x faster
   sinkable-new-object                               38.4156+-0.3413           37.7950+-0.6354          might be 1.0164x faster
   slow-array-profile-convergence                     3.2289+-0.2623            3.0156+-0.0705          might be 1.0707x faster
   slow-convergence                                   3.6110+-0.0889            3.4993+-0.0548          might be 1.0319x faster
   sorting-benchmark                                 22.1880+-0.3078     ?     22.1953+-0.4527        ?
   sparse-conditional                                 1.3318+-0.0408     ?      1.3385+-0.0249        ?
   splice-to-remove                                  16.9997+-0.1259     ?     17.0664+-0.7958        ?
   string-char-code-at                               16.8760+-0.4718           16.7810+-0.2823        
   string-concat-object                               2.1128+-0.0866     ?      2.2864+-0.1447        ? might be 1.0822x slower
   string-concat-pair-object                          2.0266+-0.0952     ?      2.1953+-0.1131        ? might be 1.0832x slower
   string-concat-pair-simple                         11.5058+-0.1730     ?     11.7334+-0.3380        ? might be 1.0198x slower
   string-concat-simple                              11.5153+-0.2330     !     11.9041+-0.0805        ! definitely 1.0338x slower
   string-cons-repeat                                 7.1805+-0.1944     ?      7.4359+-0.1953        ? might be 1.0356x slower
   string-cons-tower                                  7.5497+-0.7929     ?      7.5546+-0.1218        ?
   string-equality                                   18.0311+-0.3264           17.9638+-0.2748        
   string-get-by-val-big-char                         7.3152+-0.1498     ?      7.3909+-0.3282        ? might be 1.0103x slower
   string-get-by-val-out-of-bounds-insane             4.3008+-0.1739     ^      3.8478+-0.0324        ^ definitely 1.1177x faster
   string-get-by-val-out-of-bounds                    5.7568+-0.1405            5.7404+-0.2523        
   string-get-by-val                                  3.5293+-0.0539            3.5175+-0.0511        
   string-hash                                        2.3013+-0.0384     ?      2.3082+-0.1353        ?
   string-long-ident-equality                        14.8398+-0.2164     ?     14.8836+-0.1566        ?
   string-out-of-bounds                              15.0342+-0.2302     ?     15.0417+-0.1176        ?
   string-repeat-arith                               32.2040+-0.2423     ?     32.8857+-0.5649        ? might be 1.0212x slower
   string-sub                                        63.4370+-1.5336     ?     64.4935+-3.2115        ? might be 1.0167x slower
   string-test                                        3.1982+-0.1091            3.1640+-0.0460          might be 1.0108x faster
   string-var-equality                               31.5248+-0.8485           31.2067+-0.3851          might be 1.0102x faster
   structure-hoist-over-transitions                   2.5969+-0.0586     ?      2.7154+-0.1525        ? might be 1.0456x slower
   substring-concat-weird                            39.5921+-0.5550     !     40.6042+-0.3287        ! definitely 1.0256x slower
   substring-concat                                  41.2426+-0.4264     ?     41.6371+-0.1542        ?
   substring                                         46.1357+-0.5102     ?     46.8782+-0.2881        ? might be 1.0161x slower
   switch-char-constant                               2.9758+-0.0623            2.8785+-0.0868          might be 1.0338x faster
   switch-char                                        7.1116+-0.0412            7.0833+-0.0712        
   switch-constant                                    8.2692+-0.1318     ?      8.7826+-0.4879        ? might be 1.0621x slower
   switch-string-basic-big-var                       15.5387+-0.1576           15.5290+-0.1452        
   switch-string-basic-big                           14.4172+-0.2867           14.3512+-0.3527        
   switch-string-basic-var                           14.9298+-0.1300           14.9040+-0.1965        
   switch-string-basic                               13.6147+-0.2834           13.6004+-0.1485        
   switch-string-big-length-tower-var                20.5145+-0.2413           20.4825+-0.1239        
   switch-string-length-tower-var                    15.2659+-0.0790     ?     15.2892+-0.1709        ?
   switch-string-length-tower                        13.1251+-0.1435     ?     13.1655+-0.2568        ?
   switch-string-short                               13.2681+-0.1637           13.1350+-0.1014          might be 1.0101x faster
   switch                                            12.2690+-0.3444     ?     12.7947+-0.2302        ? might be 1.0429x slower
   tear-off-arguments-simple                          3.2700+-0.1346     ?      3.3992+-0.1609        ? might be 1.0395x slower
   tear-off-arguments                                 4.4701+-0.0690     !      4.7500+-0.0946        ! definitely 1.0626x slower
   temporal-structure                                12.7163+-0.1577     ?     13.0585+-0.2993        ? might be 1.0269x slower
   tilde-tilde-folding                               41.2031+-0.4312     ?     41.4777+-0.5340        ?
   to-int32-boolean                                  14.1924+-0.0289     ?     14.2015+-0.1120        ?
   try-catch-get-by-val-cloned-arguments             13.5616+-0.1399     ?     13.6495+-0.1535        ?
   try-catch-get-by-val-direct-arguments              5.8331+-0.5825     ?      5.8600+-0.1170        ?
   try-catch-get-by-val-scoped-arguments              6.5541+-0.1033     !      6.9445+-0.1112        ! definitely 1.0596x slower
   undefined-property-access                        401.6884+-1.0875     ?    402.6544+-2.5050        ?
   undefined-test                                     3.3228+-0.0560            3.3024+-0.0517        
   unprofiled-licm                                   22.7434+-0.2922           22.6410+-0.2825        
   varargs-call                                      15.5430+-0.1907     ?     15.8254+-0.1857        ? might be 1.0182x slower
   varargs-construct-inline                          21.7926+-0.2747     ?     22.1353+-0.2330        ? might be 1.0157x slower
   varargs-construct                                 33.3044+-0.5969     ?     33.8323+-0.4801        ? might be 1.0158x slower
   varargs-inline                                     9.0958+-0.1542     ?      9.3664+-0.6676        ? might be 1.0297x slower
   varargs-strict-mode                               10.0267+-0.1306     ?     10.0939+-0.0978        ?
   varargs                                            9.9739+-0.0617     ?     10.1614+-0.2728        ? might be 1.0188x slower
   weird-inlining-const-prop                          2.3871+-0.1133            2.3293+-0.1215          might be 1.0248x faster

   <geometric>                                        8.8288+-0.0095            8.8148+-0.0140          might be 1.0016x faster

                                                            BO                       AXE                                        
AsmBench:
   bigfib.cpp                                       525.5313+-3.4816          525.2757+-1.8204        
   cray.c                                           457.4965+-7.1149     ?    459.4775+-8.1231        ?
   dry.c                                            525.8731+-0.6478          524.7295+-4.4246        
   FloatMM.c                                        821.3733+-3.8185     ?    821.8294+-3.5370        ?
   gcc-loops.cpp                                   4375.7452+-19.6188    ?   4376.5958+-5.9419        ?
   n-body.c                                        1044.6186+-1.8362     ?   1044.6456+-2.9744        ?
   Quicksort.c                                      468.3198+-9.5765     ?    472.4921+-2.3431        ?
   stepanov_container.cpp                          3911.0515+-32.0606        3896.7554+-21.7627       
   Towers.c                                         277.5991+-0.6256     ?    278.0461+-3.3910        ?

   <geometric>                                      853.8917+-2.8127     ?    854.7720+-2.2891        ? might be 1.0010x slower

                                                            BO                       AXE                                        
CompressionBench:
   huffman                                          382.8075+-1.0294          380.3639+-1.8449        
   arithmetic-simple                                421.7098+-2.7001     ^    415.8672+-2.3143        ^ definitely 1.0140x faster
   arithmetic-precise                               314.6785+-3.9754          311.9052+-4.9871        
   arithmetic-complex-precise                       311.7849+-5.5451     ?    318.1120+-31.1546       ? might be 1.0203x slower
   arithmetic-precise-order-0                       447.7043+-11.9623         440.8095+-5.9978          might be 1.0156x faster
   arithmetic-precise-order-1                       343.5971+-6.3971          340.8659+-1.1309        
   arithmetic-precise-order-2                       393.7087+-4.3357     ?    394.1078+-5.2978        ?
   arithmetic-simple-order-1                        438.3688+-3.2791     ?    441.2093+-2.9525        ?
   arithmetic-simple-order-2                        497.8932+-1.2320     ?    501.2341+-4.3816        ?
   lz-string                                        304.1849+-3.2537          300.1889+-2.9688          might be 1.0133x faster

   <geometric>                                      380.5334+-0.7539          379.2880+-3.5821          might be 1.0033x faster

                                                            BO                       AXE                                        
Geomean of preferred means:
   <scaled-result>                                   66.3411+-0.1200     ?     66.3785+-0.2960        ? might be 1.0006x slower
Comment 6 Mark Hahnenberg 2015-04-15 17:27:54 PDT
Seems less scary now. Might even be a sunspider win if you increase --inner and --outer a few notches to get more reliable results.
Comment 7 Andreas Kling 2015-04-15 19:21:51 PDT
(In reply to comment #6)
> Seems less scary now. Might even be a sunspider win if you increase --inner
> and --outer a few notches to get more reliable results.

Since you asked...

Benchmark report for SunSpider on spacecake (MacPro6,1).

VMs tested:
"BO" at /Volumes/Data/Source/Safari/ToT-Clean/WebKitBuild/Release/jsc
"AXE" at /Volumes/Data/Source/Safari/OpenSource/WebKitBuild/Release/jsc

Collected 160 samples per benchmark/VM, with 10 VM invocations per benchmark. Emitted a call to gc()
between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the
jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution times
with 95% confidence intervals in milliseconds.

                                      BO                       AXE                                        

3d-cube                         5.2763+-0.0285     ^      5.1306+-0.0273        ^ definitely 1.0284x faster
3d-morph                        5.9127+-0.0252            5.8694+-0.0324        
3d-raytrace                     7.3090+-0.0284            7.2679+-0.0328        
access-binary-trees             2.2066+-0.0176     ^      2.1675+-0.0169        ^ definitely 1.0180x faster
access-fannkuch                 6.0130+-0.0214     ?      6.0259+-0.0292        ?
access-nbody                    3.1241+-0.0138     ^      3.0725+-0.0122        ^ definitely 1.0168x faster
access-nsieve                   3.8937+-0.0267            3.8921+-0.0266        
bitops-3bit-bits-in-byte        1.8469+-0.0070     ^      1.8258+-0.0081        ^ definitely 1.0115x faster
bitops-bits-in-byte             3.8769+-0.0138            3.8706+-0.0146        
bitops-bitwise-and              2.3496+-0.0122            2.3284+-0.0117        
bitops-nsieve-bits              3.9282+-0.0175     ^      3.8871+-0.0181        ^ definitely 1.0106x faster
controlflow-recursive           2.3825+-0.0091            2.3659+-0.0101        
crypto-aes                      4.4422+-0.0241            4.4355+-0.0262        
crypto-md5                      2.6207+-0.0126            2.5999+-0.0140        
crypto-sha1                     2.8404+-0.0074     ^      2.8192+-0.0107        ^ definitely 1.0075x faster
date-format-tofte               9.5378+-0.0482     !      9.7746+-0.0682        ! definitely 1.0248x slower
date-format-xparb               5.4190+-0.0472     ?      5.4575+-0.0509        ?
math-cordic                     3.5473+-0.0133     ^      3.5121+-0.0150        ^ definitely 1.0100x faster
math-partial-sums               5.4820+-0.0272            5.4619+-0.0252        
math-spectral-norm              2.2231+-0.0094     ^      2.1820+-0.0088        ^ definitely 1.0188x faster
regexp-dna                      7.3213+-0.0339            7.3110+-0.0368        
string-base64                   4.4160+-0.0273     ^      4.3614+-0.0270        ^ definitely 1.0125x faster
string-fasta                    6.8656+-0.0337     ^      6.7067+-0.0244        ^ definitely 1.0237x faster
string-tagcloud                 9.7803+-0.0446            9.7045+-0.0386        
string-unpack-code             20.6646+-0.0526     ^     20.4468+-0.0447        ^ definitely 1.0107x faster
string-validate-input           4.9630+-0.0242            4.9425+-0.0277        

<arithmetic>                    5.3170+-0.0088     ^      5.2854+-0.0082        ^ definitely 1.0060x faster

Looks like you were right. :-)
Comment 8 Mark Hahnenberg 2015-04-15 19:29:40 PDT
Comment on attachment 250874 [details]
Patch

Well I'm sold. r=me
Comment 9 Andreas Kling 2015-04-15 20:42:37 PDT
Landed in <https://trac.webkit.org/r182878>
Comment 10 Andreas Kling 2015-04-16 01:10:37 PDT
This was a 4.4% progression (~18MB) on Membuster on both Mavericks and Yosemite.