Bug 143858 - Inline JSFunction allocation in DFG
Summary: Inline JSFunction allocation in DFG
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Enhancement
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-04-16 18:01 PDT by Basile Clement
Modified: 2015-04-17 11:51 PDT (History)
4 users (show)

See Also:


Attachments
Tentative patch (2.44 KB, patch)
2015-04-16 18:01 PDT, Basile Clement
no flags Details | Formatted Diff | Diff
Patch w/ ChangeLog (3.19 KB, patch)
2015-04-17 10:29 PDT, Basile Clement
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Basile Clement 2015-04-16 18:01:15 PDT
Created attachment 250985 [details]
Tentative patch

Followup to https://bugs.webkit.org/show_bug.cgi?id=143851 for the DFG.
Comment 1 Basile Clement 2015-04-17 10:20:18 PDT
Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on Basiles-MacBook-Pro (MacBookPro11,3).

VMs tested:
"Conf#1" at /Volumes/Data/Baseline/OpenSource/WebKitBuild/Release/jsc (r182938)
"Conf#2" at /Volumes/Data/Temp/OpenSource/WebKitBuild/Release/jsc (r182938)

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

                                                          Conf#1                    Conf#2                                      
SunSpider:
   3d-cube                                            4.9959+-1.0943            4.5124+-0.3419          might be 1.1072x faster
   3d-morph                                           5.2896+-0.1253     ?      5.5912+-0.4096        ? might be 1.0570x slower
   3d-raytrace                                        5.6804+-0.7837            5.3744+-0.2644          might be 1.0569x faster
   access-binary-trees                                2.3889+-0.2820            2.0644+-0.0940          might be 1.1572x faster
   access-fannkuch                                    5.2269+-0.1094            5.1610+-0.2040          might be 1.0128x faster
   access-nbody                                       2.6330+-0.2659            2.5464+-0.1158          might be 1.0340x faster
   access-nsieve                                      3.1600+-0.1655            3.0329+-0.1084          might be 1.0419x faster
   bitops-3bit-bits-in-byte                           1.4294+-0.0731            1.3934+-0.0488          might be 1.0258x faster
   bitops-bits-in-byte                                3.1659+-0.1006     ?      3.1810+-0.1432        ?
   bitops-bitwise-and                                 2.0442+-0.0936            2.0292+-0.0776        
   bitops-nsieve-bits                                 3.2815+-0.0326     !      3.5539+-0.2219        ! definitely 1.0830x slower
   controlflow-recursive                              1.9012+-0.1095     ?      1.9777+-0.1799        ? might be 1.0403x slower
   crypto-aes                                         3.6364+-0.1368     ?      3.6557+-0.1318        ?
   crypto-md5                                         2.1826+-0.0942            2.1824+-0.1327        
   crypto-sha1                                        2.3062+-0.1187     ?      2.4701+-0.4510        ? might be 1.0711x slower
   date-format-tofte                                  7.3141+-0.3188            7.1736+-0.6365          might be 1.0196x faster
   date-format-xparb                                  5.0319+-0.4031     ?      5.1616+-0.5751        ? might be 1.0258x slower
   math-cordic                                        2.8018+-0.1322     ?      2.8422+-0.2522        ? might be 1.0144x slower
   math-partial-sums                                  4.4148+-0.0872     ?      4.5905+-0.2784        ? might be 1.0398x slower
   math-spectral-norm                                 1.6789+-0.0357     ?      1.7437+-0.1066        ? might be 1.0386x slower
   regexp-dna                                         6.9235+-0.8635     ?      6.9364+-0.5593        ?
   string-base64                                      4.7501+-0.4464            4.2692+-0.2192          might be 1.1126x faster
   string-fasta                                       6.0972+-0.5221            5.8739+-0.1284          might be 1.0380x faster
   string-tagcloud                                    8.7937+-0.1796     ?      8.8888+-0.3218        ? might be 1.0108x slower
   string-unpack-code                                19.0987+-0.3902           18.8024+-0.6295          might be 1.0158x faster
   string-validate-input                              4.4462+-0.2745            4.3289+-0.1446          might be 1.0271x faster

   <arithmetic>                                       4.6413+-0.1010            4.5899+-0.1018          might be 1.0112x faster

                                                          Conf#1                    Conf#2                                      
LongSpider:
   3d-cube                                          814.9658+-35.5485    ?    820.8931+-21.0294       ?
   3d-morph                                        1563.4983+-13.4850        1555.9656+-8.7326        
   3d-raytrace                                      687.1178+-9.7529          682.3220+-5.1255        
   access-binary-trees                              867.9478+-11.7785         866.2981+-5.8212        
   access-fannkuch                                  277.5400+-8.1595          274.7520+-8.0463          might be 1.0101x faster
   access-nbody                                     567.7792+-5.3760          565.3801+-9.1432        
   access-nsieve                                    662.1027+-11.9306    ?    663.1873+-8.7271        ?
   bitops-3bit-bits-in-byte                          42.1237+-1.7640           41.8837+-1.4233        
   bitops-bits-in-byte                               87.7118+-5.4453     ?     88.8779+-5.8104        ? might be 1.0133x slower
   bitops-nsieve-bits                               719.2142+-67.6014         692.2164+-6.6668          might be 1.0390x faster
   controlflow-recursive                            470.4679+-10.2026         462.5347+-1.9931          might be 1.0172x faster
   crypto-aes                                       583.9785+-12.7937         570.8741+-14.9440         might be 1.0230x faster
   crypto-md5                                       547.5059+-8.8702          545.0249+-9.0164        
   crypto-sha1                                      589.0832+-13.1413    ?    589.3488+-10.9312       ?
   date-format-tofte                                539.9091+-15.1063         531.3645+-8.0444          might be 1.0161x faster
   date-format-xparb                                655.0319+-6.6611     ?    657.1007+-8.4559        ?
   math-cordic                                      516.1988+-9.6779     ?    522.3811+-4.2828        ? might be 1.0120x slower
   math-partial-sums                                432.9983+-6.0896          428.1901+-2.0555          might be 1.0112x faster
   math-spectral-norm                               579.3654+-11.0570         573.8969+-6.3475        
   string-base64                                    339.5532+-10.1421         330.9329+-4.1886          might be 1.0260x faster
   string-fasta                                     386.1998+-8.8406     ?    388.2018+-7.8888        ?
   string-tagcloud                                  205.5671+-3.1263          202.7137+-3.1464          might be 1.0141x faster

   <geometric>                                      449.4536+-2.3169          446.4981+-2.5724          might be 1.0066x faster

                                                          Conf#1                    Conf#2                                      
V8Spider:
   crypto                                            52.0699+-1.9914     ?     52.6208+-2.8707        ? might be 1.0106x slower
   deltablue                                         85.0733+-3.1081     ?     87.5578+-3.1808        ? might be 1.0292x slower
   earley-boyer                                      42.4062+-3.1543           41.4572+-1.7890          might be 1.0229x faster
   raytrace                                          33.1370+-2.3627           32.5623+-1.6384          might be 1.0176x faster
   regexp                                            60.3775+-1.7138           59.0704+-4.3206          might be 1.0221x faster
   richards                                          75.3837+-2.8853     ?     76.0578+-2.9865        ?
   splay                                             37.5921+-3.5846     ?     39.0054+-3.6105        ? might be 1.0376x slower

   <geometric>                                       52.2070+-1.2935     ?     52.3847+-1.5781        ? might be 1.0034x slower

                                                          Conf#1                    Conf#2                                      
Octane:
   encrypt                                           0.20215+-0.00281    ?     0.20261+-0.00190       ?
   decrypt                                           3.64000+-0.12462    ?     3.76278+-0.14353       ? might be 1.0337x slower
   deltablue                                x2       0.16505+-0.00106    ?     0.16628+-0.00297       ?
   earley                                            0.45595+-0.00439          0.45479+-0.00473       
   boyer                                             5.86616+-0.13465    ?     5.94551+-0.25043       ? might be 1.0135x slower
   navier-stokes                            x2       5.25974+-0.04696          5.24121+-0.04207       
   raytrace                                 x2       1.05549+-0.04584          1.04902+-0.04326       
   richards                                 x2       0.09646+-0.00194    ?     0.09758+-0.00282       ? might be 1.0116x slower
   splay                                    x2       0.36449+-0.00649          0.35870+-0.00442         might be 1.0161x faster
   regexp                                   x2      28.95485+-0.95644    ?    29.06090+-0.83433       ?
   pdfjs                                    x2      40.02296+-0.48642    ^    39.15889+-0.26613       ^ definitely 1.0221x faster
   mandreel                                 x2      47.62958+-0.76722         47.61555+-0.58358       
   gbemu                                    x2      32.86900+-1.89399         32.83267+-0.36603       
   closure                                           0.50917+-0.00793    ?     0.51385+-0.00913       ?
   jquery                                            6.32279+-0.06921          6.30363+-0.05111       
   box2d                                    x2      10.62778+-0.08670    ?    10.64648+-0.09869       ?
   zlib                                     x2     358.51485+-23.15951   ?   367.68956+-18.64479      ? might be 1.0256x slower
   typescript                               x2     681.14339+-10.77823   ?   700.81665+-63.70939      ? might be 1.0289x slower

   <geometric>                                       5.91544+-0.03468    ?     5.93677+-0.02523       ? might be 1.0036x slower

                                                          Conf#1                    Conf#2                                      
Kraken:
   ai-astar                                          282.343+-11.923           282.302+-9.452         
   audio-beat-detection                               99.705+-1.519             98.522+-0.627           might be 1.0120x faster
   audio-dft                                         171.697+-3.355            169.609+-5.700           might be 1.0123x faster
   audio-fft                                          82.062+-1.852             80.932+-2.660           might be 1.0140x faster
   audio-oscillator                                  183.845+-2.334            183.654+-4.232         
   imaging-darkroom                                   97.082+-1.455      ?      97.527+-1.439         ?
   imaging-desaturate                                 60.170+-3.606             59.289+-4.217           might be 1.0149x faster
   imaging-gaussian-blur                              90.392+-1.514      ?      90.984+-1.528         ?
   json-parse-financial                               38.776+-2.165      ?      39.975+-1.258         ? might be 1.0309x slower
   json-stringify-tinderbox                           52.582+-1.626      ?      53.972+-1.793         ? might be 1.0264x slower
   stanford-crypto-aes                                60.680+-2.109             60.305+-0.534         
   stanford-crypto-ccm                                50.788+-4.375      ?      53.100+-4.876         ? might be 1.0455x slower
   stanford-crypto-pbkdf2                            153.815+-2.158      ?     156.204+-5.667         ? might be 1.0155x slower
   stanford-crypto-sha256-iterative                   51.530+-2.471      ?      51.927+-2.156         ?

   <arithmetic>                                      105.391+-0.444      ?     105.593+-0.944         ? might be 1.0019x slower

                                                          Conf#1                    Conf#2                                      
JSRegress:
   abs-boolean                                        2.4668+-0.1332            2.3853+-0.0350          might be 1.0342x faster
   adapt-to-double-divide                            16.3211+-0.1352     ?     16.4358+-0.2166        ?
   aliased-arguments-getbyval                         1.1725+-0.1188     ?      1.2913+-0.1876        ? might be 1.1013x slower
   allocate-big-object                                2.5576+-0.2031     ?      2.6613+-0.3331        ? might be 1.0406x slower
   arguments-named-and-reflective                    11.8490+-1.1292     ?     12.0099+-0.7791        ? might be 1.0136x slower
   arguments-out-of-bounds                           10.9899+-0.4188           10.8677+-0.4336          might be 1.0112x faster
   arguments-strict-mode                             11.0015+-0.9199           10.2822+-0.6179          might be 1.0700x faster
   arguments                                          9.2372+-0.4147            9.2065+-0.6977        
   arity-mismatch-inlining                            0.7919+-0.0508     ?      0.8375+-0.0430        ? might be 1.0576x slower
   array-access-polymorphic-structure                 6.8670+-1.2782            6.1796+-0.4352          might be 1.1112x faster
   array-nonarray-polymorhpic-access                 29.3447+-0.8676     ?     29.4056+-1.4663        ?
   array-prototype-every                             82.1355+-2.8574     ?     83.5689+-1.1903        ? might be 1.0175x slower
   array-prototype-forEach                           80.7449+-1.9082           80.3092+-2.1939        
   array-prototype-map                               90.6488+-3.6431           89.6093+-2.9590          might be 1.0116x faster
   array-prototype-some                              81.9708+-2.0286     ?     82.5007+-1.5549        ?
   array-splice-contiguous                           44.7777+-1.7169     ^     41.0019+-1.2845        ^ definitely 1.0921x faster
   array-with-double-add                              3.3574+-0.0823     ?      3.6639+-0.4627        ? might be 1.0913x slower
   array-with-double-increment                        3.6660+-1.2023            3.1916+-0.1531          might be 1.1487x faster
   array-with-double-mul-add                          4.2867+-0.1949            4.1980+-0.1219          might be 1.0211x faster
   array-with-double-sum                              3.1760+-0.1109     ?      3.1889+-0.1375        ?
   array-with-int32-add-sub                           5.7072+-0.2038     ?      5.9279+-0.2046        ? might be 1.0387x slower
   array-with-int32-or-double-sum                     3.2356+-0.0787            3.1990+-0.0475          might be 1.0114x faster
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     29.7510+-3.6856     ?     31.3477+-3.6773        ? might be 1.0537x slower
   ArrayBuffer-DataView-alloc-long-lived             12.4989+-0.3995     ?     12.5953+-0.3090        ?
   ArrayBuffer-Int32Array-byteOffset                  3.6076+-0.0780     ?      3.7572+-0.1860        ? might be 1.0415x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     30.6820+-1.9492     ?     30.8117+-2.9593        ?
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     25.4908+-8.7280           23.4365+-3.0945          might be 1.0877x faster
   ArrayBuffer-Int8Array-alloc-long-lived            12.5179+-0.5624     ?     12.6110+-1.5500        ?
   ArrayBuffer-Int8Array-alloc                       11.5504+-2.0182           10.3855+-0.4550          might be 1.1122x faster
   asmjs_bool_bug                                     6.7031+-0.2497     ?      6.9381+-0.2592        ? might be 1.0351x slower
   assign-custom-setter-polymorphic                   2.5368+-0.1468     ?      2.6702+-0.2503        ? might be 1.0526x slower
   assign-custom-setter                               3.6125+-0.1824            3.3782+-0.0557          might be 1.0694x faster
   basic-set                                          8.1740+-0.8082            7.7524+-0.4143          might be 1.0544x faster
   big-int-mul                                        3.4808+-0.1501     ?      3.7066+-0.5298        ? might be 1.0649x slower
   boolean-test                                       2.9441+-0.2422            2.9398+-0.3030        
   branch-fold                                        3.5598+-0.0958     ?      3.6414+-0.1112        ? might be 1.0229x slower
   by-val-generic                                     7.5972+-0.2822     ?      7.9903+-0.7615        ? might be 1.0517x slower
   call-spread-apply                                 27.9915+-1.2961           27.5776+-0.8085          might be 1.0150x faster
   call-spread-call                                  22.7258+-0.7036           22.3523+-1.0970          might be 1.0167x faster
   captured-assignments                               0.4281+-0.1507     ?      0.4463+-0.1590        ? might be 1.0424x slower
   cast-int-to-double                                 4.8151+-0.2081     ?      4.8556+-0.1301        ?
   cell-argument                                      6.7994+-0.3358            6.5558+-0.4030          might be 1.0372x faster
   cfg-simplify                                       2.8358+-0.0555     ?      3.0753+-0.2769        ? might be 1.0844x slower
   chain-getter-access                                9.2125+-0.1285     ?      9.3449+-0.3410        ? might be 1.0144x slower
   cmpeq-obj-to-obj-other                            11.4578+-1.3107     ?     12.0881+-1.1718        ? might be 1.0550x slower
   constant-test                                      4.5437+-0.0957     ?      4.5610+-0.0693        ?
   create-lots-of-functions                          18.9871+-2.4324     ^      9.4279+-0.3988        ^ definitely 2.0139x faster
   DataView-custom-properties                        34.7858+-3.0273     ?     37.4008+-2.8519        ? might be 1.0752x slower
   deconstructing-parameters-overridden-by-function   
                                                      0.4787+-0.0384            0.4319+-0.0300          might be 1.1084x faster
   delay-tear-off-arguments-strictmode               12.7622+-0.4320           12.7586+-0.4392        
   deltablue-varargs                                150.5197+-4.3720          150.0357+-3.4012        
   destructuring-arguments                           14.3396+-1.2756           14.2848+-1.1279        
   destructuring-swap                                 4.6907+-0.0774     ?      4.7334+-0.1099        ?
   direct-arguments-getbyval                          1.2965+-0.1783            1.1982+-0.0820          might be 1.0821x faster
   div-boolean-double                                 5.4027+-0.0738     ?      5.5210+-0.1080        ? might be 1.0219x slower
   div-boolean                                        8.4338+-0.1787            8.3501+-0.1575          might be 1.0100x faster
   double-get-by-val-out-of-bounds                    4.7163+-1.6757            4.5033+-0.2876          might be 1.0473x faster
   double-pollution-getbyval                          9.0106+-0.2585     ?      9.0570+-0.3545        ?
   double-pollution-putbyoffset                       4.0502+-0.2192     ?      4.3794+-0.5950        ? might be 1.0813x slower
   double-to-int32-typed-array-no-inline              2.0074+-0.0674            1.9854+-0.0354          might be 1.0111x faster
   double-to-int32-typed-array                        1.8806+-0.2769            1.7089+-0.0866          might be 1.1005x faster
   double-to-uint32-typed-array-no-inline             2.1084+-0.2312     ?      2.1415+-0.0864        ? might be 1.0157x slower
   double-to-uint32-typed-array                       1.7812+-0.1284     ?      1.8796+-0.1435        ? might be 1.0552x slower
   elidable-new-object-dag                           35.6639+-1.1049     ?     38.0355+-2.3413        ? might be 1.0665x slower
   elidable-new-object-roflcopter                    39.8967+-3.8518           39.4917+-1.8026          might be 1.0103x faster
   elidable-new-object-then-call                     32.6295+-2.2179           32.0458+-2.4875          might be 1.0182x faster
   elidable-new-object-tree                          38.3145+-1.0792     ?     38.7646+-2.4680        ? might be 1.0117x slower
   empty-string-plus-int                              4.9624+-0.3341            4.8513+-0.1919          might be 1.0229x faster
   emscripten-cube2hash                              28.7755+-0.7462           28.1398+-1.8905          might be 1.0226x faster
   exit-length-on-plain-object                       13.4777+-1.4377           12.8354+-0.2627          might be 1.0500x faster
   external-arguments-getbyval                        1.2004+-0.0600            1.1799+-0.0501          might be 1.0174x faster
   external-arguments-putbyval                        2.1657+-0.1958     ?      2.2706+-0.3248        ? might be 1.0484x slower
   fixed-typed-array-storage-var-index                1.2061+-0.0739     ?      1.2522+-0.1083        ? might be 1.0382x slower
   fixed-typed-array-storage                          0.8795+-0.1309            0.8287+-0.1225          might be 1.0614x faster
   Float32Array-matrix-mult                           3.9055+-0.1853     ?      3.9605+-0.2335        ? might be 1.0141x slower
   Float32Array-to-Float64Array-set                  48.8589+-1.4917     ?     50.9688+-2.5583        ? might be 1.0432x slower
   Float64Array-alloc-long-lived                     67.1545+-4.7694     ?     67.1813+-3.7122        ?
   Float64Array-to-Int16Array-set                    63.4022+-1.9848     ^     59.0587+-1.4005        ^ definitely 1.0735x faster
   fold-double-to-int                                12.8688+-0.3479           12.8200+-0.3800        
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                      9.5999+-0.4841     ?     10.0028+-0.4263        ? might be 1.0420x slower
   fold-get-by-id-to-multi-get-by-offset              7.6132+-0.2588     ?      7.7948+-1.0497        ? might be 1.0239x slower
   fold-multi-get-by-offset-to-get-by-offset   
                                                      7.2808+-1.5504     ?      7.4327+-0.9815        ? might be 1.0209x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      7.2904+-0.6992            7.0988+-0.9597          might be 1.0270x faster
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      7.4683+-0.7553     ?      7.8783+-0.4889        ? might be 1.0549x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                      4.3874+-0.2591     ?      4.4310+-0.6222        ?
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                      8.7172+-0.6185     ?      8.7418+-0.9197        ?
   fold-put-by-id-to-multi-put-by-offset              8.1610+-0.3644     ?      8.3720+-0.3962        ? might be 1.0259x slower
   fold-put-structure                                 3.8477+-0.4701     ?      4.0723+-0.7086        ? might be 1.0584x slower
   for-of-iterate-array-entries                       4.4391+-0.2826     ?      4.4700+-0.5935        ?
   for-of-iterate-array-keys                          3.4400+-0.2667            3.3213+-0.1120          might be 1.0357x faster
   for-of-iterate-array-values                        3.7982+-0.6670            3.5573+-0.2183          might be 1.0677x faster
   fround                                            18.1334+-0.9611     ?     18.2797+-0.6526        ?
   ftl-library-inlining-dataview                     59.9689+-1.6186     ?     60.8255+-1.9721        ? might be 1.0143x slower
   ftl-library-inlining                             113.9421+-1.7700          111.8659+-2.5664          might be 1.0186x faster
   function-dot-apply                                 2.0202+-0.0483     ?      2.0903+-0.1635        ? might be 1.0347x slower
   function-test                                      3.1288+-0.3999            2.8917+-0.0918          might be 1.0820x faster
   function-with-eval                                98.1442+-4.3029           97.8414+-4.0672        
   gcse-poly-get-less-obvious                        15.1523+-0.8459     ?     16.8424+-5.6518        ? might be 1.1115x slower
   gcse-poly-get                                     16.8250+-0.7081     ?     17.0660+-0.9448        ? might be 1.0143x slower
   gcse                                               3.8459+-0.1737     ?      4.0239+-0.2868        ? might be 1.0463x slower
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.7905+-0.5311            2.7018+-0.1651          might be 1.0328x faster
   get-by-id-bimorphic-check-structure-elimination   
                                                      5.9204+-0.3100            5.8412+-0.2026          might be 1.0136x faster
   get-by-id-chain-from-try-block                     6.6598+-0.2080            6.5416+-0.1412          might be 1.0181x faster
   get-by-id-check-structure-elimination              4.3881+-0.0514     ?      4.7001+-0.3612        ? might be 1.0711x slower
   get-by-id-proto-or-self                           14.4138+-0.5182     ?     14.7461+-0.4156        ? might be 1.0231x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      2.9945+-0.1863            2.9040+-0.0579          might be 1.0312x faster
   get-by-id-self-or-proto                           15.3785+-1.1720           15.0958+-0.7749          might be 1.0187x faster
   get-by-val-out-of-bounds                           3.9423+-0.2244            3.9283+-0.0965        
   get_callee_monomorphic                             3.3409+-0.2732     ^      2.3333+-0.1429        ^ definitely 1.4318x faster
   get_callee_polymorphic                             3.5182+-0.2762            3.3888+-0.3014          might be 1.0382x faster
   getter-no-activation                               5.0501+-0.3046            4.9400+-0.2223          might be 1.0223x faster
   getter-richards                                  111.0585+-8.3659          110.0032+-8.4782        
   getter                                             5.7444+-1.0180            5.5756+-0.4495          might be 1.0303x faster
   global-var-const-infer-fire-from-opt               0.9640+-0.2955            0.9090+-0.1284          might be 1.0605x faster
   global-var-const-infer                             0.6953+-0.0261     ?      0.7823+-0.1265        ? might be 1.1252x slower
   HashMap-put-get-iterate-keys                      24.7375+-0.9002           24.6648+-0.9605        
   HashMap-put-get-iterate                           23.5422+-0.4813     ?     24.0427+-0.6303        ? might be 1.0213x slower
   HashMap-string-put-get-iterate                    23.4868+-0.9552     ?     24.3342+-1.5594        ? might be 1.0361x slower
   hoist-make-rope                                    8.4914+-0.7527            8.4186+-0.7780        
   hoist-poly-check-structure-effectful-loop   
                                                      4.1397+-0.1058     ?      4.3927+-0.5859        ? might be 1.0611x slower
   hoist-poly-check-structure                         3.3464+-0.0943            3.2797+-0.1205          might be 1.0203x faster
   imul-double-only                                   7.2931+-1.0207            7.0920+-0.7585          might be 1.0284x faster
   imul-int-only                                      8.6156+-0.9070            8.4594+-0.2000          might be 1.0185x faster
   imul-mixed                                         6.9741+-0.7017     ?      7.1863+-0.7829        ? might be 1.0304x slower
   in-four-cases                                     16.2544+-0.7756     ?     16.8105+-0.9422        ? might be 1.0342x slower
   in-one-case-false                                  9.2295+-0.7492            8.7017+-0.3189          might be 1.0607x faster
   in-one-case-true                                   9.1511+-0.4971            8.5088+-0.5397          might be 1.0755x faster
   in-two-cases                                       9.1864+-0.7800            8.9432+-0.5457          might be 1.0272x faster
   indexed-properties-in-objects                      2.8118+-0.1199            2.8064+-0.0366        
   infer-closure-const-then-mov-no-inline             3.1728+-0.0390     ?      3.2589+-0.5591        ? might be 1.0272x slower
   infer-closure-const-then-mov                      17.6415+-0.5690     ?     17.9629+-0.5864        ? might be 1.0182x slower
   infer-closure-const-then-put-to-scope-no-inline   
                                                     11.8454+-0.2235     !     13.4003+-1.0767        ! definitely 1.1313x slower
   infer-closure-const-then-put-to-scope             24.1685+-1.3593           24.0559+-0.5496        
   infer-closure-const-then-reenter-no-inline   
                                                     53.4620+-1.4459           53.3250+-2.1983        
   infer-closure-const-then-reenter                  24.9305+-1.1769     ?     25.1358+-1.6713        ?
   infer-constant-global-property                    30.5859+-0.4359     ?     31.5210+-1.5441        ? might be 1.0306x slower
   infer-constant-property                            2.5665+-0.0738     ?      2.6038+-0.1058        ? might be 1.0145x slower
   infer-one-time-closure-ten-vars                    9.1615+-0.6092            8.6546+-0.4356          might be 1.0586x faster
   infer-one-time-closure-two-vars                    8.3731+-0.6564            8.3027+-0.5761        
   infer-one-time-closure                             8.3018+-0.4683     ?      8.4786+-0.6089        ? might be 1.0213x slower
   infer-one-time-deep-closure                       13.3691+-0.7370           13.2638+-0.3695        
   inline-arguments-access                            4.1444+-0.3574     ?      4.4445+-0.7553        ? might be 1.0724x slower
   inline-arguments-aliased-access                    4.1969+-0.4683            3.8310+-0.0893          might be 1.0955x faster
   inline-arguments-local-escape                      4.2596+-0.3941            4.0513+-0.2338          might be 1.0514x faster
   inline-get-scoped-var                              4.6948+-0.1259     ?      4.7699+-0.1926        ? might be 1.0160x slower
   inlined-put-by-id-transition                      10.2990+-0.8483     ?     10.4126+-1.2314        ? might be 1.0110x slower
   int-or-other-abs-then-get-by-val                   4.9539+-0.3030            4.8956+-0.3505          might be 1.0119x faster
   int-or-other-abs-zero-then-get-by-val             17.3810+-0.9218           16.7992+-1.1303          might be 1.0346x faster
   int-or-other-add-then-get-by-val                   4.1999+-0.2394            4.0674+-0.1666          might be 1.0326x faster
   int-or-other-add                                   4.9336+-0.1747            4.8136+-0.0594          might be 1.0249x faster
   int-or-other-div-then-get-by-val                   3.7716+-0.1186     ?      3.8949+-0.2051        ? might be 1.0327x slower
   int-or-other-max-then-get-by-val                   4.0620+-0.2734            3.9160+-0.0493          might be 1.0373x faster
   int-or-other-min-then-get-by-val                   4.0815+-0.1445     ?      4.1863+-0.1235        ? might be 1.0257x slower
   int-or-other-mod-then-get-by-val                   3.5678+-0.2011            3.5035+-0.0917          might be 1.0183x faster
   int-or-other-mul-then-get-by-val                   3.8195+-0.1838            3.7534+-0.1531          might be 1.0176x faster
   int-or-other-neg-then-get-by-val                   4.3376+-0.1156            4.3139+-0.1166        
   int-or-other-neg-zero-then-get-by-val             16.6921+-0.1146     ^     16.2137+-0.1689        ^ definitely 1.0295x faster
   int-or-other-sub-then-get-by-val                   3.9800+-0.2144     ?      4.7524+-1.8728        ? might be 1.1941x slower
   int-or-other-sub                                   3.4191+-0.1449            3.3846+-0.1649          might be 1.0102x faster
   int-overflow-local                                 4.0495+-0.0484     ?      4.2133+-0.1895        ? might be 1.0404x slower
   Int16Array-alloc-long-lived                       47.2445+-2.7421           46.8017+-2.2512        
   Int16Array-bubble-sort-with-byteLength            18.0255+-1.1212           17.3748+-0.2937          might be 1.0375x faster
   Int16Array-bubble-sort                            17.6534+-0.2822           17.5049+-0.5696        
   Int16Array-load-int-mul                            1.3690+-0.0477     ?      1.3725+-0.0306        ?
   Int16Array-to-Int32Array-set                      46.2663+-2.0618     ?     47.1484+-2.0984        ? might be 1.0191x slower
   Int32Array-alloc-large                            13.4534+-1.8265           12.8026+-1.0375          might be 1.0508x faster
   Int32Array-alloc-long-lived                       52.7792+-2.8926     ?     55.6372+-2.4466        ? might be 1.0541x slower
   Int32Array-alloc                                   2.8229+-0.1787     ?      2.9288+-0.0657        ? might be 1.0375x slower
   Int32Array-Int8Array-view-alloc                    6.2201+-0.2202     ?      6.5665+-0.3445        ? might be 1.0557x slower
   int52-spill                                        5.9745+-0.2659            5.8482+-0.1474          might be 1.0216x faster
   Int8Array-alloc-long-lived                        42.9179+-1.6254     ?     43.9277+-3.0367        ? might be 1.0235x slower
   Int8Array-load-with-byteLength                     3.3618+-0.0602     ?      3.4237+-0.0846        ? might be 1.0184x slower
   Int8Array-load                                     3.4449+-0.1124            3.4062+-0.1054          might be 1.0113x faster
   integer-divide                                    11.4934+-0.6796           11.0701+-0.1350          might be 1.0382x faster
   integer-modulo                                     1.7074+-0.1674     ?      1.7418+-0.1576        ? might be 1.0201x slower
   large-int-captured                                 4.8401+-0.0873            4.4594+-1.2697          might be 1.0854x faster
   large-int-neg                                     15.0287+-0.3427           14.8184+-0.4522          might be 1.0142x faster
   large-int                                         14.1299+-0.3786     ?     14.8934+-1.1249        ? might be 1.0540x slower
   logical-not                                        4.3064+-0.2876            4.2842+-0.1890        
   lots-of-fields                                    10.2081+-0.4215     ?     10.5051+-0.7528        ? might be 1.0291x slower
   make-indexed-storage                               2.9184+-0.1320            2.8519+-0.2004          might be 1.0233x faster
   make-rope-cse                                      4.3558+-0.6947            4.1919+-0.5485          might be 1.0391x faster
   marsaglia-larger-ints                             34.2370+-1.9631           34.1095+-2.4698        
   marsaglia-osr-entry                               22.0649+-1.3644     ?     22.1575+-1.0296        ?
   max-boolean                                        2.6755+-0.1408            2.6515+-0.0298        
   method-on-number                                  16.3193+-1.2411     ?     18.3401+-5.6243        ? might be 1.1238x slower
   min-boolean                                        2.6875+-0.1590            2.6368+-0.0635          might be 1.0192x faster
   minus-boolean-double                               3.1679+-0.1669            3.0748+-0.0757          might be 1.0303x faster
   minus-boolean                                      2.3527+-0.1538     ?      2.3667+-0.2369        ?
   misc-strict-eq                                    31.4547+-2.5803     ?     31.7823+-2.8255        ? might be 1.0104x slower
   mod-boolean-double                                11.5057+-0.2237           11.3328+-0.2318          might be 1.0153x faster
   mod-boolean                                        8.6504+-0.3998            8.4964+-0.1208          might be 1.0181x faster
   mul-boolean-double                                 3.6112+-0.1159     ?      3.7336+-0.3061        ? might be 1.0339x slower
   mul-boolean                                        3.0221+-0.4676            2.8547+-0.0833          might be 1.0586x faster
   neg-boolean                                        3.0870+-0.0707     ?      3.0907+-0.0956        ?
   negative-zero-divide                               0.2991+-0.0527            0.2958+-0.0207          might be 1.0110x faster
   negative-zero-modulo                               0.3044+-0.0423     ?      0.3237+-0.1024        ? might be 1.0634x slower
   negative-zero-negate                               0.2731+-0.0177            0.2690+-0.0144          might be 1.0151x faster
   nested-function-parsing                           33.9961+-1.8870           33.1041+-0.4931          might be 1.0269x faster
   new-array-buffer-dead                              2.7279+-0.0864     ?      2.8191+-0.1431        ? might be 1.0334x slower
   new-array-buffer-push                              6.0931+-0.2576     ?      6.5243+-0.7204        ? might be 1.0708x slower
   new-array-dead                                     9.6477+-0.7117            9.4531+-0.5190          might be 1.0206x faster
   new-array-push                                     3.6468+-0.2612     ?      4.1661+-1.2766        ? might be 1.1424x slower
   no-inline-constructor                            106.2667+-3.8801          105.4974+-6.7214        
   number-test                                        2.9215+-0.1655     ?      2.9782+-0.4552        ? might be 1.0194x slower
   object-closure-call                                4.8600+-0.0689     ?      4.8656+-0.1040        ?
   object-test                                        2.8207+-0.0334     ?      2.9138+-0.0966        ? might be 1.0330x slower
   obvious-sink-pathology-taken                     106.0748+-5.4225     ?    107.1154+-4.3667        ?
   obvious-sink-pathology                           103.4908+-6.7765     ?    105.5759+-5.7620        ? might be 1.0201x slower
   obviously-elidable-new-object                     28.6159+-1.5578     ?     30.6864+-1.9510        ? might be 1.0724x slower
   plus-boolean-arith                                 2.3335+-0.0396            2.3100+-0.0501          might be 1.0101x faster
   plus-boolean-double                                3.1731+-0.2469     ?      3.1767+-0.1003        ?
   plus-boolean                                       2.4841+-0.0333     ?      2.5883+-0.0937        ? might be 1.0419x slower
   poly-chain-access-different-prototypes-simple   
                                                      2.7006+-0.0739     ?      2.7911+-0.1422        ? might be 1.0335x slower
   poly-chain-access-different-prototypes             2.5861+-0.1904            2.4858+-0.0651          might be 1.0404x faster
   poly-chain-access-simpler                          2.7908+-0.0764            2.6846+-0.0739          might be 1.0396x faster
   poly-chain-access                                  2.6027+-0.2383            2.4792+-0.0455          might be 1.0498x faster
   poly-stricteq                                     48.3227+-1.1871     ?     48.4513+-0.2904        ?
   polymorphic-array-call                             1.4972+-0.8277            1.0922+-0.1557          might be 1.3708x faster
   polymorphic-get-by-id                              3.1423+-0.5753            2.8631+-0.1227          might be 1.0975x faster
   polymorphic-put-by-id                             25.1194+-1.2878     ?     25.7991+-1.5669        ? might be 1.0271x slower
   polymorphic-structure                             13.6026+-0.3682           13.5074+-0.5880        
   polyvariant-monomorphic-get-by-id                  6.9258+-0.8485            6.6697+-0.7180          might be 1.0384x faster
   proto-getter-access                                9.1963+-0.1433     ?      9.2290+-0.1840        ?
   put-by-id-replace-and-transition                   8.5133+-1.1741     ?      8.9386+-1.4428        ? might be 1.0500x slower
   put-by-id-slightly-polymorphic                     2.6300+-0.1727            2.5977+-0.0874          might be 1.0124x faster
   put-by-id                                         10.3231+-1.1299     ?     10.5591+-1.3013        ? might be 1.0229x slower
   put-by-val-direct                                  0.3752+-0.0087     ?      0.4081+-0.0509        ? might be 1.0875x slower
   put-by-val-large-index-blank-indexing-type   
                                                      5.9140+-0.5136            5.5265+-0.1620          might be 1.0701x faster
   put-by-val-machine-int                             2.4490+-0.1365     ?      2.4705+-0.1202        ?
   rare-osr-exit-on-local                            15.0119+-0.2616           15.0057+-0.3264        
   register-pressure-from-osr                        17.5838+-0.6505           17.4080+-0.2564          might be 1.0101x faster
   setter                                             5.5918+-0.2765     ?      5.7062+-0.1645        ? might be 1.0205x slower
   simple-activation-demo                            25.4814+-0.8538           25.0960+-0.3436          might be 1.0154x faster
   simple-getter-access                              12.3177+-0.3012     ?     12.5297+-0.4648        ? might be 1.0172x slower
   simple-poly-call-nested                            9.5285+-0.7382     ?      9.5358+-0.2499        ?
   simple-poly-call                                   1.1591+-0.0473     ?      1.2340+-0.1303        ? might be 1.0646x slower
   sin-boolean                                       19.4921+-2.1655           19.2417+-1.8804          might be 1.0130x faster
   singleton-scope                                   64.5220+-2.2685           63.6473+-1.2471          might be 1.0137x faster
   sinkable-new-object-dag                           59.8290+-1.1883     ?     62.0542+-3.9128        ? might be 1.0372x slower
   sinkable-new-object-taken                         47.9864+-2.8343           45.2465+-1.4543          might be 1.0606x faster
   sinkable-new-object                               33.0988+-2.6862           32.1648+-4.0545          might be 1.0290x faster
   slow-array-profile-convergence                     2.6935+-0.1626            2.6027+-0.2330          might be 1.0349x faster
   slow-convergence                                   2.3252+-0.0506     ?      2.4869+-0.3490        ? might be 1.0696x slower
   sorting-benchmark                                 20.0013+-0.8926     ?     20.1990+-0.7600        ?
   sparse-conditional                                 1.0628+-0.0300     ?      1.1469+-0.2288        ? might be 1.0791x slower
   splice-to-remove                                  14.3302+-1.0868           14.3285+-0.9879        
   string-char-code-at                               15.7769+-1.6197     ?     16.6093+-2.7293        ? might be 1.0528x slower
   string-concat-object                               2.2705+-0.1394     ?      2.3042+-0.1312        ? might be 1.0148x slower
   string-concat-pair-object                          2.3495+-0.1112            2.3284+-0.1906        
   string-concat-pair-simple                          9.6535+-0.3444     ?     10.6891+-1.4415        ? might be 1.1073x slower
   string-concat-simple                              11.3765+-4.0999           10.0580+-1.0295          might be 1.1311x faster
   string-cons-repeat                                 7.6605+-1.4462            6.8124+-0.3899          might be 1.1245x faster
   string-cons-tower                                  7.0252+-1.0848            6.6197+-0.0549          might be 1.0613x faster
   string-equality                                   16.3884+-0.4736           16.1422+-0.4107          might be 1.0153x faster
   string-get-by-val-big-char                         6.6145+-0.2904     ?      7.1774+-0.7466        ? might be 1.0851x slower
   string-get-by-val-out-of-bounds-insane             3.1566+-0.1479     ?      3.3575+-0.2206        ? might be 1.0637x slower
   string-get-by-val-out-of-bounds                    4.2391+-0.4059     ?      4.3004+-0.5227        ? might be 1.0145x slower
   string-get-by-val                                  2.7956+-0.0111     ?      2.9993+-0.3499        ? might be 1.0729x slower
   string-hash                                        1.7841+-0.0192     ?      1.7890+-0.0295        ?
   string-long-ident-equality                        13.4892+-0.4577     ?     14.3363+-1.5176        ? might be 1.0628x slower
   string-out-of-bounds                              10.6067+-0.3137     ?     12.0048+-2.6883        ? might be 1.1318x slower
   string-repeat-arith                               27.5787+-1.3176     ?     27.9270+-1.7319        ? might be 1.0126x slower
   string-sub                                        55.1309+-1.2337           54.3224+-2.1514          might be 1.0149x faster
   string-test                                        3.0958+-0.5119            2.6999+-0.0709          might be 1.1467x faster
   string-var-equality                               29.7672+-1.9790           29.3087+-1.3974          might be 1.0156x faster
   structure-hoist-over-transitions                   2.6607+-0.4324            2.5452+-0.4013          might be 1.0454x faster
   substring-concat-weird                            36.2605+-2.8006           35.9377+-1.6341        
   substring-concat                                  40.0435+-3.4057           39.6460+-2.2484          might be 1.0100x faster
   substring                                         42.9924+-1.0520     ?     44.1624+-2.4620        ? might be 1.0272x slower
   switch-char-constant                               2.8250+-0.3869            2.6088+-0.0477          might be 1.0829x faster
   switch-char                                        6.0179+-0.5683     ?      6.2934+-0.5260        ? might be 1.0458x slower
   switch-constant                                    9.2716+-1.2888            8.2566+-0.3544          might be 1.1229x faster
   switch-string-basic-big-var                       14.0875+-1.0959           13.0583+-0.6325          might be 1.0788x faster
   switch-string-basic-big                           13.4059+-0.4943     ?     13.4575+-0.8564        ?
   switch-string-basic-var                           12.3174+-0.3503     ?     12.8046+-0.9212        ? might be 1.0396x slower
   switch-string-basic                               12.3110+-0.6657           12.1985+-0.5660        
   switch-string-big-length-tower-var                18.8484+-0.4523           18.7945+-0.4663        
   switch-string-length-tower-var                    13.1055+-0.1755           13.0850+-0.4414        
   switch-string-length-tower                        11.5212+-0.4824           11.4623+-0.1508        
   switch-string-short                               11.4731+-0.3829     ?     11.4848+-0.4870        ?
   switch                                            12.3424+-1.0476           12.3117+-1.5370        
   tear-off-arguments-simple                          3.3680+-0.5402            3.1429+-0.2693          might be 1.0716x faster
   tear-off-arguments                                 4.2994+-0.6331     ?      4.3627+-0.4592        ? might be 1.0147x slower
   temporal-structure                                12.2992+-0.2319     ?     12.6001+-0.5135        ? might be 1.0245x slower
   to-int32-boolean                                  13.0753+-0.2017     ?     13.3418+-0.3858        ? might be 1.0204x slower
   try-catch-get-by-val-cloned-arguments             14.9580+-1.8377           13.5332+-0.4518          might be 1.1053x faster
   try-catch-get-by-val-direct-arguments              6.3693+-0.6893            6.1887+-0.2139          might be 1.0292x faster
   try-catch-get-by-val-scoped-arguments              7.7805+-1.2885            7.6649+-0.2445          might be 1.0151x faster
   undefined-property-access                        223.9280+-4.2308          220.6890+-3.4082          might be 1.0147x faster
   undefined-test                                     2.9725+-0.1720            2.9205+-0.1416          might be 1.0178x faster
   unprofiled-licm                                   14.6007+-0.7731           14.4803+-0.4027        
   varargs-call                                      14.4388+-0.6160           14.3230+-0.2521        
   varargs-construct-inline                          19.5091+-1.9639     ?     21.1695+-5.4614        ? might be 1.0851x slower
   varargs-construct                                 31.9564+-1.9662           31.7951+-1.4661        
   varargs-inline                                     8.6591+-0.1925            8.4792+-0.1679          might be 1.0212x faster
   varargs-strict-mode                                9.5154+-0.3310     ?      9.5833+-0.4743        ?
   varargs                                            9.2629+-0.2046            9.1849+-0.2049        
   weird-inlining-const-prop                          2.1185+-0.3366     ?      2.2877+-0.3379        ? might be 1.0799x slower

   <geometric>                                        7.8418+-0.0398            7.8168+-0.0338          might be 1.0032x faster

                                                          Conf#1                    Conf#2                                      
AsmBench:
   bigfib.cpp                                       460.4671+-3.2493          460.2708+-3.9588        
   cray.c                                           407.3941+-5.1841     ?    407.9569+-5.4259        ?
   dry.c                                            454.8254+-16.3602         439.9460+-16.9916         might be 1.0338x faster
   FloatMM.c                                        709.2321+-6.2498     ?    715.1607+-14.1414       ?
   gcc-loops.cpp                                   3642.7350+-32.3977        3633.0413+-14.9195       
   n-body.c                                         854.9380+-9.7455          850.7097+-9.1725        
   Quicksort.c                                      408.7087+-5.0788          405.8737+-3.1266        
   stepanov_container.cpp                          3816.9313+-65.5215        3791.2543+-36.8649       
   Towers.c                                         279.5634+-80.0293         248.5742+-6.6240          might be 1.1247x faster

   <geometric>                                      755.7069+-24.1461         743.8971+-2.8090          might be 1.0159x faster

                                                          Conf#1                    Conf#2                                      
CompressionBench:
   huffman                                          309.9468+-4.0988          309.8133+-5.6571        
   arithmetic-simple                                354.8420+-4.4944          354.1629+-4.8568        
   arithmetic-precise                               271.1820+-4.5854     ?    272.9160+-3.4857        ?
   arithmetic-complex-precise                       274.1901+-3.0606          271.8753+-6.5757        
   arithmetic-precise-order-0                       377.4504+-6.3252     ?    378.0103+-5.5649        ?
   arithmetic-precise-order-1                       310.6452+-4.4770          307.9252+-2.4075        
   arithmetic-precise-order-2                       349.4101+-4.6362     ?    356.5932+-9.8216        ? might be 1.0206x slower
   arithmetic-simple-order-1                        344.8181+-6.1619     ?    346.9463+-6.3893        ?
   arithmetic-simple-order-2                        407.5136+-5.6869          403.4607+-7.7063          might be 1.0100x faster
   lz-string                                        346.2848+-3.8796     ?    347.0602+-10.0842       ?

   <geometric>                                      332.0448+-1.6837     ?    332.2533+-1.3863        ? might be 1.0006x slower

                                                          Conf#1                    Conf#2                                      
Geomean of preferred means:
   <scaled-result>                                   58.3029+-0.4526           58.1066+-0.3332          might be 1.0034x faster
Comment 2 Basile Clement 2015-04-17 10:29:13 PDT
Created attachment 251026 [details]
Patch w/ ChangeLog
Comment 3 Geoffrey Garen 2015-04-17 11:12:54 PDT
Comment on attachment 251026 [details]
Patch w/ ChangeLog

👍
Comment 4 WebKit Commit Bot 2015-04-17 11:51:54 PDT
Comment on attachment 251026 [details]
Patch w/ ChangeLog

Clearing flags on attachment: 251026

Committed r182959: <http://trac.webkit.org/changeset/182959>
Comment 5 WebKit Commit Bot 2015-04-17 11:51:58 PDT
All reviewed patches have been landed.  Closing bug.