Bug 136869 - Do all closed variable access through the local lexical object
Summary: Do all closed variable access through the local lexical object
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Oliver Hunt
URL:
Keywords:
Depends on: 137404 140306
Blocks: 137357 141174
  Show dependency treegraph
 
Reported: 2014-09-16 14:39 PDT by Oliver Hunt
Modified: 2015-03-26 20:38 PDT (History)
8 users (show)

See Also:


Attachments
Patch (40.62 KB, patch)
2014-09-16 14:39 PDT, Oliver Hunt
no flags Details | Formatted Diff | Diff
Patch (40.80 KB, patch)
2014-09-19 10:49 PDT, Oliver Hunt
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from webkit-ews-11 for mac-mountainlion-wk2 (576.91 KB, application/zip)
2014-09-19 12:35 PDT, Build Bot
no flags Details
Archive of layout-test-results from webkit-ews-04 for mac-mountainlion (680.31 KB, application/zip)
2014-09-19 15:14 PDT, Build Bot
no flags Details
Patch (41.99 KB, patch)
2014-09-19 16:57 PDT, Oliver Hunt
no flags Details | Formatted Diff | Diff
WIP - passes jsc tests, progresses jsc only benchmarks, etc (101.42 KB, patch)
2014-09-26 13:17 PDT, Oliver Hunt
no flags Details | Formatted Diff | Diff
WIP - passes all tests, rebaselined to ToT, but still regresses perf in a few places (106.47 KB, patch)
2014-09-30 10:50 PDT, Oliver Hunt
no flags Details | Formatted Diff | Diff
Patch (117.11 KB, patch)
2014-10-01 12:14 PDT, Oliver Hunt
fpizlo: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Oliver Hunt 2014-09-16 14:39:33 PDT
Do all closed variable access through the local lexical object
Comment 1 Oliver Hunt 2014-09-16 14:39:45 PDT
Created attachment 238212 [details]
Patch
Comment 2 Oliver Hunt 2014-09-16 14:42:01 PDT
Initial work, performs all variable reads/writes through the local lexical environment. Doesn't use a single allocation for the environment, isn't writing declared functions through the scope chain.

Is annihilating performance - quake tests are ~2.5x slower, simple activation is something like 10x.  I'm not sure switching to a single allocation will be enough to compensate for that sort of insanity.
Comment 3 Oliver Hunt 2014-09-19 10:49:56 PDT
Created attachment 238378 [details]
Patch

fixed dumb handling of put_to_scope
Comment 4 WebKit Commit Bot 2014-09-19 10:52:30 PDT
Attachment 238378 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/llint/LLIntData.cpp:146:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 5 Geoffrey Garen 2014-09-19 11:15:35 PDT
Comment on attachment 238378 [details]
Patch

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

What's the performance result of this new patch?

> Source/JavaScriptCore/bytecode/CodeBlock.cpp:1973
> +            if (pc[5].u.operand) {
> +                instructions[i + 5] = 0;
> +                break;
> +            }

It looks like you're saying that, if we have a non-local access, we must initialize the structure to null.

Why do we need to do this?

Why didn't we need to do this before?

Why don't we need to this this for local accesses?
Comment 6 Oliver Hunt 2014-09-19 11:54:38 PDT
Comment on attachment 238378 [details]
Patch

(whoops didn't mean it for review - perf still awful :) )
Comment 7 Oliver Hunt 2014-09-19 11:56:43 PDT
(In reply to comment #5)
> (From update of attachment 238378 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=238378&action=review
> 
> What's the performance result of this new patch?
> 
> > Source/JavaScriptCore/bytecode/CodeBlock.cpp:1973
> > +            if (pc[5].u.operand) {
> > +                instructions[i + 5] = 0;
> > +                break;
> > +            }
> 
> It looks like you're saying that, if we have a non-local access, we must initialize the structure to null.
> 
> Why do we need to do this?
> 
> Why didn't we need to do this before?
> 
> Why don't we need to this this for local accesses?

The structure isn't used for local access, but we use the slot to signify a local access - if we don't clear it the GC then tries to mark what it believes must be a structure* but is actually a bool. That leads to badness. We didn't need to do this before because we always set this to a correct structure or null.
Comment 8 Build Bot 2014-09-19 12:35:10 PDT
Comment on attachment 238378 [details]
Patch

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

New failing tests:
inspector-protocol/debugger/setBreakpoint-options-exception.html
js/dom/inc-const-valueOf.html
css3/viewport-percentage-lengths/viewport-percentage-lengths-anonymous-block.html
inspector-protocol/debugger/didSampleProbe-multiple-probes.html
js/dom/const.html
css3/viewport-percentage-lengths/viewport-percentage-lengths-resize.html
inspector-protocol/debugger/searchInContent-linebreaks.html
css3/viewport-percentage-lengths/viewport-percentage-lengths-relative-font-size.html
inspector-protocol/debugger/setBreakpoint-actions.html
css3/viewport-percentage-lengths/viewport-percentage-lengths-percent-size-child.html
inspector-protocol/console/console-message.html
Comment 9 Build Bot 2014-09-19 12:35:13 PDT
Created attachment 238383 [details]
Archive of layout-test-results from webkit-ews-11 for mac-mountainlion-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-11  Port: mac-mountainlion-wk2  Platform: Mac OS X 10.8.5
Comment 10 Build Bot 2014-09-19 15:14:28 PDT
Comment on attachment 238378 [details]
Patch

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

New failing tests:
inspector-protocol/debugger/setBreakpoint-options-exception.html
js/dom/inc-const-valueOf.html
css3/viewport-percentage-lengths/viewport-percentage-lengths-anonymous-block.html
inspector-protocol/debugger/didSampleProbe-multiple-probes.html
inspector-protocol/debugger/hit-breakpoint-from-console.html
js/dom/const.html
css3/viewport-percentage-lengths/viewport-percentage-lengths-resize.html
inspector-protocol/debugger/searchInContent-linebreaks.html
css3/viewport-percentage-lengths/viewport-percentage-lengths-relative-font-size.html
inspector-protocol/debugger/setBreakpoint-actions.html
css3/viewport-percentage-lengths/viewport-percentage-lengths-percent-size-child.html
inspector-protocol/console/console-message.html
inspector-protocol/debugger/setBreakpoint.html
Comment 11 Build Bot 2014-09-19 15:14:31 PDT
Created attachment 238391 [details]
Archive of layout-test-results from webkit-ews-04 for mac-mountainlion

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: webkit-ews-04  Port: mac-mountainlion  Platform: Mac OS X 10.8.5
Comment 12 Oliver Hunt 2014-09-19 16:57:56 PDT
Created attachment 238398 [details]
Patch

now with correct-ish const behaviour.
Comment 13 Oliver Hunt 2014-09-26 13:15:17 PDT
Getting there:

                                                          trunk                      new                                        
SunSpider:
   3d-cube                                            6.5831+-0.1777     ?      6.6930+-0.2715        ? might be 1.0167x slower
   3d-morph                                           8.4622+-0.5763            8.3586+-0.4125          might be 1.0124x faster
   3d-raytrace                                        8.4960+-0.8554            8.2167+-0.1770          might be 1.0340x faster
   access-binary-trees                                2.4766+-0.2238     ?      2.5593+-0.2228        ? might be 1.0334x slower
   access-fannkuch                                    8.0583+-0.4594     ?      8.1275+-0.2988        ?
   access-nbody                                       3.9548+-0.1834     ?      3.9980+-0.2238        ? might be 1.0109x slower
   access-nsieve                                      5.0636+-0.1504     ?      5.3058+-0.2260        ? might be 1.0478x slower
   bitops-3bit-bits-in-byte                           1.7398+-0.1479            1.7037+-0.1235          might be 1.0212x faster
   bitops-bits-in-byte                                5.6075+-0.2461     ?      5.6858+-0.1548        ? might be 1.0140x slower
   bitops-bitwise-and                                 2.7920+-0.1718            2.7211+-0.2045          might be 1.0260x faster
   bitops-nsieve-bits                                 5.0073+-0.2889     ?      5.0095+-0.2361        ?
   controlflow-recursive                              2.6053+-0.1724     ?      2.7364+-0.1839        ? might be 1.0503x slower
   crypto-aes                                         5.6257+-0.7609            5.3441+-0.1170          might be 1.0527x faster
   crypto-md5                                         3.1347+-0.1420            3.1290+-0.2339        
   crypto-sha1                                        3.1318+-0.2464     ?      3.1663+-0.2528        ? might be 1.0110x slower
   date-format-tofte                                 11.5990+-0.3327     !     12.0987+-0.0925        ! definitely 1.0431x slower
   date-format-xparb                                  6.9165+-0.3145            6.6412+-0.3418          might be 1.0414x faster
   math-cordic                                        4.0718+-0.0392            3.9652+-0.1455          might be 1.0269x faster
   math-partial-sums                                  9.3080+-0.7729            8.7882+-0.2186          might be 1.0592x faster
   math-spectral-norm                                 2.7661+-0.2420            2.7000+-0.1566          might be 1.0245x faster
   regexp-dna                                         9.8392+-0.6835     ?      9.9645+-0.2355        ? might be 1.0127x slower
   string-base64                                      5.5485+-0.1918     ?      5.6600+-0.3263        ? might be 1.0201x slower
   string-fasta                                       9.0470+-0.4458            8.9326+-0.0295          might be 1.0128x faster
   string-tagcloud                                   13.7442+-0.1191           13.5806+-0.5803          might be 1.0120x faster
   string-unpack-code                                29.4589+-1.4138           29.3412+-1.0438        
   string-validate-input                              6.5427+-0.0435     ?      6.6766+-0.4380        ? might be 1.0205x slower

   <arithmetic> *                                     6.9839+-0.0707            6.9655+-0.0448          might be 1.0026x faster
   <geometric>                                        5.6758+-0.0578            5.6685+-0.0333          might be 1.0013x faster
   <harmonic>                                         4.7436+-0.0826            4.7422+-0.0578          might be 1.0003x faster

                                                          trunk                      new                                        
LongSpider:
   3d-cube                                         1115.2137+-9.1448     ?   1128.4586+-22.0743       ? might be 1.0119x slower
   3d-morph                                        1876.0035+-18.0815        1864.1858+-2.4562        
   3d-raytrace                                     1101.5542+-17.3604    ?   1107.3085+-12.8265       ?
   access-binary-trees                             1407.7999+-8.1577     ?   1419.7498+-13.3597       ?
   access-fannkuch                                  449.4797+-17.0694         446.1082+-21.2365       
   access-nbody                                    1041.6500+-3.3914         1041.4412+-2.4449        
   access-nsieve                                   1400.3293+-9.7507         1400.2641+-5.2063        
   bitops-3bit-bits-in-byte                          49.8457+-0.7492           49.8263+-0.7765        
   bitops-bits-in-byte                              326.7853+-11.1215         325.0287+-10.1818       
   bitops-nsieve-bits                              1035.5785+-3.4531     ^    988.1630+-3.8508        ^ definitely 1.0480x faster
   controlflow-recursive                            716.3319+-6.2611     ?    716.3374+-2.0269        ?
   crypto-aes                                       944.1306+-8.4069          939.1065+-2.7868        
   crypto-md5                                       808.7806+-4.2647     ?    809.2936+-5.7620        ?
   crypto-sha1                                      991.1830+-1.9757     ?    999.1599+-6.2133        ?
   date-format-tofte                               1004.8005+-28.8214    ?   1046.4180+-21.8961       ? might be 1.0414x slower
   date-format-xparb                                968.9442+-32.1412         961.1215+-26.9764       
   math-cordic                                      669.5610+-1.6789     ?    670.1751+-1.6054        ?
   math-partial-sums                               1038.5549+-3.9752     ?   1043.6967+-7.0542        ?
   math-spectral-norm                              1075.3821+-8.5496     ?   1077.1320+-10.8602       ?
   string-base64                                    491.3812+-2.7716          489.1403+-0.7960        
   string-fasta                                     588.2443+-16.8580         578.4473+-2.6189          might be 1.0169x faster
   string-tagcloud                                  312.6832+-2.4466          306.4709+-4.4822          might be 1.0203x faster

   <arithmetic>                                     882.4644+-2.7709          882.1379+-1.3363          might be 1.0004x faster
   <geometric> *                                    738.7421+-2.0411          737.4220+-1.5765          might be 1.0018x faster
   <harmonic>                                       457.5162+-3.0522          456.2728+-2.6500          might be 1.0027x faster

                                                          trunk                      new                                        
V8Spider:
   crypto                                            82.2231+-1.2427     ^     71.5285+-0.7756        ^ definitely 1.1495x faster
   deltablue                                        111.8444+-0.7116          111.4160+-1.6115        
   earley-boyer                                      62.2648+-1.4425           61.7458+-0.7081        
   raytrace                                          42.6268+-2.0692           41.6777+-1.5981          might be 1.0228x faster
   regexp                                            86.0444+-0.6564           85.9825+-0.7686        
   richards                                         120.5156+-4.2304     ?    124.2405+-3.6949        ? might be 1.0309x slower
   splay                                             43.6022+-1.2629     ?     43.8838+-1.9424        ?

   <arithmetic>                                      78.4459+-0.6855           77.2107+-0.8530          might be 1.0160x faster
   <geometric> *                                     72.9818+-0.6473           71.5596+-0.9034          might be 1.0199x faster
   <harmonic>                                        67.6315+-0.7661           66.2687+-1.1090          might be 1.0206x faster

                                                          trunk                      new                                        
Octane:
   encrypt                                           0.32919+-0.00088          0.32829+-0.00452       
   decrypt                                           5.94733+-0.04650    ?     5.95294+-0.08160       ?
   deltablue                                x2       0.28585+-0.00386          0.28492+-0.00848       
   earley                                            1.03817+-0.01706          1.02532+-0.02288         might be 1.0125x faster
   boyer                                             8.65140+-0.08995    ?     8.66254+-0.14109       ?
   navier-stokes                            x2       6.38120+-0.00199    ?     6.42797+-0.07170       ?
   raytrace                                 x2       2.22852+-0.03256    ?     2.23079+-0.02601       ?
   richards                                 x2       0.17804+-0.00404          0.17782+-0.00648       
   splay                                    x2       0.55333+-0.00589    ?     0.55583+-0.00094       ?
   regexp                                   x2      47.54781+-0.16358    !    48.21833+-0.50462       ! definitely 1.0141x slower
   pdfjs                                    x2      73.95415+-0.52756    ?    74.05404+-0.66266       ?
   mandreel                                 x2      74.30811+-0.94519    ?    74.62871+-1.01549       ?
   gbemu                                    x2      60.62467+-0.63673    !    65.08309+-0.54328       ! definitely 1.0735x slower
   closure                                           0.76129+-0.00346    ^     0.75328+-0.00281       ^ definitely 1.0106x faster
   jquery                                            9.38395+-0.01580    !     9.58200+-0.07902       ! definitely 1.0211x slower
   box2d                                    x2      20.33280+-0.33139         20.22942+-0.33759       
   zlib                                     x2     651.63468+-76.29622   ?   652.06681+-75.82649      ?
   typescript                               x2    1112.48578+-6.48749    ^  1080.84705+-9.25136       ^ definitely 1.0293x faster

   <arithmetic>                                    137.57137+-4.90182        135.86380+-5.36608         might be 1.0126x faster
   <geometric> *                                    10.02977+-0.07174    ?    10.07270+-0.07125       ? might be 1.0043x slower
   <harmonic>                                        1.03469+-0.00985          1.03296+-0.01972         might be 1.0017x faster

                                                          trunk                      new                                        
Kraken:
   ai-astar                                          462.973+-14.984     ?     468.247+-12.571        ? might be 1.0114x slower
   audio-beat-detection                              149.861+-1.281      ?     150.162+-3.451         ?
   audio-dft                                         211.999+-0.412      ^     209.957+-1.464         ^ definitely 1.0097x faster
   audio-fft                                         108.151+-0.800      ?     108.221+-2.046         ?
   audio-oscillator                                  314.353+-4.803            313.669+-2.783         
   imaging-darkroom                                  243.110+-0.626      ?     243.292+-1.658         ?
   imaging-desaturate                                 94.783+-0.484      ?      94.893+-0.995         ?
   imaging-gaussian-blur                             155.828+-1.327      ?     157.653+-3.242         ? might be 1.0117x slower
   json-parse-financial                               65.110+-0.903      !      68.601+-1.765         ! definitely 1.0536x slower
   json-stringify-tinderbox                           90.795+-7.626             87.885+-1.678           might be 1.0331x faster
   stanford-crypto-aes                                85.882+-3.821             85.659+-1.667         
   stanford-crypto-ccm                                73.668+-11.379     ?      77.755+-11.846        ? might be 1.0555x slower
   stanford-crypto-pbkdf2                            231.800+-0.750      ?     233.606+-3.015         ?
   stanford-crypto-sha256-iterative                   71.497+-0.829      ?      72.351+-1.386         ? might be 1.0120x slower

   <arithmetic> *                                    168.558+-1.419      ?     169.425+-0.919         ? might be 1.0051x slower
   <geometric>                                       139.971+-2.158      ?     141.045+-1.393         ? might be 1.0077x slower
   <harmonic>                                        119.602+-2.796      ?     121.043+-1.963         ? might be 1.0120x slower

                                                          trunk                      new                                        
JSRegress:
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     96.3231+-2.1111           95.4300+-1.2801        
   ArrayBuffer-DataView-alloc-long-lived             25.8523+-0.3848     ?     26.6305+-2.3002        ? might be 1.0301x slower
   ArrayBuffer-Int32Array-byteOffset                  4.5000+-0.1687     ?      4.6724+-0.1477        ? might be 1.0383x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     99.8165+-0.5690           99.1079+-1.8575        
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     42.1527+-1.9165           40.9700+-0.9829          might be 1.0289x faster
   ArrayBuffer-Int8Array-alloc-long-lived            25.1815+-1.4728     ?     25.1973+-0.6562        ?
   ArrayBuffer-Int8Array-alloc                       22.1994+-0.2305     ?     23.9191+-1.8871        ? might be 1.0775x slower
   DataView-custom-properties                       102.9626+-1.4341          102.0170+-0.7587        
   Float32Array-matrix-mult                           5.8983+-0.4595            5.7465+-0.2019          might be 1.0264x faster
   Float32Array-to-Float64Array-set                  77.8256+-1.8068           77.2762+-1.5971        
   Float64Array-alloc-long-lived                     87.1673+-1.0175           87.1143+-0.7150        
   Float64Array-to-Int16Array-set                    93.2047+-2.2343     ?     93.4600+-0.6259        ?
   HashMap-put-get-iterate-keys                      34.9577+-0.4952     ?     34.9827+-1.1771        ?
   HashMap-put-get-iterate                           34.3861+-0.8570     ?     34.4991+-1.2394        ?
   HashMap-string-put-get-iterate                    39.0083+-1.0295           38.9553+-2.1005        
   Int16Array-alloc-long-lived                       61.5854+-0.7484           60.9652+-0.7969          might be 1.0102x faster
   Int16Array-bubble-sort-with-byteLength            39.1044+-1.1140     ?     39.9411+-1.2428        ? might be 1.0214x slower
   Int16Array-bubble-sort                            38.3181+-0.2901     ?     39.3561+-1.2312        ? might be 1.0271x slower
   Int16Array-load-int-mul                            1.8860+-0.1609            1.8227+-0.1140          might be 1.0348x faster
   Int16Array-to-Int32Array-set                      76.8943+-3.1162     ?     77.1275+-2.5676        ?
   Int32Array-Int8Array-view-alloc                   12.1113+-0.3056     ?     12.3152+-0.7957        ? might be 1.0168x slower
   Int32Array-alloc-large                            36.7415+-1.4709           36.5608+-1.3040        
   Int32Array-alloc-long-lived                       68.5901+-1.0806           68.5807+-0.7470        
   Int32Array-alloc                                   4.0016+-0.1230     ?      4.0312+-0.3620        ?
   Int8Array-alloc-long-lived                        55.6004+-1.3095           55.2764+-0.8600        
   Int8Array-load-with-byteLength                     4.6536+-0.0295     ?      4.6576+-0.1057        ?
   Int8Array-load                                     4.5872+-0.0524     ?      4.6000+-0.0858        ?
   abs-boolean                                        3.6297+-0.1432     ?      3.6451+-0.0977        ?
   adapt-to-double-divide                            18.2473+-0.8462           17.8862+-0.7848          might be 1.0202x faster
   aliased-arguments-getbyval                         1.0671+-0.1270     ?      1.0852+-0.1280        ? might be 1.0169x slower
   allocate-big-object                                3.0390+-0.2137     ?      3.2673+-0.5758        ? might be 1.0751x slower
   arity-mismatch-inlining                            0.9651+-0.1043     ?      1.0043+-0.0679        ? might be 1.0405x slower
   array-access-polymorphic-structure                 8.8950+-0.5360            8.8070+-0.3318        
   array-nonarray-polymorhpic-access                 51.3222+-1.2678     ?     52.2993+-1.0376        ? might be 1.0190x slower
   array-prototype-every                            102.0532+-4.4841           99.5626+-2.1934          might be 1.0250x faster
   array-prototype-forEach                          100.3277+-2.9111     ?    101.0574+-5.0482        ?
   array-prototype-map                              124.2255+-4.5038     ?    124.7147+-2.7377        ?
   array-prototype-some                             100.6591+-1.7756           98.8412+-2.1709          might be 1.0184x faster
   array-splice-contiguous                           57.7095+-1.7089     ?     58.2322+-1.2894        ?
   array-with-double-add                              5.7574+-0.2375            5.7222+-0.1560        
   array-with-double-increment                        5.3092+-0.0678     ^      4.0213+-0.1020        ^ definitely 1.3203x faster
   array-with-double-mul-add                          7.4147+-0.1747            6.9760+-0.5075          might be 1.0629x faster
   array-with-double-sum                              5.4860+-0.1663     ^      4.2265+-0.1148        ^ definitely 1.2980x faster
   array-with-int32-add-sub                          10.0468+-0.1681           10.0451+-0.1902        
   array-with-int32-or-double-sum                     5.5323+-0.1614     ^      4.3475+-0.1252        ^ definitely 1.2725x faster
   asmjs_bool_bug                                     8.7563+-0.0824     ?      8.7730+-0.2996        ?
   assign-custom-setter-polymorphic                   4.3048+-0.4372            4.3022+-0.1762        
   assign-custom-setter                               6.5165+-1.0573            5.7444+-0.1788          might be 1.1344x faster
   basic-set                                         13.6500+-0.5017     ?     13.9428+-1.0375        ? might be 1.0214x slower
   big-int-mul                                        6.3073+-0.0888     ^      5.7023+-0.1623        ^ definitely 1.1061x faster
   boolean-test                                       4.1055+-0.1238     ?      4.1356+-0.0851        ?
   branch-fold                                        4.5148+-0.1394     ?      4.5520+-0.1090        ?
   by-val-generic                                    10.5801+-0.8108     ?     10.8841+-0.1816        ? might be 1.0287x slower
   call-spread-apply                                 18.1485+-1.0988           16.8668+-0.4843          might be 1.0760x faster
   call-spread-call                                   7.8897+-0.2348            7.4687+-0.2252          might be 1.0564x faster
   captured-assignments                               0.5775+-0.1134            0.5745+-0.1160        
   cast-int-to-double                                 8.0908+-0.1259     ?      8.0965+-0.2065        ?
   cell-argument                                     10.0329+-0.3145            9.9075+-0.6846          might be 1.0127x faster
   cfg-simplify                                       3.5285+-0.0680            3.4700+-0.0985          might be 1.0169x faster
   chain-getter-access                               12.7510+-0.3211           12.5332+-0.4407          might be 1.0174x faster
   cmpeq-obj-to-obj-other                            12.0731+-0.1444           11.9660+-0.3741        
   constant-test                                      7.7147+-0.1775            7.5865+-0.1082          might be 1.0169x faster
   delay-tear-off-arguments-strictmode                3.2924+-0.2403     ?      3.3028+-0.1002        ?
   destructuring-arguments                            7.8797+-0.2793            7.7270+-0.1728          might be 1.0198x faster
   destructuring-swap                                 7.7220+-0.2817            7.6637+-0.1329        
   direct-arguments-getbyval                          1.0682+-0.1293     ?      1.1610+-0.0344        ? might be 1.0868x slower
   div-boolean-double                                 5.4090+-0.0768     ?      5.4347+-0.0582        ?
   div-boolean                                       10.1900+-1.0174            9.8658+-0.1787          might be 1.0329x faster
   double-get-by-val-out-of-bounds                    5.5109+-0.2415     ?      5.6030+-0.2241        ? might be 1.0167x slower
   double-pollution-getbyval                          9.6093+-0.0900     ?      9.8392+-0.2250        ? might be 1.0239x slower
   double-pollution-putbyoffset                       5.3180+-0.2963            5.3160+-0.2243        
   double-to-int32-typed-array-no-inline              2.6940+-0.1485     ?      2.7416+-0.0504        ? might be 1.0177x slower
   double-to-int32-typed-array                        2.3230+-0.1581            2.3212+-0.1542        
   double-to-uint32-typed-array-no-inline             2.6810+-0.1434            2.6657+-0.1637        
   double-to-uint32-typed-array                       2.4536+-0.1149     ?      2.5308+-0.0751        ? might be 1.0315x slower
   empty-string-plus-int                              8.9819+-0.1069     ?      9.2714+-0.2913        ? might be 1.0322x slower
   emscripten-cube2hash                              48.0847+-1.7371           46.3077+-0.1417          might be 1.0384x faster
   external-arguments-getbyval                        1.7885+-0.0668     ?      1.8610+-0.1368        ? might be 1.0405x slower
   external-arguments-putbyval                        2.4565+-0.1236     ?      2.4950+-0.0940        ? might be 1.0157x slower
   fixed-typed-array-storage-var-index                1.4158+-0.1080     ?      1.4692+-0.1642        ? might be 1.0377x slower
   fixed-typed-array-storage                          1.0585+-0.0837            1.0024+-0.0660          might be 1.0559x faster
   fold-double-to-int                                18.3644+-0.6183     ?     18.5140+-0.4753        ?
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     23.4003+-2.1738     ?     25.5282+-4.7209        ? might be 1.0909x slower
   fold-get-by-id-to-multi-get-by-offset             22.7805+-1.0411     ?     23.8630+-3.2552        ? might be 1.0475x slower
   fold-multi-get-by-offset-to-get-by-offset   
                                                     15.5200+-0.4093           15.3650+-0.4838          might be 1.0101x faster
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                     15.8572+-0.5235           15.8423+-0.6452        
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                     16.3254+-0.7642     ?     16.5710+-0.6488        ? might be 1.0150x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                     15.2444+-0.7485           15.1572+-0.6804        
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     20.2938+-1.3319           20.1758+-0.6960        
   fold-put-by-id-to-multi-put-by-offset             26.5216+-3.9199     ?     26.6257+-1.8730        ?
   fold-put-structure                                14.9695+-0.1563           14.8265+-0.1234        
   for-of-iterate-array-entries                       7.3966+-0.1071     !      7.7647+-0.1814        ! definitely 1.0498x slower
   for-of-iterate-array-keys                          3.6517+-0.1399            3.5905+-0.3672          might be 1.0170x faster
   for-of-iterate-array-values                        3.1245+-0.2005            2.9680+-0.3201          might be 1.0527x faster
   fround                                            22.1049+-0.5668     ?     22.9566+-0.9949        ? might be 1.0385x slower
   ftl-library-inlining-dataview                    101.5339+-5.9573           92.9108+-5.4875          might be 1.0928x faster
   ftl-library-inlining                             102.9000+-1.3286     ^    100.2765+-0.8393        ^ definitely 1.0262x faster
   function-dot-apply                                 2.2635+-0.4501            2.2006+-0.1381          might be 1.0286x faster
   function-test                                      4.6037+-0.0887            4.6033+-0.4625        
   function-with-eval                                83.1436+-3.2480     ^     75.9734+-1.6093        ^ definitely 1.0944x faster
   gcse-poly-get-less-obvious                        25.0947+-0.3538           24.6570+-0.6157          might be 1.0178x faster
   gcse-poly-get                                     24.8865+-0.4910           24.7108+-0.3687        
   gcse                                               6.4426+-0.0777            6.4410+-0.1287        
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.2086+-0.1246     ?      3.3055+-0.3037        ? might be 1.0302x slower
   get-by-id-bimorphic-check-structure-elimination   
                                                      8.0546+-0.3940     ?      8.2998+-0.4120        ? might be 1.0304x slower
   get-by-id-chain-from-try-block                     6.9770+-0.1833     !     15.6876+-0.7551        ! definitely 2.2485x slower
   get-by-id-check-structure-elimination              7.5323+-0.3057            7.4353+-0.1228          might be 1.0130x faster
   get-by-id-proto-or-self                           24.4953+-3.1179           22.0028+-0.5513          might be 1.1133x faster
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      3.8157+-0.2055     ?      3.8615+-0.0654        ? might be 1.0120x slower
   get-by-id-self-or-proto                           24.3384+-0.9276           22.7166+-1.5055          might be 1.0714x faster
   get-by-val-out-of-bounds                           5.4510+-0.0558     ?      5.4603+-0.1823        ?
   get_callee_monomorphic                             4.9068+-0.2698            4.8579+-0.4715          might be 1.0101x faster
   get_callee_polymorphic                             4.1535+-0.0552            4.1132+-0.1601        
   getter-no-activation                               5.6725+-0.0339     ?      5.6747+-0.0493        ?
   getter-richards                                  171.4846+-11.4664         169.2729+-10.4960         might be 1.0131x faster
   getter                                             6.3890+-0.1603     ?      6.5099+-0.3169        ? might be 1.0189x slower
   global-var-const-infer-fire-from-opt               1.1889+-0.1020            1.1722+-0.2260          might be 1.0142x faster
   global-var-const-infer                             1.1235+-0.1112            0.9630+-0.0918          might be 1.1666x faster
   hoist-make-rope                                   14.2095+-2.3673     ?     14.3226+-1.8815        ?
   hoist-poly-check-structure-effectful-loop   
                                                      6.4543+-0.2628            6.4287+-0.1696        
   hoist-poly-check-structure                         4.8732+-0.0302            4.8382+-0.2482        
   imul-double-only                                  10.0211+-1.1597     ?     10.2737+-2.1651        ? might be 1.0252x slower
   imul-int-only                                     12.7151+-0.7199           12.0753+-0.9731          might be 1.0530x faster
   imul-mixed                                        10.0916+-0.9905            9.8337+-0.8394          might be 1.0262x faster
   in-four-cases                                     24.0830+-0.4118     !     26.8447+-0.5746        ! definitely 1.1147x slower
   in-one-case-false                                 12.8676+-0.1359     !     15.1060+-0.5081        ! definitely 1.1740x slower
   in-one-case-true                                  12.9622+-0.2347     !     14.9085+-0.2527        ! definitely 1.1502x slower
   in-two-cases                                      13.2499+-0.0916     !     15.3542+-0.2414        ! definitely 1.1588x slower
   indexed-properties-in-objects                      3.7455+-0.1233            3.6815+-0.0942          might be 1.0174x faster
   infer-closure-const-then-mov-no-inline             4.2895+-0.1640     ?      4.3852+-0.1468        ? might be 1.0223x slower
   infer-closure-const-then-mov                      24.4436+-0.2226     ?     24.8204+-0.4852        ? might be 1.0154x slower
   infer-closure-const-then-put-to-scope-no-inline   
                                                     15.1420+-0.3706           14.9277+-0.3291          might be 1.0144x faster
   infer-closure-const-then-put-to-scope             27.9920+-0.2383     ?     28.0573+-0.3292        ?
   infer-closure-const-then-reenter-no-inline   
                                                     65.3909+-1.6937           64.6133+-0.7748          might be 1.0120x faster
   infer-closure-const-then-reenter                  28.0624+-0.8324           27.9370+-0.5351        
   infer-constant-global-property                     4.5945+-0.1533     ?      4.6071+-0.1239        ?
   infer-constant-property                            3.1650+-0.1375            3.0947+-0.0835          might be 1.0227x faster
   infer-one-time-closure-ten-vars                   14.7390+-0.4337           14.5485+-0.5271          might be 1.0131x faster
   infer-one-time-closure-two-vars                   14.4742+-0.4512           14.4015+-0.9172        
   infer-one-time-closure                            14.0286+-0.6796     ?     14.1026+-0.2509        ?
   infer-one-time-deep-closure                       24.4132+-0.4883     ?     25.2418+-1.2493        ? might be 1.0339x slower
   inline-arguments-access                            2.0644+-0.1510            2.0504+-0.1407        
   inline-arguments-aliased-access                    2.2595+-0.1285     ?      2.2772+-0.1595        ?
   inline-arguments-local-escape                     16.2642+-0.3936           15.9981+-0.5263          might be 1.0166x faster
   inline-get-scoped-var                              5.6449+-0.4056            5.5308+-0.1832          might be 1.0206x faster
   inlined-put-by-id-transition                      13.0715+-0.4892           12.9933+-0.1798        
   int-or-other-abs-then-get-by-val                   6.7018+-0.1128     ?      6.8647+-0.3891        ? might be 1.0243x slower
   int-or-other-abs-zero-then-get-by-val             26.8300+-0.7498     ?     26.8833+-0.3559        ?
   int-or-other-add-then-get-by-val                   5.7943+-0.0834     ?      5.7970+-0.0944        ?
   int-or-other-add                                   7.7078+-0.2908     ?      7.8168+-0.2283        ? might be 1.0141x slower
   int-or-other-div-then-get-by-val                   5.0109+-0.2264            4.9843+-0.0961        
   int-or-other-max-then-get-by-val                   6.4915+-0.5361            6.4287+-0.3641        
   int-or-other-min-then-get-by-val                   5.1611+-0.0820            5.1392+-0.0772        
   int-or-other-mod-then-get-by-val                   4.9919+-0.0648     ?      5.0179+-0.0488        ?
   int-or-other-mul-then-get-by-val                   4.8843+-0.0419     ?      4.9385+-0.0672        ? might be 1.0111x slower
   int-or-other-neg-then-get-by-val                   6.1907+-0.1183            6.0319+-0.1374          might be 1.0263x faster
   int-or-other-neg-zero-then-get-by-val             26.7320+-0.1232           26.6183+-0.6308        
   int-or-other-sub-then-get-by-val                   5.8051+-0.2946            5.7825+-0.0978        
   int-or-other-sub                                   4.9672+-0.0549     ?      4.9925+-0.1702        ?
   int-overflow-local                                 5.6273+-0.1328     ?      5.6918+-0.0938        ? might be 1.0115x slower
   int52-spill                                        9.5370+-0.1818     ?      9.5427+-0.2453        ?
   integer-divide                                    14.5269+-0.2667           14.4574+-0.5346        
   integer-modulo                                     2.6409+-0.0899     ?      2.7095+-0.1359        ? might be 1.0260x slower
   large-int-captured                                 9.0463+-0.4690            8.8754+-0.2207          might be 1.0193x faster
   large-int-neg                                     20.8408+-0.7343           20.6835+-0.3558        
   large-int                                         18.7789+-0.2895           18.3922+-0.2979          might be 1.0210x faster
   logical-not                                        6.1301+-0.2049     ?      6.4140+-0.3102        ? might be 1.0463x slower
   lots-of-fields                                    13.8925+-0.3386           13.8195+-0.6452        
   make-indexed-storage                               4.0585+-0.3986            3.9557+-0.1810          might be 1.0260x faster
   make-rope-cse                                      5.6769+-0.3190     ?      5.7313+-0.1443        ?
   marsaglia-larger-ints                             52.7910+-1.4239           52.7769+-1.2627        
   marsaglia-osr-entry                               28.2747+-0.7108           27.8625+-0.9393          might be 1.0148x faster
   max-boolean                                        3.4178+-0.6286            3.1863+-0.1485          might be 1.0727x faster
   method-on-number                                  23.1014+-0.4372           22.9315+-0.4511        
   min-boolean                                        3.1112+-0.1258     ?      3.2175+-0.1563        ? might be 1.0342x slower
   minus-boolean-double                               4.1011+-0.0744            4.0299+-0.0434          might be 1.0177x faster
   minus-boolean                                      3.2479+-0.3468            3.1413+-0.1042          might be 1.0339x faster
   misc-strict-eq                                    54.5507+-0.5462           54.3152+-0.9860        
   mod-boolean-double                                11.6792+-0.1569     ?     11.7282+-0.2662        ?
   mod-boolean                                        8.8770+-0.1744     ?      8.9669+-0.4268        ? might be 1.0101x slower
   mul-boolean-double                                 4.7873+-0.1640            4.7634+-0.1688        
   mul-boolean                                        3.3674+-0.1172            3.3401+-0.1028        
   neg-boolean                                        4.2021+-0.1067            4.1771+-0.0611        
   negative-zero-divide                               0.4540+-0.0985     ?      0.4552+-0.0838        ?
   negative-zero-modulo                               0.3867+-0.0302     ?      0.4001+-0.0333        ? might be 1.0346x slower
   negative-zero-negate                               0.4235+-0.0991            0.3904+-0.0926          might be 1.0846x faster
   nested-function-parsing                           33.5504+-0.3686           33.4075+-0.1590        
   new-array-buffer-dead                              3.6609+-0.1365     ?      3.6843+-0.2111        ?
   new-array-buffer-push                              9.2642+-0.1181     ?      9.3521+-0.1441        ?
   new-array-dead                                    15.2005+-0.6041     ?     15.2479+-1.1319        ?
   new-array-push                                     6.4792+-0.1856            6.3951+-0.1784          might be 1.0132x faster
   number-test                                        4.0525+-0.0737            3.9981+-0.0871          might be 1.0136x faster
   object-closure-call                                8.0940+-0.3902            7.9763+-0.2346          might be 1.0148x faster
   object-test                                        4.1730+-0.0990     ?      4.2365+-0.0468        ? might be 1.0152x slower
   plus-boolean-arith                                 3.2040+-0.0993     ?      3.2292+-0.0966        ?
   plus-boolean-double                                4.0802+-0.1158     ?      4.1053+-0.1690        ?
   plus-boolean                                       3.0788+-0.0575     ?      3.0858+-0.1381        ?
   poly-chain-access-different-prototypes-simple   
                                                      3.7367+-0.0390            3.7330+-0.0596        
   poly-chain-access-different-prototypes             3.1423+-0.1856     ?      3.1467+-0.1499        ?
   poly-chain-access-simpler                          3.7350+-0.1143     ?      3.7779+-0.1255        ? might be 1.0115x slower
   poly-chain-access                                  2.9308+-0.4260     ?      3.1788+-0.8686        ? might be 1.0846x slower
   poly-stricteq                                     67.8632+-0.8192           67.4833+-0.1782        
   polymorphic-array-call                             2.3395+-0.1838            2.1553+-0.2588          might be 1.0855x faster
   polymorphic-get-by-id                              4.0545+-0.1345            4.0300+-0.1220        
   polymorphic-put-by-id                             64.9861+-33.4241    ?     79.4718+-33.3256       ? might be 1.2229x slower
   polymorphic-structure                             22.1936+-1.7747           22.1533+-1.7899        
   polyvariant-monomorphic-get-by-id                 11.3966+-0.1459     ?     11.4235+-0.5467        ?
   proto-getter-access                               12.8620+-0.3882           12.7621+-0.2775        
   put-by-id-replace-and-transition                  10.9548+-0.5440     ?     11.0190+-0.4469        ?
   put-by-id-slightly-polymorphic                     3.4095+-0.1152     ?      3.4102+-0.1639        ?
   put-by-id                                         17.7377+-0.2172     ?     18.0115+-0.3618        ? might be 1.0154x slower
   put-by-val-direct                                  0.7931+-0.2252            0.7202+-0.1362          might be 1.1012x faster
   put-by-val-large-index-blank-indexing-type   
                                                      8.8326+-0.1489     ?      9.0140+-0.0589        ? might be 1.0205x slower
   put-by-val-machine-int                             3.0628+-0.2438     ?      3.0645+-0.2507        ?
   rare-osr-exit-on-local                            17.8762+-0.1754     !     18.3328+-0.1496        ! definitely 1.0255x slower
   register-pressure-from-osr                        26.6710+-0.2764           26.5098+-0.3132        
   setter                                             6.4762+-0.3917            6.3505+-0.1331          might be 1.0198x faster
   simple-activation-demo                            29.4216+-0.2772     !     36.1766+-0.5220        ! definitely 1.2296x slower
   simple-getter-access                              18.1370+-0.3527     ?     18.3854+-0.5047        ? might be 1.0137x slower
   simple-poly-call-nested                           21.4819+-0.2659     ?     21.5319+-0.2515        ?
   simple-poly-call                                   1.4722+-0.1029     ?      1.5213+-0.1434        ? might be 1.0333x slower
   sin-boolean                                       24.1538+-3.3539     ?     26.0154+-1.2038        ? might be 1.0771x slower
   slow-array-profile-convergence                     3.7523+-0.2891            3.6850+-0.2979          might be 1.0183x faster
   slow-convergence                                   4.5027+-0.4171            4.4257+-0.2911          might be 1.0174x faster
   sparse-conditional                                 1.4066+-0.0874     ?      1.4129+-0.0637        ?
   splice-to-remove                                  20.6062+-0.7010     ?     20.8152+-0.3831        ? might be 1.0101x slower
   string-char-code-at                               19.9677+-0.2114           19.8031+-0.3635        
   string-concat-object                               2.6831+-0.3979     ?      2.7549+-0.2265        ? might be 1.0268x slower
   string-concat-pair-object                          2.6206+-0.2508            2.5940+-0.3127          might be 1.0103x faster
   string-concat-pair-simple                         15.2766+-0.4133     ?     15.4123+-0.2538        ?
   string-concat-simple                              15.8495+-0.8062           15.7387+-0.4264        
   string-cons-repeat                                10.3113+-0.3260     ?     10.4130+-0.3831        ?
   string-cons-tower                                  9.5518+-0.4667            9.4879+-0.6375        
   string-equality                                   22.0485+-0.6696     ?     22.1232+-0.2392        ?
   string-get-by-val-big-char                        11.1558+-0.4746           11.1460+-0.2121        
   string-get-by-val-out-of-bounds-insane             5.0622+-0.1606     ?      5.1835+-0.7162        ? might be 1.0240x slower
   string-get-by-val-out-of-bounds                    6.0705+-0.1435            6.0602+-0.0861        
   string-get-by-val                                  4.6732+-0.1048            4.6657+-0.1262        
   string-hash                                        2.7368+-0.1921     ?      2.8369+-0.6210        ? might be 1.0366x slower
   string-long-ident-equality                        18.1400+-0.3845           18.1063+-0.1279        
   string-repeat-arith                               40.0750+-0.3643     ?     40.7059+-0.5917        ? might be 1.0157x slower
   string-sub                                        77.2094+-1.1414     ?     80.2283+-1.9680        ? might be 1.0391x slower
   string-test                                        3.9481+-0.0298     !      4.0569+-0.0532        ! definitely 1.0276x slower
   string-var-equality                               43.8590+-0.3445           43.5211+-0.5472        
   structure-hoist-over-transitions                   3.2635+-0.2003     ?      3.2872+-0.2394        ?
   substring-concat-weird                            54.6429+-2.6798           53.5683+-1.0351          might be 1.0201x faster
   substring-concat                                  56.4485+-0.5954           55.3657+-0.7605          might be 1.0196x faster
   substring                                         64.2574+-2.2763           62.8377+-2.1780          might be 1.0226x faster
   switch-char-constant                               3.1913+-0.0772            3.1463+-0.0755          might be 1.0143x faster
   switch-char                                        8.3558+-0.0956     ^      8.0818+-0.1066        ^ definitely 1.0339x faster
   switch-constant                                    9.6635+-0.2579     ?      9.8797+-0.3871        ? might be 1.0224x slower
   switch-string-basic-big-var                       21.7982+-0.6233           20.5110+-1.4992          might be 1.0628x faster
   switch-string-basic-big                           22.9238+-2.8693     ?     23.3780+-1.6152        ? might be 1.0198x slower
   switch-string-basic-var                           27.3795+-2.0094           25.8011+-0.8527          might be 1.0612x faster
   switch-string-basic                               26.7157+-2.3153           26.3767+-3.2824          might be 1.0129x faster
   switch-string-big-length-tower-var                25.2234+-0.4440     ?     25.4326+-0.6334        ?
   switch-string-length-tower-var                    19.7588+-0.1111     ?     19.7742+-0.2566        ?
   switch-string-length-tower                        14.8682+-0.5266           14.7795+-0.4844        
   switch-string-short                               15.0306+-0.8837           14.6819+-0.2755          might be 1.0237x faster
   switch                                            13.6552+-0.1055           13.4808+-0.1842          might be 1.0129x faster
   tear-off-arguments-simple                          2.2212+-0.2047            2.2021+-0.2013        
   tear-off-arguments                                 3.3960+-0.1689     ?      3.4814+-0.4835        ? might be 1.0251x slower
   temporal-structure                                17.7609+-1.4133           17.1624+-0.3671          might be 1.0349x faster
   to-int32-boolean                                  21.0178+-0.2178           20.7344+-0.1212          might be 1.0137x faster
   undefined-test                                     4.1890+-0.2233            4.1232+-0.1419          might be 1.0159x faster
   unprofiled-licm                                   26.9737+-0.7757     ?     27.2398+-0.6682        ?
   weird-inlining-const-prop                          2.4214+-0.0492            2.3540+-0.2081          might be 1.0286x faster

   <arithmetic>                                      18.9634+-0.1087     ?     18.9751+-0.1562        ? might be 1.0006x slower
   <geometric> *                                      9.7248+-0.0489     ?      9.7295+-0.0334        ? might be 1.0005x slower
   <harmonic>                                         4.9862+-0.1555            4.9521+-0.0845          might be 1.0069x faster

                                                          trunk                      new                                        
AsmBench:
   FloatMM.c                                        954.9219+-2.6045          952.6478+-3.2549        
   Quicksort.c                                      570.5150+-4.2223          567.0496+-10.1042       
   Towers.c                                         412.9584+-6.0426          407.2017+-3.1329          might be 1.0141x faster
   bigfib.cpp                                       676.8460+-3.3216          675.2370+-6.6636        
   cray.c                                           682.7697+-12.0984         675.5878+-6.1158          might be 1.0106x faster
   dry.c                                            652.2833+-12.8077    ?    657.1885+-8.4637        ?
   gcc-loops.cpp                                   6260.9487+-5.3451         6255.6738+-15.4319       
   n-body.c                                        1665.5918+-5.6235         1663.8870+-3.8437        
   stepanov_container.cpp                          4917.6925+-47.4505    ?   4928.5721+-37.2530       ?

   <arithmetic>                                    1866.0586+-7.5345         1864.7828+-4.2620          might be 1.0007x faster
   <geometric> *                                   1148.5213+-5.0519         1145.0027+-0.7815          might be 1.0031x faster
   <harmonic>                                       844.2303+-4.0583          839.8728+-1.6643          might be 1.0052x faster

                                                          trunk                      new                                        
CompressionBench:
   huffman                                          672.8792+-29.6578         665.1431+-4.0142          might be 1.0116x faster
   arithmetic-simple                                583.9593+-2.9476     ?    587.2658+-1.0082        ?
   arithmetic-precise                               434.6574+-5.5918     ?    439.9083+-6.5845        ? might be 1.0121x slower
   arithmetic-complex-precise                       432.2463+-1.8862     ?    435.0661+-5.9896        ?
   arithmetic-precise-order-0                       623.7480+-11.2307         623.6305+-10.4591       
   arithmetic-precise-order-1                       477.5748+-4.6420     ?    481.9074+-9.9008        ?
   arithmetic-precise-order-2                       537.4606+-6.1880          537.4379+-9.6046        
   arithmetic-simple-order-1                        594.4314+-2.1478     ?    597.3037+-3.5914        ?
   arithmetic-simple-order-2                        669.8738+-3.9069     ?    670.3810+-9.5131        ?
   lz-string                                        437.1680+-7.6451     ?    438.4885+-10.8510       ?

   <arithmetic>                                     546.3999+-3.9983     ?    547.6532+-0.9452        ? might be 1.0023x slower
   <geometric> *                                    538.6627+-3.3985     ?    540.2833+-1.3053        ? might be 1.0030x slower
   <harmonic>                                       530.9447+-2.9006     ?    532.9070+-1.6773        ? might be 1.0037x slower

                                                          trunk                      new                                        
All benchmarks:
   <arithmetic>                                     140.1393+-0.5699          140.0063+-0.5229          might be 1.0010x faster
   <geometric>                                       17.0747+-0.0722     ?     17.0816+-0.0437        ? might be 1.0004x slower
   <harmonic>                                         4.3588+-0.0904            4.3383+-0.0536          might be 1.0047x faster

                                                          trunk                      new                                        
Geomean of preferred means:
   <scaled-result>                                   88.6941+-0.1949           88.5361+-0.2095          might be 1.0018x faster
Comment 14 Oliver Hunt 2014-09-26 13:17:14 PDT
Created attachment 238728 [details]
WIP - passes jsc tests, progresses jsc only benchmarks, etc

I suspect this still hoses the inspector to some extent, but progress!
Comment 15 Oliver Hunt 2014-09-26 13:24:27 PDT
Hmmm, i think i screwed up benchmarks, so i suspect they're a lie. sigh.
Comment 16 Oliver Hunt 2014-09-26 13:47:47 PDT
Actual numbers:
3036/3036                                                                                 
Generating benchmark report at /Volumes/Data/git/WebKit/trunk_new_SunSpiderLongSpiderV8SpiderOctaneKrakenJSRegressAsmBenchCompressionBench_Eggplant_20140926_1344_report.txt
And raw data at /Volumes/Data/git/WebKit/trunk_new_SunSpiderLongSpiderV8SpiderOctaneKrakenJSRegressAsmBenchCompressionBench_Eggplant_20140926_1344.json

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

VMs tested:
"trunk" at /Volumes/Data/git/WebKit/OpenSourceTrunk/WebKitBuild/Release/jsc
"new" at /Volumes/Data/git/WebKit/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.

                                                          trunk                      new                                        
SunSpider:
   3d-cube                                            6.7443+-0.1294            6.6111+-0.0979          might be 1.0202x faster
   3d-morph                                           8.1974+-0.2451            8.1368+-0.2034        
   3d-raytrace                                        8.6035+-0.6073            8.3565+-0.2501          might be 1.0296x faster
   access-binary-trees                                2.5215+-0.1807            2.4868+-0.1287          might be 1.0139x faster
   access-fannkuch                                    7.9585+-0.0833     ?      8.2219+-0.3215        ? might be 1.0331x slower
   access-nbody                                       3.9390+-0.0916     ?      4.0127+-0.1610        ? might be 1.0187x slower
   access-nsieve                                      5.0423+-0.1755     ?      5.3387+-0.1850        ? might be 1.0588x slower
   bitops-3bit-bits-in-byte                           1.7369+-0.0681            1.7108+-0.0779          might be 1.0152x faster
   bitops-bits-in-byte                                5.5807+-0.1797     ?      5.6055+-0.1145        ?
   bitops-bitwise-and                                 2.7057+-0.2966     ?      2.7642+-0.0518        ? might be 1.0216x slower
   bitops-nsieve-bits                                 5.1221+-0.1101     ?      5.1998+-0.3648        ? might be 1.0152x slower
   controlflow-recursive                              2.5780+-0.1130     ?      2.7060+-0.2898        ? might be 1.0496x slower
   crypto-aes                                         5.3763+-0.2993     ?      5.4786+-0.4077        ? might be 1.0190x slower
   crypto-md5                                         3.2275+-0.2105            3.1948+-0.1299          might be 1.0103x faster
   crypto-sha1                                        3.1719+-0.0610     ?      3.2495+-0.2915        ? might be 1.0245x slower
   date-format-tofte                                 11.7034+-0.2435     !     12.4322+-0.4612        ! definitely 1.0623x slower
   date-format-xparb                                  6.7194+-0.2569     ?      6.7233+-0.4601        ?
   math-cordic                                        4.0045+-0.1178     ?      4.0076+-0.0875        ?
   math-partial-sums                                  8.8754+-0.4168     ?      8.8982+-0.2683        ?
   math-spectral-norm                                 2.7220+-0.1536     ?      2.7385+-0.1109        ?
   regexp-dna                                         9.9587+-0.3243     ?     10.3217+-1.1160        ? might be 1.0364x slower
   string-base64                                      5.5658+-0.2440     ?      5.5855+-0.3147        ?
   string-fasta                                       8.7911+-0.3253     ?      8.8351+-0.1678        ?
   string-tagcloud                                   13.7953+-0.6171           13.5016+-0.3716          might be 1.0218x faster
   string-unpack-code                                28.3790+-0.4929     ?     28.7291+-0.4518        ? might be 1.0123x slower
   string-validate-input                              6.6625+-0.2774            6.6150+-0.3190        

   <arithmetic> *                                     6.9109+-0.0209     ?      6.9793+-0.1352        ? might be 1.0099x slower
   <geometric>                                        5.6433+-0.0290     ?      5.6961+-0.1139        ? might be 1.0094x slower
   <harmonic>                                         4.7276+-0.0384     ?      4.7676+-0.0988        ? might be 1.0085x slower

                                                          trunk                      new                                        
LongSpider:
   3d-cube                                         1113.7415+-9.7698         1109.5758+-7.6159        
   3d-morph                                        1867.0195+-2.7925         1866.0338+-2.1326        
   3d-raytrace                                     1106.8409+-15.2043    ?   1115.4459+-32.4520       ?
   access-binary-trees                             1414.0502+-10.7701    ?   1419.0424+-24.4713       ?
   access-fannkuch                                  441.0638+-19.9062    ?    454.7960+-2.6420        ? might be 1.0311x slower
   access-nbody                                    1043.0300+-4.0359     ?   1043.2612+-2.7018        ?
   access-nsieve                                   1400.9887+-4.6072     ?   1403.0087+-3.7063        ?
   bitops-3bit-bits-in-byte                          50.1689+-1.0781           50.0762+-0.5952        
   bitops-bits-in-byte                              326.5693+-4.4745          325.7364+-5.0850        
   bitops-nsieve-bits                              1035.7405+-2.3900     ^    988.5452+-2.4266        ^ definitely 1.0477x faster
   controlflow-recursive                            714.5597+-4.2516     ?    715.5975+-7.2799        ?
   crypto-aes                                       939.2919+-9.3686     ?    941.5253+-9.0607        ?
   crypto-md5                                       811.6188+-5.9284     ?    818.5581+-9.7848        ?
   crypto-sha1                                      985.8463+-22.2390    ?    995.0198+-5.5647        ?
   date-format-tofte                               1001.6179+-9.2395     !   1109.9208+-30.1300       ! definitely 1.1081x slower
   date-format-xparb                                963.4570+-12.7345    ?    976.1456+-8.8584        ? might be 1.0132x slower
   math-cordic                                      670.0289+-1.8824     ?    672.1494+-2.2344        ?
   math-partial-sums                               1040.2380+-2.6450         1039.3071+-5.9638        
   math-spectral-norm                              1078.2944+-7.1063         1075.9610+-2.0130        
   string-base64                                    491.7759+-2.9266          490.7382+-4.9238        
   string-fasta                                     587.3597+-6.3628          584.8358+-7.5132        
   string-tagcloud                                  313.3773+-2.9903          311.1636+-1.4138        

   <arithmetic>                                     881.6672+-2.4378     !    886.6565+-0.9684        ! definitely 1.0057x slower
   <geometric> *                                    738.0870+-3.2967     ?    741.8655+-1.1586        ? might be 1.0051x slower
   <harmonic>                                       458.3116+-5.2330     ?    459.1627+-2.6326        ? might be 1.0019x slower

                                                          trunk                      new                                        
V8Spider:
   crypto                                            80.2921+-9.9146           70.8467+-0.9298          might be 1.1333x faster
   deltablue                                        112.5527+-1.5564          112.1467+-0.8717        
   earley-boyer                                      64.2410+-3.4059           61.9985+-0.5378          might be 1.0362x faster
   raytrace                                          41.3625+-1.4983     ?     42.5961+-2.0669        ? might be 1.0298x slower
   regexp                                            86.4158+-1.2322     ?     87.1363+-0.7558        ?
   richards                                         125.0211+-1.6206          121.1271+-3.5634          might be 1.0321x faster
   splay                                             43.2493+-1.2176     ?     44.5338+-2.5463        ? might be 1.0297x slower

   <arithmetic>                                      79.0192+-1.6113           77.1979+-0.6576          might be 1.0236x faster
   <geometric> *                                     73.1339+-1.6045           71.8179+-0.9716          might be 1.0183x faster
   <harmonic>                                        67.4033+-1.3650           66.7602+-1.3704          might be 1.0096x faster

                                                          trunk                      new                                        
Octane:
   encrypt                                           0.33006+-0.00116          0.32790+-0.00333       
   decrypt                                           5.94068+-0.06110          5.93788+-0.06397       
   deltablue                                x2       0.28468+-0.00653          0.28306+-0.00475       
   earley                                            1.04182+-0.01653          1.03210+-0.02206       
   boyer                                             8.59990+-0.18730    ?     8.66593+-0.08979       ?
   navier-stokes                            x2       6.40207+-0.01695          6.39632+-0.03441       
   raytrace                                 x2       2.23051+-0.05907    ?     2.23461+-0.05916       ?
   richards                                 x2       0.17445+-0.00354    ?     0.17707+-0.00811       ? might be 1.0150x slower
   splay                                    x2       0.54877+-0.00996    ?     0.55403+-0.00232       ?
   regexp                                   x2      47.90684+-0.52211    ?    48.50630+-0.70661       ? might be 1.0125x slower
   pdfjs                                    x2      73.72484+-0.44070         73.44644+-0.26363       
   mandreel                                 x2      74.33462+-1.01277         73.86322+-0.77229       
   gbemu                                    x2      61.74007+-1.49945    !    65.62931+-1.61277       ! definitely 1.0630x slower
   closure                                           0.76488+-0.00869          0.75872+-0.00652       
   jquery                                            9.36705+-0.10355    !     9.64641+-0.16241       ! definitely 1.0298x slower
   box2d                                    x2      20.37187+-0.36504         20.32874+-0.21676       
   zlib                                     x2     674.93504+-5.27127        655.15851+-78.30317        might be 1.0302x faster
   typescript                               x2    1117.33649+-18.24108   ^  1084.47083+-14.02619      ^ definitely 1.0303x faster

   <arithmetic>                                    139.53416+-0.94907        136.28219+-4.35716         might be 1.0239x faster
   <geometric> *                                    10.05561+-0.05474    ?    10.07266+-0.10931       ? might be 1.0017x slower
   <harmonic>                                        1.02510+-0.00774    ?     1.02962+-0.01819       ? might be 1.0044x slower

                                                          trunk                      new                                        
Kraken:
   ai-astar                                          468.807+-16.236           467.590+-13.003        
   audio-beat-detection                              152.300+-4.454            149.006+-3.258           might be 1.0221x faster
   audio-dft                                         210.682+-2.292      ?     210.986+-4.889         ?
   audio-fft                                         108.023+-0.866            107.561+-0.716         
   audio-oscillator                                  313.635+-0.864            312.218+-2.199         
   imaging-darkroom                                  243.414+-0.569            243.286+-0.704         
   imaging-desaturate                                 94.767+-1.023      ?      94.965+-0.832         ?
   imaging-gaussian-blur                             157.467+-6.050            155.642+-1.871           might be 1.0117x faster
   json-parse-financial                               66.330+-2.550      ?      67.199+-0.808         ? might be 1.0131x slower
   json-stringify-tinderbox                           92.033+-8.395             88.973+-2.024           might be 1.0344x faster
   stanford-crypto-aes                                86.912+-5.236             84.685+-0.869           might be 1.0263x faster
   stanford-crypto-ccm                                80.071+-12.848     ?      86.040+-3.715         ? might be 1.0746x slower
   stanford-crypto-pbkdf2                            233.448+-1.763            233.192+-1.700         
   stanford-crypto-sha256-iterative                   72.031+-1.243      ?      72.266+-1.185         ?

   <arithmetic> *                                    169.994+-1.159            169.543+-0.680           might be 1.0027x faster
   <geometric>                                       141.687+-1.754            141.596+-0.538           might be 1.0006x faster
   <harmonic>                                        121.583+-2.365      ?     121.903+-0.508         ? might be 1.0026x slower

                                                          trunk                      new                                        
JSRegress:
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     97.3572+-3.4359           95.8818+-1.0624          might be 1.0154x faster
   ArrayBuffer-DataView-alloc-long-lived             25.9559+-0.8006     ?     26.0463+-0.6025        ?
   ArrayBuffer-Int32Array-byteOffset                  4.5400+-0.1272            4.4485+-0.1261          might be 1.0206x faster
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                    100.7927+-0.8229           99.6646+-0.5733          might be 1.0113x faster
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     42.3745+-1.7445           42.2577+-1.6292        
   ArrayBuffer-Int8Array-alloc-long-lived            24.8950+-0.9191     ?     24.9928+-0.5238        ?
   ArrayBuffer-Int8Array-alloc                       22.3423+-0.3737     !     25.0068+-2.0731        ! definitely 1.1193x slower
   DataView-custom-properties                       102.4981+-1.1684          102.4083+-1.4638        
   Float32Array-matrix-mult                           6.0122+-0.4811            5.7880+-0.0957          might be 1.0387x faster
   Float32Array-to-Float64Array-set                  76.9008+-1.6195           75.6057+-0.6338          might be 1.0171x faster
   Float64Array-alloc-long-lived                     86.6112+-0.8535     ?     86.9607+-1.4570        ?
   Float64Array-to-Int16Array-set                    92.4695+-0.9213     ?     93.1053+-0.7701        ?
   HashMap-put-get-iterate-keys                      35.2932+-0.9851           34.7232+-0.5224          might be 1.0164x faster
   HashMap-put-get-iterate                           34.8567+-1.2014           34.6005+-0.9756        
   HashMap-string-put-get-iterate                    39.3088+-0.9379     ?     39.3920+-1.6893        ?
   Int16Array-alloc-long-lived                       61.3763+-1.2997           61.3468+-1.0823        
   Int16Array-bubble-sort-with-byteLength            39.3535+-0.8651     ?     40.0010+-0.6835        ? might be 1.0165x slower
   Int16Array-bubble-sort                            38.8199+-1.4020           38.3281+-0.0893          might be 1.0128x faster
   Int16Array-load-int-mul                            1.8150+-0.0767            1.7565+-0.0029          might be 1.0333x faster
   Int16Array-to-Int32Array-set                      77.9678+-4.5355           73.1669+-2.0373          might be 1.0656x faster
   Int32Array-Int8Array-view-alloc                   12.0813+-0.3311           12.0428+-0.1900        
   Int32Array-alloc-large                            36.5181+-0.9699           36.3277+-2.0073        
   Int32Array-alloc-long-lived                       68.7080+-0.8471           68.4210+-0.4964        
   Int32Array-alloc                                   4.0140+-0.1558            3.9153+-0.0716          might be 1.0252x faster
   Int8Array-alloc-long-lived                        55.1988+-0.1708           55.1520+-0.2853        
   Int8Array-load-with-byteLength                     4.6535+-0.1590     ?      4.7478+-0.0435        ? might be 1.0203x slower
   Int8Array-load                                     4.7151+-0.0821            4.6475+-0.1486          might be 1.0146x faster
   abs-boolean                                        3.6160+-0.1836     ?      3.8028+-0.5335        ? might be 1.0516x slower
   adapt-to-double-divide                            17.9895+-0.4338     ?     18.4615+-0.5426        ? might be 1.0262x slower
   aliased-arguments-getbyval                         1.0355+-0.1234            1.0140+-0.0393          might be 1.0211x faster
   allocate-big-object                                3.2209+-0.4179     ?      3.2352+-0.6196        ?
   arity-mismatch-inlining                            1.0099+-0.1330     ?      1.0356+-0.0625        ? might be 1.0254x slower
   array-access-polymorphic-structure                10.3007+-4.1776            8.9683+-0.3016          might be 1.1486x faster
   array-nonarray-polymorhpic-access                 51.1737+-0.1504     ?     51.2394+-1.1952        ?
   array-prototype-every                            102.2097+-3.9338          101.0085+-2.3434          might be 1.0119x faster
   array-prototype-forEach                          101.3698+-3.2733           99.6078+-1.5957          might be 1.0177x faster
   array-prototype-map                              133.2789+-34.1160         123.4522+-1.3388          might be 1.0796x faster
   array-prototype-some                              99.8805+-1.8827     ?    100.3207+-2.7715        ?
   array-splice-contiguous                           58.4470+-1.6021           58.0992+-2.4043        
   array-with-double-add                              5.9401+-0.4552            5.8544+-0.3303          might be 1.0146x faster
   array-with-double-increment                        5.2840+-0.1719     ^      4.0134+-0.1031        ^ definitely 1.3166x faster
   array-with-double-mul-add                          7.2445+-0.1023     ^      6.7217+-0.1284        ^ definitely 1.0778x faster
   array-with-double-sum                              5.4913+-0.0407     ^      4.2823+-0.0505        ^ definitely 1.2823x faster
   array-with-int32-add-sub                          10.0712+-0.4625     ?     10.0951+-0.1611        ?
   array-with-int32-or-double-sum                     5.5071+-0.1888     ^      4.3101+-0.0911        ^ definitely 1.2777x faster
   asmjs_bool_bug                                     8.8948+-0.4059            8.7845+-0.1602          might be 1.0126x faster
   assign-custom-setter-polymorphic                   4.1990+-0.1401     ?      4.2360+-0.1328        ?
   assign-custom-setter                               5.7325+-0.1395     ?      5.8755+-0.3219        ? might be 1.0249x slower
   basic-set                                         13.6956+-0.5616           13.5609+-0.8640        
   big-int-mul                                        6.3853+-0.2110     ^      5.8409+-0.0467        ^ definitely 1.0932x faster
   boolean-test                                       4.0449+-0.1181     ?      4.1285+-0.1637        ? might be 1.0207x slower
   branch-fold                                        4.4426+-0.0982     ?      4.5140+-0.1048        ? might be 1.0161x slower
   by-val-generic                                    10.7855+-0.4182           10.7130+-0.4000        
   call-spread-apply                                 17.9584+-0.5803           17.3420+-0.4535          might be 1.0355x faster
   call-spread-call                                   7.7302+-0.1244            7.4745+-0.1442          might be 1.0342x faster
   captured-assignments                               0.5753+-0.1145     ?      0.6055+-0.1235        ? might be 1.0524x slower
   cast-int-to-double                                 8.0884+-0.2722     ?      8.0911+-0.2574        ?
   cell-argument                                      9.9874+-0.7593     ?     10.1677+-0.5442        ? might be 1.0181x slower
   cfg-simplify                                       3.5567+-0.1136            3.4822+-0.1551          might be 1.0214x faster
   chain-getter-access                               12.7144+-0.2858     ?     12.8967+-0.4228        ? might be 1.0143x slower
   cmpeq-obj-to-obj-other                            12.0253+-0.2430           11.7778+-0.4023          might be 1.0210x faster
   constant-test                                      7.3985+-0.3109     ?      7.6592+-0.3309        ? might be 1.0352x slower
   delay-tear-off-arguments-strictmode                3.2477+-0.2264     ?      3.2679+-0.0784        ?
   destructuring-arguments                            7.8487+-0.4360            7.7769+-0.1531        
   destructuring-swap                                 7.6842+-0.2032     ?      7.7325+-0.2279        ?
   direct-arguments-getbyval                          1.0828+-0.1724     ?      1.1212+-0.0695        ? might be 1.0355x slower
   div-boolean-double                                 5.5296+-0.2239     ?      5.7900+-0.7613        ? might be 1.0471x slower
   div-boolean                                        9.8400+-0.1154     ?      9.8826+-0.3421        ?
   double-get-by-val-out-of-bounds                    5.6375+-0.1685            5.5463+-0.2140          might be 1.0164x faster
   double-pollution-getbyval                          9.6550+-0.1647            9.6263+-0.2135        
   double-pollution-putbyoffset                       5.2811+-0.1239            5.2794+-0.1128        
   double-to-int32-typed-array-no-inline              2.6899+-0.2765     ?      2.7589+-0.1016        ? might be 1.0256x slower
   double-to-int32-typed-array                        2.2664+-0.1439     ?      2.3492+-0.1241        ? might be 1.0365x slower
   double-to-uint32-typed-array-no-inline             2.7425+-0.2533            2.7144+-0.1416          might be 1.0104x faster
   double-to-uint32-typed-array                       2.4970+-0.1628     ?      2.5082+-0.4685        ?
   empty-string-plus-int                              9.2317+-0.4830            9.1475+-0.3804        
   emscripten-cube2hash                              47.4935+-1.7367           47.1340+-0.6532        
   external-arguments-getbyval                        1.8715+-0.1933            1.7976+-0.1269          might be 1.0411x faster
   external-arguments-putbyval                        2.5135+-0.2392            2.5004+-0.1099        
   fixed-typed-array-storage-var-index                1.4930+-0.1519            1.4496+-0.1783          might be 1.0300x faster
   fixed-typed-array-storage                          1.0734+-0.1025            1.0547+-0.1091          might be 1.0178x faster
   fold-double-to-int                                18.5867+-0.2272     ?     18.6744+-0.3128        ?
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     23.6448+-0.8949     ?     23.7630+-2.3937        ?
   fold-get-by-id-to-multi-get-by-offset             24.2097+-4.1580           23.5735+-3.5596          might be 1.0270x faster
   fold-multi-get-by-offset-to-get-by-offset   
                                                     15.1644+-0.3032     ?     15.6575+-0.6008        ? might be 1.0325x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                     15.7700+-0.4367     ?     15.8715+-0.5219        ?
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                     16.4360+-0.4945     ?     16.6545+-0.5775        ? might be 1.0133x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                     15.6589+-0.9471           14.9768+-0.2524          might be 1.0455x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     20.6778+-1.9222           20.1003+-0.8254          might be 1.0287x faster
   fold-put-by-id-to-multi-put-by-offset             26.7046+-2.5338           25.4840+-2.1567          might be 1.0479x faster
   fold-put-structure                                14.9184+-0.2645     ?     15.0969+-0.0805        ? might be 1.0120x slower
   for-of-iterate-array-entries                       7.6389+-0.9460     ?      7.7510+-0.3536        ? might be 1.0147x slower
   for-of-iterate-array-keys                          3.7406+-0.0562            3.7153+-0.1698        
   for-of-iterate-array-values                        3.0871+-0.2406     ?      3.1315+-0.1479        ? might be 1.0144x slower
   fround                                            22.5454+-1.2545           22.3790+-1.1325        
   ftl-library-inlining-dataview                    100.1414+-3.2091           94.7607+-6.4193          might be 1.0568x faster
   ftl-library-inlining                             102.8000+-0.3419     ^    101.2690+-0.8875        ^ definitely 1.0151x faster
   function-dot-apply                                 2.1699+-0.2255            2.0370+-0.0879          might be 1.0653x faster
   function-test                                      4.6501+-0.1041            4.5907+-0.1714          might be 1.0129x faster
   function-with-eval                                83.1962+-3.4275     !    156.1515+-5.0858        ! definitely 1.8769x slower
   gcse-poly-get-less-obvious                        24.8456+-0.2946           24.8115+-0.1441        
   gcse-poly-get                                     25.2722+-1.0728           24.7210+-0.5660          might be 1.0223x faster
   gcse                                               6.4001+-0.1317     ?      6.5253+-0.3935        ? might be 1.0196x slower
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.2635+-0.0590            3.2438+-0.1475        
   get-by-id-bimorphic-check-structure-elimination   
                                                      8.4243+-0.3860            8.1263+-0.1624          might be 1.0367x faster
   get-by-id-chain-from-try-block                     7.0596+-0.0896     !     15.3472+-0.5671        ! definitely 2.1740x slower
   get-by-id-check-structure-elimination              7.4090+-0.1354     ?      7.4132+-0.0973        ?
   get-by-id-proto-or-self                           24.2101+-3.3522           22.9350+-3.2288          might be 1.0556x faster
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      3.9620+-0.2566            3.8264+-0.0900          might be 1.0354x faster
   get-by-id-self-or-proto                           24.6826+-2.4434           22.9893+-0.3495          might be 1.0737x faster
   get-by-val-out-of-bounds                           5.4680+-0.0986     ?      5.5283+-0.1254        ? might be 1.0110x slower
   get_callee_monomorphic                             5.0359+-0.2171     ?      5.2184+-1.2401        ? might be 1.0362x slower
   get_callee_polymorphic                             4.1282+-0.1065            4.0430+-0.3064          might be 1.0211x faster
   getter-no-activation                               5.6325+-0.0612            5.6305+-0.0499        
   getter-richards                                  165.6113+-14.1682    ?    170.2922+-14.9029       ? might be 1.0283x slower
   getter                                             6.5789+-0.8772            6.3615+-0.1869          might be 1.0342x faster
   global-var-const-infer-fire-from-opt               1.3208+-0.2677            1.1713+-0.1376          might be 1.1276x faster
   global-var-const-infer                             1.0441+-0.2081            1.0087+-0.2202          might be 1.0352x faster
   hoist-make-rope                                   14.5331+-2.4214     ?     14.8577+-1.0343        ? might be 1.0223x slower
   hoist-poly-check-structure-effectful-loop   
                                                      6.7030+-0.3880            6.4660+-0.0938          might be 1.0367x faster
   hoist-poly-check-structure                         4.7939+-0.1280     ?      4.8022+-0.1001        ?
   imul-double-only                                  10.0959+-0.2503            9.8100+-0.1567          might be 1.0291x faster
   imul-int-only                                     12.5502+-0.5616     ?     12.6119+-0.7319        ?
   imul-mixed                                         9.5864+-0.2909     ?      9.6010+-0.2540        ?
   in-four-cases                                     24.1744+-0.2569     !     26.6365+-0.6373        ! definitely 1.1018x slower
   in-one-case-false                                 12.9275+-0.0656     !     14.8489+-0.3833        ! definitely 1.1486x slower
   in-one-case-true                                  12.9958+-0.1157     !     15.1489+-0.4233        ! definitely 1.1657x slower
   in-two-cases                                      13.2244+-0.2285     !     15.6136+-0.4981        ! definitely 1.1807x slower
   indexed-properties-in-objects                      3.7676+-0.1120            3.6992+-0.0979          might be 1.0185x faster
   infer-closure-const-then-mov-no-inline             4.3063+-0.1981            4.2958+-0.0779        
   infer-closure-const-then-mov                      24.6008+-0.0431     ?     24.7773+-0.6320        ?
   infer-closure-const-then-put-to-scope-no-inline   
                                                     15.1365+-0.4761     ?     15.2717+-0.5449        ?
   infer-closure-const-then-put-to-scope             28.0580+-0.5604           27.9103+-0.4668        
   infer-closure-const-then-reenter-no-inline   
                                                     64.7230+-0.9657           64.5465+-0.6942        
   infer-closure-const-then-reenter                  28.3815+-1.2527           27.8060+-0.3348          might be 1.0207x faster
   infer-constant-global-property                     4.7981+-0.1804            4.5496+-0.0797          might be 1.0546x faster
   infer-constant-property                            3.1982+-0.1472            3.1768+-0.1201        
   infer-one-time-closure-ten-vars                   14.5893+-0.6905     ?     14.9627+-0.5902        ? might be 1.0256x slower
   infer-one-time-closure-two-vars                   14.3751+-0.5808           14.2285+-0.5050          might be 1.0103x faster
   infer-one-time-closure                            14.1490+-0.6365           14.1168+-0.6145        
   infer-one-time-deep-closure                       24.4178+-0.4631     ?     24.8679+-0.4782        ? might be 1.0184x slower
   inline-arguments-access                            2.0373+-0.0982            1.9427+-0.0875          might be 1.0487x faster
   inline-arguments-aliased-access                    2.2072+-0.1368     ?      2.2163+-0.0869        ?
   inline-arguments-local-escape                     16.2241+-0.3065           16.2212+-0.3667        
   inline-get-scoped-var                              5.6125+-0.1515            5.4924+-0.0922          might be 1.0219x faster
   inlined-put-by-id-transition                      13.0063+-0.3099     ?     13.1935+-0.1440        ? might be 1.0144x slower
   int-or-other-abs-then-get-by-val                   6.8629+-0.1333            6.8237+-0.1824        
   int-or-other-abs-zero-then-get-by-val             26.7563+-0.5713           26.7167+-0.2877        
   int-or-other-add-then-get-by-val                   5.7928+-0.1616     ?      5.8593+-0.0949        ? might be 1.0115x slower
   int-or-other-add                                   7.6847+-0.0706     ?      7.8597+-0.1507        ? might be 1.0228x slower
   int-or-other-div-then-get-by-val                   4.9929+-0.1380            4.9858+-0.1245        
   int-or-other-max-then-get-by-val                   6.4382+-0.3603     ?      6.5143+-0.5511        ? might be 1.0118x slower
   int-or-other-min-then-get-by-val                   5.1138+-0.1118     ?      5.4925+-0.9859        ? might be 1.0740x slower
   int-or-other-mod-then-get-by-val                   4.9650+-0.0931     ?      5.0383+-0.1910        ? might be 1.0148x slower
   int-or-other-mul-then-get-by-val                   4.9761+-0.1221            4.8384+-0.0292          might be 1.0285x faster
   int-or-other-neg-then-get-by-val                   6.1806+-0.1388            6.1122+-0.1043          might be 1.0112x faster
   int-or-other-neg-zero-then-get-by-val             26.6885+-0.2267     ?     27.0132+-0.5363        ? might be 1.0122x slower
   int-or-other-sub-then-get-by-val                   5.9343+-0.2818            5.8932+-0.3174        
   int-or-other-sub                                   5.0121+-0.0286     ?      5.0670+-0.1755        ? might be 1.0109x slower
   int-overflow-local                                 5.7015+-0.1102            5.6985+-0.1483        
   int52-spill                                        9.8583+-0.6452            9.8140+-0.2948        
   integer-divide                                    14.2887+-0.4646           14.2217+-0.4471        
   integer-modulo                                     2.6442+-0.1225            2.5942+-0.1091          might be 1.0193x faster
   large-int-captured                                 8.8469+-0.0926     ?      9.3004+-0.8677        ? might be 1.0513x slower
   large-int-neg                                     20.8823+-0.4806           20.8337+-0.5318        
   large-int                                         18.5309+-0.4782     ?     18.5586+-0.3252        ?
   logical-not                                        6.2531+-0.3600     ?      6.3120+-0.2984        ?
   lots-of-fields                                    13.8754+-0.3938           13.8248+-0.3184        
   make-indexed-storage                               3.9455+-0.1549     ?      3.9680+-0.1959        ?
   make-rope-cse                                      5.6625+-0.2197     ?      5.7275+-0.4071        ? might be 1.0115x slower
   marsaglia-larger-ints                             52.5544+-0.4431           52.3192+-0.8480        
   marsaglia-osr-entry                               28.4438+-1.4484           27.7687+-1.5182          might be 1.0243x faster
   max-boolean                                        3.2485+-0.1549            3.2081+-0.1165          might be 1.0126x faster
   method-on-number                                  23.0635+-0.6680     ?     23.6010+-1.9307        ? might be 1.0233x slower
   min-boolean                                        3.1523+-0.1953     ?      3.2213+-0.2217        ? might be 1.0219x slower
   minus-boolean-double                               4.1823+-0.0621     ?      4.2234+-0.2035        ?
   minus-boolean                                      3.1495+-0.0384            3.0975+-0.0978          might be 1.0168x faster
   misc-strict-eq                                    54.4510+-0.7330     ?     54.5323+-0.9807        ?
   mod-boolean-double                                11.7535+-0.2001           11.7350+-0.1161        
   mod-boolean                                        8.8682+-0.2032     ?      9.0213+-0.3051        ? might be 1.0173x slower
   mul-boolean-double                                 4.8328+-0.2004            4.7028+-0.0715          might be 1.0276x faster
   mul-boolean                                        3.4303+-0.2311     ?      3.4502+-0.0425        ?
   neg-boolean                                        4.2693+-0.1713            4.1771+-0.0511          might be 1.0221x faster
   negative-zero-divide                               0.4561+-0.0869            0.4214+-0.0843          might be 1.0823x faster
   negative-zero-modulo                               0.4141+-0.0936     ?      0.4722+-0.0937        ? might be 1.1405x slower
   negative-zero-negate                               0.4157+-0.0950            0.3854+-0.0749          might be 1.0785x faster
   nested-function-parsing                           34.0085+-1.7444           33.3902+-0.3928          might be 1.0185x faster
   new-array-buffer-dead                              3.5908+-0.0796            3.5720+-0.1524        
   new-array-buffer-push                              9.4267+-0.3872            9.4265+-0.4452        
   new-array-dead                                    15.1836+-1.9909           14.4039+-1.2752          might be 1.0541x faster
   new-array-push                                     6.5841+-0.1444     ?      6.6199+-0.4980        ?
   number-test                                        4.0170+-0.0477            4.0028+-0.1157        
   object-closure-call                                7.9680+-0.2486            7.8068+-0.2405          might be 1.0206x faster
   object-test                                        4.2196+-0.1224     ?      4.5021+-0.8574        ? might be 1.0669x slower
   plus-boolean-arith                                 3.2308+-0.1372            3.2275+-0.1399        
   plus-boolean-double                                4.1545+-0.1545            4.1205+-0.1326        
   plus-boolean                                       3.0845+-0.1227            3.0738+-0.0849        
   poly-chain-access-different-prototypes-simple   
                                                      3.7789+-0.0816     ?      3.8116+-0.0988        ?
   poly-chain-access-different-prototypes             3.0941+-0.1217     ?      3.1296+-0.0901        ? might be 1.0115x slower
   poly-chain-access-simpler                          3.8383+-0.1440            3.7462+-0.0660          might be 1.0246x faster
   poly-chain-access                                  2.5560+-0.4974     ?      2.9434+-0.2374        ? might be 1.1516x slower
   poly-stricteq                                     68.6254+-3.2734           68.3373+-0.8027        
   polymorphic-array-call                             2.2962+-0.2093            2.2670+-0.3131          might be 1.0129x faster
   polymorphic-get-by-id                              4.0291+-0.0664     ?      4.0690+-0.0866        ?
   polymorphic-put-by-id                             78.3923+-36.4988    ?     88.9115+-21.4666       ? might be 1.1342x slower
   polymorphic-structure                             21.6049+-1.5581     ?     22.2418+-2.3356        ? might be 1.0295x slower
   polyvariant-monomorphic-get-by-id                 11.5067+-0.4809           11.4717+-0.3223        
   proto-getter-access                               12.8191+-0.8453           12.4185+-0.4072          might be 1.0323x faster
   put-by-id-replace-and-transition                  11.1255+-0.5229           10.9728+-0.4327          might be 1.0139x faster
   put-by-id-slightly-polymorphic                     3.4243+-0.0570            3.4235+-0.0838        
   put-by-id                                         17.7522+-0.4938     ?     17.8745+-0.4250        ?
   put-by-val-direct                                  0.7703+-0.1148            0.7438+-0.1456          might be 1.0356x faster
   put-by-val-large-index-blank-indexing-type   
                                                      9.1776+-0.4790            8.9000+-0.3800          might be 1.0312x faster
   put-by-val-machine-int                             3.4036+-0.3834            3.2585+-0.1968          might be 1.0445x faster
   rare-osr-exit-on-local                            18.2220+-0.3473     ?     18.2778+-0.5874        ?
   register-pressure-from-osr                        26.5740+-0.2606     ?     26.9211+-0.5275        ? might be 1.0131x slower
   setter                                             6.3839+-0.2118            6.3508+-0.0906        
   simple-activation-demo                            29.6453+-1.0955     !     36.4714+-1.9041        ! definitely 1.2303x slower
   simple-getter-access                              18.5662+-0.5804           18.3480+-0.7108          might be 1.0119x faster
   simple-poly-call-nested                           20.0786+-2.4943     ?     21.7625+-0.3935        ? might be 1.0839x slower
   simple-poly-call                                   1.5480+-0.0384            1.4583+-0.0871          might be 1.0615x faster
   sin-boolean                                       24.9341+-2.9988     ?     26.5929+-1.4574        ? might be 1.0665x slower
   slow-array-profile-convergence                     3.8865+-0.0615            3.7200+-0.2469          might be 1.0448x faster
   slow-convergence                                   4.4453+-0.2723            4.3760+-0.3013          might be 1.0158x faster
   sparse-conditional                                 1.4138+-0.1091            1.3870+-0.1545          might be 1.0193x faster
   splice-to-remove                                  21.1300+-1.1184           20.7866+-0.3046          might be 1.0165x faster
   string-char-code-at                               19.7755+-0.3154     ?     19.8210+-0.3630        ?
   string-concat-object                               2.7063+-0.1833     ?      2.8155+-0.2392        ? might be 1.0403x slower
   string-concat-pair-object                          2.6474+-0.2552     ?      2.8273+-0.3575        ? might be 1.0679x slower
   string-concat-pair-simple                         15.5492+-0.7819           15.3300+-0.1960          might be 1.0143x faster
   string-concat-simple                              15.8642+-0.3472           15.5541+-0.4581          might be 1.0199x faster
   string-cons-repeat                                10.5333+-0.6848     ?     11.1922+-0.8229        ? might be 1.0626x slower
   string-cons-tower                                  9.6116+-0.7649            9.4909+-0.3082          might be 1.0127x faster
   string-equality                                   22.0080+-0.5545     ?     22.1172+-0.6376        ?
   string-get-by-val-big-char                        11.1697+-0.1578           11.0582+-0.4104          might be 1.0101x faster
   string-get-by-val-out-of-bounds-insane             5.0310+-0.1872     ?      5.0726+-0.1153        ?
   string-get-by-val-out-of-bounds                    6.0513+-0.1532     ?      6.0785+-0.1151        ?
   string-get-by-val                                  4.7172+-0.0257            4.6216+-0.1673          might be 1.0207x faster
   string-hash                                        2.6565+-0.1541            2.5916+-0.1149          might be 1.0251x faster
   string-long-ident-equality                        18.1648+-0.9500           17.8489+-0.2116          might be 1.0177x faster
   string-repeat-arith                               40.1400+-0.7825     ?     40.8353+-0.8753        ? might be 1.0173x slower
   string-sub                                        78.1988+-1.9952     ?     79.4350+-2.3992        ? might be 1.0158x slower
   string-test                                        4.0105+-0.0856            3.9877+-0.1513        
   string-var-equality                               43.8705+-1.1888           43.7784+-0.3694        
   structure-hoist-over-transitions                   3.4355+-0.1815            3.2816+-0.1731          might be 1.0469x faster
   substring-concat-weird                            54.5677+-0.8290           53.9385+-1.9745          might be 1.0117x faster
   substring-concat                                  57.3177+-1.3624           56.0110+-0.7174          might be 1.0233x faster
   substring                                         62.7785+-0.8431     ?     63.1728+-1.3244        ?
   switch-char-constant                               3.2224+-0.0976            3.1656+-0.0879          might be 1.0179x faster
   switch-char                                        8.4738+-0.4793            8.0456+-0.1052          might be 1.0532x faster
   switch-constant                                    9.9037+-0.3186     ?     10.0263+-0.1651        ? might be 1.0124x slower
   switch-string-basic-big-var                       21.9044+-0.9295           21.3878+-1.7176          might be 1.0242x faster
   switch-string-basic-big                           24.6849+-1.5369           24.2072+-1.6308          might be 1.0197x faster
   switch-string-basic-var                           27.0466+-1.7066           26.2705+-1.2075          might be 1.0295x faster
   switch-string-basic                               26.7123+-3.0252     ?     26.8118+-2.5794        ?
   switch-string-big-length-tower-var                25.3033+-0.5067           25.0828+-0.3593        
   switch-string-length-tower-var                    19.9385+-0.2289     ?     19.9758+-0.6070        ?
   switch-string-length-tower                        14.8730+-0.7826           14.7802+-0.1649        
   switch-string-short                               14.8860+-0.3790     ?     14.8898+-0.2645        ?
   switch                                            14.2159+-1.4498           13.4232+-0.6082          might be 1.0591x faster
   tear-off-arguments-simple                          2.2306+-0.2356            2.1982+-0.1558          might be 1.0147x faster
   tear-off-arguments                                 3.3708+-0.1013     ?      3.3998+-0.1973        ?
   temporal-structure                                17.0091+-0.4464     ?     17.4676+-0.7893        ? might be 1.0270x slower
   to-int32-boolean                                  20.6157+-0.1784     ?     20.8595+-0.4521        ? might be 1.0118x slower
   undefined-test                                     4.1368+-0.1496     ?      4.2275+-0.0861        ? might be 1.0219x slower
   unprofiled-licm                                   27.8668+-0.5731           27.8293+-0.6816        
   weird-inlining-const-prop                          2.5056+-0.1129     ?      2.5522+-0.2180        ? might be 1.0186x slower

   <arithmetic>                                      19.0653+-0.2242     ?     19.3383+-0.1028        ? might be 1.0143x slower
   <geometric> *                                      9.7677+-0.0303     ?      9.7836+-0.0497        ? might be 1.0016x slower
   <harmonic>                                         5.0122+-0.0948            4.9804+-0.0634          might be 1.0064x faster

                                                          trunk                      new                                        
AsmBench:
   FloatMM.c                                        954.9017+-2.3480          952.1868+-5.2603        
   Quicksort.c                                      568.2938+-8.9915     ?    572.2340+-2.5832        ?
   Towers.c                                         415.2766+-6.1196     ^    406.7629+-1.9386        ^ definitely 1.0209x faster
   bigfib.cpp                                       677.7020+-4.4867          675.0543+-8.6867        
   cray.c                                           678.5350+-6.9271          675.6270+-2.9799        
   dry.c                                            653.1493+-15.8654         648.3824+-14.9370       
   gcc-loops.cpp                                   6251.5350+-16.4782    ?   6274.3890+-40.5669       ?
   n-body.c                                        1665.8620+-7.7991     ?   1669.2750+-13.9663       ?
   stepanov_container.cpp                          4899.4773+-26.1879    ?   4899.9140+-24.4666       ?

   <arithmetic>                                    1862.7481+-0.7764     ?   1863.7584+-4.9954        ? might be 1.0005x slower
   <geometric> *                                   1147.6218+-2.7605         1144.2668+-2.8179          might be 1.0029x faster
   <harmonic>                                       844.2597+-3.4973          839.3316+-2.9025          might be 1.0059x faster

                                                          trunk                      new                                        
CompressionBench:
   huffman                                          663.7004+-1.1713     ?    666.3307+-5.6823        ?
   arithmetic-simple                                587.1888+-6.2651          585.6261+-5.1330        
   arithmetic-precise                               435.5510+-3.4287     ?    437.5726+-2.6610        ?
   arithmetic-complex-precise                       434.9800+-5.1542     ?    436.6570+-1.5308        ?
   arithmetic-precise-order-0                       628.7090+-3.8914          625.8972+-10.3276       
   arithmetic-precise-order-1                       483.0079+-8.0341          481.8504+-3.3641        
   arithmetic-precise-order-2                       536.2266+-9.9760     ?    537.2520+-4.8051        ?
   arithmetic-simple-order-1                        593.4520+-4.9888     ?    598.1525+-4.0405        ?
   arithmetic-simple-order-2                        675.9573+-5.6961          671.5626+-9.2565        
   lz-string                                        437.9857+-4.3175          436.8631+-3.7933        

   <arithmetic>                                     547.6759+-1.9294     ?    547.7764+-1.8341        ? might be 1.0002x slower
   <geometric> *                                    540.0953+-1.8286     ?    540.2918+-1.4833        ? might be 1.0004x slower
   <harmonic>                                       532.5181+-1.7167     ?    532.8071+-1.1726        ? might be 1.0005x slower

                                                          trunk                      new                                        
All benchmarks:
   <arithmetic>                                     140.3308+-0.3091     ?    140.5332+-0.4524        ? might be 1.0014x slower
   <geometric>                                       17.1318+-0.0535     ?     17.1622+-0.0638        ? might be 1.0018x slower
   <harmonic>                                         4.3584+-0.0423            4.3501+-0.0177          might be 1.0019x faster

                                                          trunk                      new                                        
Geomean of preferred means:
   <scaled-result>                                   88.7828+-0.3565           88.7261+-0.3550          might be 1.0006x faster

Eggplant:WebKit oliver$
Comment 17 Oliver Hunt 2014-09-27 11:55:18 PDT
Erik, still needs a pile of perf work :-/

Eggplant:WebKit oliver$ cat jsc-bench-output 
Generating benchmark report at /Volumes/Data/git/WebKit/trunk_new_SunSpiderLongSpiderV8SpiderOctaneKrakenJSBenchJSRegressAsmBenchDSPCompressionBench_Eggplant_20140926_1741_report.txt
And raw data at /Volumes/Data/git/WebKit/trunk_new_SunSpiderLongSpiderV8SpiderOctaneKrakenJSBenchJSRegressAsmBenchDSPCompressionBench_Eggplant_20140926_1741.json

Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSBench, JSRegress, AsmBench, DSP, and CompressionBench on Eggplant (MacPro5,1).

VMs tested:
"trunk" at /Volumes/Data/git/WebKit/OpenSourceTrunk/WebKitBuild/Release/DumpRenderTree
"new" at /Volumes/Data/git/WebKit/OpenSource/WebKitBuild/Release/DumpRenderTree

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.

                                                          trunk                      new                                        
SunSpider:
   3d-cube                                            8.0372+-0.3472     ?      8.0449+-0.3805        ?
   3d-morph                                           7.7404+-0.1639     ?      7.9468+-0.2465        ? might be 1.0267x slower
   3d-raytrace                                        9.1626+-0.6693            8.8452+-0.3313          might be 1.0359x faster
   access-binary-trees                                3.7754+-0.2515            3.7228+-0.3137          might be 1.0141x faster
   access-fannkuch                                    7.6959+-0.4556     ?      7.7692+-0.5620        ?
   access-nbody                                       3.7868+-0.1708     ?      3.7942+-0.2446        ?
   access-nsieve                                      4.7763+-0.2204     ?      4.8467+-0.1741        ? might be 1.0147x slower
   bitops-3bit-bits-in-byte                           1.6555+-0.0821     ?      1.6725+-0.0586        ? might be 1.0102x slower
   bitops-bits-in-byte                                5.1183+-0.0611     ?      5.1436+-0.1006        ?
   bitops-bitwise-and                                 2.5732+-0.3278     ?      2.6174+-0.0834        ? might be 1.0172x slower
   bitops-nsieve-bits                                 4.8729+-0.1409            4.7902+-0.1499          might be 1.0173x faster
   controlflow-recursive                              2.7311+-0.0334            2.7185+-0.2614        
   crypto-aes                                         6.0652+-0.2721     ?      6.1232+-0.3953        ?
   crypto-md5                                         3.2298+-0.1755     ?      3.2549+-0.2664        ?
   crypto-sha1                                        3.1595+-0.0667            3.1290+-0.0492        
   date-format-tofte                                 14.6100+-0.4754     !     15.7408+-0.3221        ! definitely 1.0774x slower
   date-format-xparb                                  8.9285+-0.3023     ?      8.9572+-0.1633        ?
   math-cordic                                        3.9310+-0.0816            3.8853+-0.0819          might be 1.0118x faster
   math-partial-sums                                  8.6602+-0.3109            8.5662+-0.0768          might be 1.0110x faster
   math-spectral-norm                                 2.6603+-0.0908     ?      2.6744+-0.2068        ?
   regexp-dna                                        10.9370+-0.0910     ?     11.0090+-0.0891        ?
   string-base64                                      7.0743+-0.4297     ?      7.0927+-0.2050        ?
   string-fasta                                       9.5829+-0.0701     ?      9.7202+-0.3252        ? might be 1.0143x slower
   string-tagcloud                                   14.2985+-0.3331           14.1087+-0.7912          might be 1.0135x faster
   string-unpack-code                                31.4045+-1.2297           31.3260+-0.4065        
   string-validate-input                              8.6802+-0.2687     ?      8.7847+-0.4849        ? might be 1.0120x slower

   <arithmetic> *                                     7.5057+-0.0876     ?      7.5494+-0.0686        ? might be 1.0058x slower
   <geometric>                                        6.0152+-0.0462     ?      6.0387+-0.0626        ? might be 1.0039x slower
   <harmonic>                                         4.9372+-0.0359     ?      4.9520+-0.0509        ? might be 1.0030x slower

                                                          trunk                      new                                        
LongSpider:
   3d-cube                                         1534.2321+-18.5629    ?   1561.3021+-44.4418       ? might be 1.0176x slower
   3d-morph                                        1864.7997+-6.3330     ?   1867.2993+-8.0657        ?
   3d-raytrace                                     1129.9680+-25.7547    ?   1130.8070+-15.5203       ?
   access-binary-trees                             1414.9788+-15.8035        1405.9241+-8.4393        
   access-fannkuch                                  437.6647+-28.0513    ?    455.7769+-1.8851        ? might be 1.0414x slower
   access-nbody                                    1049.7018+-5.4541         1049.0985+-4.4324        
   access-nsieve                                   1420.2693+-2.8981         1418.6148+-8.4866        
   bitops-3bit-bits-in-byte                          49.3855+-0.2232           49.3281+-0.5776        
   bitops-bits-in-byte                              328.4328+-4.6112     ?    329.0225+-2.0424        ?
   bitops-nsieve-bits                               991.4393+-6.8808     ?    996.0580+-9.9192        ?
   controlflow-recursive                            714.6027+-3.4570          712.8653+-3.9360        
   crypto-aes                                       949.1093+-4.8819          945.4562+-5.7948        
   crypto-md5                                       812.9430+-10.9763    ?    820.9272+-24.6550       ?
   crypto-sha1                                      995.1593+-5.1807     ?    998.4819+-9.3664        ?
   date-format-tofte                               1012.5118+-35.8962    ?   1122.4167+-76.6988       ? might be 1.1085x slower
   date-format-xparb                                955.8976+-55.9070    ?   1078.4637+-421.9985      ? might be 1.1282x slower
   math-cordic                                      669.4552+-1.9082     ?    673.9792+-10.9438       ?
   math-partial-sums                               1041.7177+-1.9212         1040.8400+-1.9198        
   math-spectral-norm                              1079.2343+-3.0176         1076.4768+-5.0963        
   string-base64                                    647.3073+-7.1353     ?    650.3260+-2.7858        ?
   string-fasta                                     581.2416+-3.6017          580.7050+-4.8051        
   string-tagcloud                                  316.4032+-2.3262     ^    311.0742+-1.8627        ^ definitely 1.0171x faster

   <arithmetic>                                     908.9298+-3.0896     ?    921.6020+-18.8837       ? might be 1.0139x slower
   <geometric> *                                    758.4200+-1.5809     ?    767.4051+-12.0253       ? might be 1.0118x slower
   <harmonic>                                       462.6101+-1.3501     ?    464.8981+-4.7145        ? might be 1.0049x slower

                                                          trunk                      new                                        
V8Spider:
   crypto                                            71.6196+-1.8298     ?     71.9566+-0.2766        ?
   deltablue                                        125.2543+-2.5679          125.1818+-4.3929        
   earley-boyer                                      65.7393+-0.3921           65.3777+-1.4256        
   raytrace                                          63.8828+-1.4523           62.9153+-1.1320          might be 1.0154x faster
   regexp                                            99.5969+-1.1641     ?     99.8597+-0.8001        ?
   richards                                         123.2543+-5.3895          123.1168+-2.3984        
   splay                                             43.7975+-1.5581     ?     44.0093+-0.5615        ?

   <arithmetic>                                      84.7350+-0.8797           84.6310+-0.5342          might be 1.0012x faster
   <geometric> *                                     79.5960+-0.5926           79.4826+-0.5717          might be 1.0014x faster
   <harmonic>                                        74.6144+-0.6265           74.5146+-0.6590          might be 1.0013x faster

                                                          trunk                      new                                        
Octane:
   encrypt                                           0.34260+-0.00121          0.34239+-0.00251       
   decrypt                                           6.05621+-0.04066          6.03907+-0.04486       
   deltablue                                x2       0.32931+-0.00336    ?     0.33064+-0.00127       ?
   earley                                            1.02987+-0.01493          1.01293+-0.01396         might be 1.0167x faster
   boyer                                             8.11134+-0.10947          8.09513+-0.14823       
   navier-stokes                            x2       6.63222+-0.01361    ?     6.63363+-0.00361       ?
   raytrace                                 x2       2.82469+-0.05687    ?     2.85692+-0.06921       ? might be 1.0114x slower
   richards                                 x2       0.18613+-0.00291    ?     0.18712+-0.00166       ?
   splay                                    x2       0.57081+-0.02817          0.57003+-0.01727       
   regexp                                   x2      47.73218+-0.48441    ?    48.15052+-0.93847       ?
   pdfjs                                    x2      75.68153+-0.33489         75.14430+-0.89478       
   mandreel                                 x2      73.74645+-0.69333         73.04819+-0.56628       
   gbemu                                    x2      59.77012+-0.33201    !    63.53819+-0.61828       ! definitely 1.0630x slower
   closure                                           0.47690+-0.00188          0.47274+-0.00297       
   jquery                                            5.27571+-0.01922    !     5.45702+-0.02858       ! definitely 1.0344x slower
   box2d                                    x2      19.04854+-0.09714    ^    18.76295+-0.12226       ^ definitely 1.0152x faster
   zlib                                     x2     620.99268+-73.62221   ?   643.03839+-14.82027      ? might be 1.0355x slower
   typescript                               x2    1092.83417+-9.05655       1071.79779+-14.95807        might be 1.0196x faster

   <arithmetic>                                    134.06634+-4.74103    ?   134.31789+-1.85155       ? might be 1.0019x slower
   <geometric> *                                     9.92180+-0.13519    ?     9.97246+-0.03273       ? might be 1.0051x slower
   <harmonic>                                        1.06997+-0.01138    ?     1.07208+-0.00432       ? might be 1.0020x slower

                                                          trunk                      new                                        
Kraken:
   ai-astar                                          470.984+-13.818           467.371+-11.980        
   audio-beat-detection                              168.616+-6.649            167.160+-3.419         
   audio-dft                                         214.113+-1.803            213.989+-1.579         
   audio-fft                                         110.449+-1.000      ?     110.791+-1.506         ?
   audio-oscillator                                  301.253+-4.435      ?     301.973+-2.783         ?
   imaging-darkroom                                  267.797+-1.410            266.101+-0.582         
   imaging-desaturate                                 96.161+-3.814             95.603+-0.585         
   imaging-gaussian-blur                             157.688+-2.395      ?     157.690+-1.153         ?
   json-parse-financial                               71.547+-0.260      ?      72.536+-0.841         ? might be 1.0138x slower
   json-stringify-tinderbox                           97.650+-7.345             93.982+-1.977           might be 1.0390x faster
   stanford-crypto-aes                               102.300+-0.670            101.765+-1.655         
   stanford-crypto-ccm                               113.288+-15.996           108.508+-21.265          might be 1.0440x faster
   stanford-crypto-pbkdf2                            221.427+-3.825      ?     222.902+-2.198         ?
   stanford-crypto-sha256-iterative                  100.465+-0.595            100.147+-1.121         

   <arithmetic> *                                    178.124+-2.189            177.180+-1.640           might be 1.0053x faster
   <geometric>                                       153.739+-2.393            152.704+-2.045           might be 1.0068x faster
   <harmonic>                                        136.009+-2.662            134.959+-2.301           might be 1.0078x faster

                                                          trunk                      new                                        
JSBench:
   amazon                                             8.0000+-0.0000     ?      8.5000+-0.9187        ? might be 1.0625x slower
   facebook                                          29.7500+-0.7956           27.7500+-1.5235          might be 1.0721x faster
   google                                            61.2500+-2.0022     !     65.0000+-1.2992        ! definitely 1.0612x slower
   twitter                                            8.5000+-0.9187            8.2500+-0.7956          might be 1.0303x faster
   yahoo                                              4.0000+-0.0000     ?      4.2500+-0.7956        ? might be 1.0625x slower

   <arithmetic> *                                    22.3000+-0.5512     ?     22.7500+-0.7057        ? might be 1.0202x slower
   <geometric>                                       13.7691+-0.3763     ?     13.9841+-0.9206        ? might be 1.0156x slower
   <harmonic>                                         9.2096+-0.2278     ?      9.4862+-0.9311        ? might be 1.0300x slower

                                                          trunk                      new                                        
JSRegress:
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                    107.8260+-1.0397     ?    109.6958+-3.5699        ? might be 1.0173x slower
   ArrayBuffer-DataView-alloc-long-lived             38.9818+-0.4502           38.9196+-0.4151        
   ArrayBuffer-Int32Array-byteOffset                  4.2441+-0.1401     ?      4.3620+-0.3451        ? might be 1.0278x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                    114.7353+-2.1406     ?    115.5947+-1.5681        ?
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     91.6796+-1.2505           91.5497+-1.3595        
   ArrayBuffer-Int8Array-alloc-long-lived            37.4330+-0.3360     ?     37.7695+-0.5955        ?
   ArrayBuffer-Int8Array-alloc                       33.7652+-0.3652     ?     35.7720+-2.6342        ? might be 1.0594x slower
   DataView-custom-properties                       113.3420+-1.7344     ?    113.7358+-2.9804        ?
   Float32Array-matrix-mult                           5.9636+-0.0213     ?      6.1615+-0.2869        ? might be 1.0332x slower
   Float32Array-to-Float64Array-set                  85.2844+-3.8737           81.8621+-2.2328          might be 1.0418x faster
   Float64Array-alloc-long-lived                    121.6812+-0.5515     ?    122.1080+-2.1621        ?
   Float64Array-to-Int16Array-set                   102.0548+-0.7316     !    103.2577+-0.0471        ! definitely 1.0118x slower
   HashMap-put-get-iterate-keys                      35.7951+-0.3225     ?     36.5162+-0.5536        ? might be 1.0201x slower
   HashMap-put-get-iterate                           35.3416+-0.7429     ?     35.5505+-0.5628        ?
   HashMap-string-put-get-iterate                    53.3870+-1.1426           52.8480+-0.2415          might be 1.0102x faster
   Int16Array-alloc-long-lived                       71.2784+-0.6918     ?     72.0386+-0.8130        ? might be 1.0107x slower
   Int16Array-bubble-sort-with-byteLength            38.7940+-0.2689     ?     39.1146+-0.7260        ?
   Int16Array-bubble-sort                            37.6426+-0.1125     ?     37.7499+-0.2162        ?
   Int16Array-load-int-mul                            1.8943+-0.0575     ?      1.9179+-0.1881        ? might be 1.0125x slower
   Int16Array-to-Int32Array-set                      86.9604+-1.4586           83.7567+-1.8315          might be 1.0383x faster
   Int32Array-Int8Array-view-alloc                   20.8069+-0.3964           20.3136+-0.1662          might be 1.0243x faster
   Int32Array-alloc-large                            37.5475+-3.6022           35.9747+-1.4096          might be 1.0437x faster
   Int32Array-alloc-long-lived                       79.8802+-0.9076     ?     80.5679+-0.7982        ?
   Int32Array-alloc                                  13.2910+-0.2665     ?     13.3802+-0.4773        ?
   Int8Array-alloc-long-lived                        78.0439+-1.7262     ?     78.3312+-0.4807        ?
   Int8Array-load-with-byteLength                     4.5592+-0.0945            4.4936+-0.0430          might be 1.0146x faster
   Int8Array-load                                     4.4902+-0.0431     ?      4.4904+-0.0169        ?
   abs-boolean                                        3.4387+-0.0328     ?      3.4850+-0.1010        ? might be 1.0135x slower
   adapt-to-double-divide                            17.2839+-0.1109     ?     17.3660+-0.3226        ?
   aliased-arguments-getbyval                         1.0859+-0.1122            1.0385+-0.0588          might be 1.0457x faster
   allocate-big-object                                7.1984+-0.1335            7.1614+-0.1674        
   arity-mismatch-inlining                            0.9457+-0.0257     ?      0.9467+-0.0665        ?
   array-access-polymorphic-structure                15.0616+-0.2178           14.9747+-0.4599        
   array-nonarray-polymorhpic-access                 47.1701+-0.2169     ?     47.4463+-0.6004        ?
   array-prototype-every                            102.4424+-1.1646     ?    102.7413+-4.9397        ?
   array-prototype-forEach                          102.7725+-3.9337          100.5615+-3.0017          might be 1.0220x faster
   array-prototype-map                              128.9551+-1.1988     ?    129.3233+-3.6629        ?
   array-prototype-some                             101.7195+-2.0909          100.4420+-1.0660          might be 1.0127x faster
   array-splice-contiguous                           57.6463+-1.2411           57.1817+-0.8797        
   array-with-double-add                              5.3903+-0.2479     ?      5.4631+-0.0911        ? might be 1.0135x slower
   array-with-double-increment                        3.9280+-0.0897            3.9013+-0.0522        
   array-with-double-mul-add                          6.4797+-0.1763     ?      6.4832+-0.0537        ?
   array-with-double-sum                              4.1081+-0.0883     ?      4.2283+-0.1722        ? might be 1.0293x slower
   array-with-int32-add-sub                           9.3719+-0.1951            9.3052+-0.1815        
   array-with-int32-or-double-sum                     4.1529+-0.0424     ?      4.2490+-0.1855        ? might be 1.0231x slower
   asmjs_bool_bug                                     8.4116+-0.0815     ?      8.4730+-0.2744        ?
   assign-custom-setter-polymorphic                   3.8448+-0.1703            3.8220+-0.1283        
   assign-custom-setter                               5.2825+-0.0285     ?      5.3269+-0.0868        ?
   basic-set                                         14.5090+-1.0087           14.0646+-0.8549          might be 1.0316x faster
   big-int-mul                                        5.6158+-0.0977            5.5303+-0.1096          might be 1.0155x faster
   boolean-test                                       3.9272+-0.1060            3.8688+-0.1836          might be 1.0151x faster
   branch-fold                                        4.4189+-0.0953            4.3800+-0.1744        
   by-val-generic                                     0.2522+-0.0180            0.2457+-0.0232          might be 1.0263x faster
   call-spread-apply                                 21.4878+-0.4376     ?     21.5387+-0.5053        ?
   call-spread-call                                   7.4061+-0.0544            7.1602+-0.2277          might be 1.0343x faster
   captured-assignments                               0.4496+-0.0609     ?      0.4675+-0.0500        ? might be 1.0399x slower
   cast-int-to-double                                 7.7425+-0.1487     ?      7.8834+-0.3430        ? might be 1.0182x slower
   cell-argument                                      9.2980+-0.0975     ?      9.5176+-0.5824        ? might be 1.0236x slower
   cfg-simplify                                       3.4140+-0.0696            3.3771+-0.1562          might be 1.0109x faster
   chain-getter-access                                0.2519+-0.0255     ?      0.2629+-0.0220        ? might be 1.0439x slower
   cmpeq-obj-to-obj-other                            11.5536+-0.5975           11.2207+-0.6274          might be 1.0297x faster
   constant-test                                      7.2007+-0.2115     ?      7.2370+-0.1546        ?
   delay-tear-off-arguments-strictmode                3.1415+-0.2349            3.0807+-0.1308          might be 1.0197x faster
   destructuring-arguments                            7.5453+-0.1156            7.3629+-0.0827          might be 1.0248x faster
   destructuring-swap                                 7.2930+-0.0454            7.2896+-0.0695        
   direct-arguments-getbyval                          0.9545+-0.1638            0.9467+-0.0552        
   div-boolean-double                                 5.3221+-0.1977            5.2277+-0.1609          might be 1.0180x faster
   div-boolean                                        9.4528+-0.1097            9.3973+-0.1365        
   double-get-by-val-out-of-bounds                    0.2382+-0.0114     ?      0.2440+-0.0193        ? might be 1.0243x slower
   double-pollution-getbyval                          9.2864+-0.0862     ?      9.3183+-0.0791        ?
   double-pollution-putbyoffset                       7.0405+-0.2275     ?      7.1900+-0.1882        ? might be 1.0212x slower
   double-to-int32-typed-array-no-inline              0.2831+-0.1136            0.2610+-0.0212          might be 1.0847x faster
   double-to-int32-typed-array                        2.3194+-0.1620            2.2440+-0.1145          might be 1.0336x faster
   double-to-uint32-typed-array-no-inline             0.2698+-0.0416            0.2607+-0.0180          might be 1.0346x faster
   double-to-uint32-typed-array                       2.5398+-0.0993            2.4213+-0.0581          might be 1.0490x faster
   empty-string-plus-int                             12.8458+-0.1899           12.7897+-0.1403        
   emscripten-cube2hash                              48.3871+-0.8749     ?     48.4771+-1.3154        ?
   external-arguments-getbyval                        2.1718+-0.1027     ?      2.2669+-0.1394        ? might be 1.0438x slower
   external-arguments-putbyval                        3.3540+-0.1568     ?      3.3604+-0.2780        ?
   fixed-typed-array-storage-var-index                1.3098+-0.0725     ?      1.3745+-0.0808        ? might be 1.0494x slower
   fixed-typed-array-storage                          1.0413+-0.1483            1.0172+-0.0610          might be 1.0238x faster
   fold-double-to-int                                17.9765+-0.2905     ?     18.0392+-0.2545        ?
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     23.8616+-3.2814     ?     24.5100+-1.7081        ? might be 1.0272x slower
   fold-get-by-id-to-multi-get-by-offset             24.0320+-2.1386           22.5966+-1.8429          might be 1.0635x faster
   fold-multi-get-by-offset-to-get-by-offset   
                                                     15.0237+-0.3711     ?     15.2158+-0.5860        ? might be 1.0128x slower
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                     15.2049+-0.0943     ?     15.4214+-0.6025        ? might be 1.0142x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                     16.0687+-0.3671           15.9650+-0.1481        
   fold-multi-put-by-offset-to-put-by-offset   
                                                     14.6974+-0.4479           14.5200+-0.4407          might be 1.0122x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     33.2870+-0.7580           32.3240+-0.4671          might be 1.0298x faster
   fold-put-by-id-to-multi-put-by-offset             28.3785+-2.0362           27.5995+-0.9077          might be 1.0282x faster
   fold-put-structure                                15.0862+-0.2838           14.9202+-0.3857          might be 1.0111x faster
   for-of-iterate-array-entries                       8.7457+-0.3009     ?      8.7534+-0.3323        ?
   for-of-iterate-array-keys                          3.4211+-0.1133     ?      3.4264+-0.2408        ?
   for-of-iterate-array-values                        3.0123+-0.2134            2.9467+-0.2960          might be 1.0222x faster
   fround                                            22.1340+-0.2651           21.9548+-0.3038        
   ftl-library-inlining-dataview                     96.7391+-1.0685     ?     98.1655+-2.9621        ? might be 1.0147x slower
   ftl-library-inlining                             102.1460+-0.4819     ^    100.7200+-0.8391        ^ definitely 1.0142x faster
   function-dot-apply                                 2.0932+-0.1134            2.0415+-0.1100          might be 1.0253x faster
   function-test                                      4.2817+-0.1811     ?      4.4261+-0.1347        ? might be 1.0337x slower
   function-with-eval                                 0.2433+-0.0163            0.2425+-0.0175        
   gcse-poly-get-less-obvious                        24.3449+-0.1206           24.2447+-0.1418        
   gcse-poly-get                                     24.4053+-0.5789     ?     24.4420+-0.6221        ?
   gcse                                               6.2275+-0.0526     ?      6.2523+-0.1111        ?
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      3.1693+-0.0628            3.0754+-0.0876          might be 1.0305x faster
   get-by-id-bimorphic-check-structure-elimination   
                                                      7.9679+-0.1279            7.9159+-0.0400        
   get-by-id-chain-from-try-block                     6.8519+-0.3171     !     15.2319+-0.2104        ! definitely 2.2230x slower
   get-by-id-check-structure-elimination              7.2867+-0.2061            7.1917+-0.1915          might be 1.0132x faster
   get-by-id-proto-or-self                           23.1183+-3.4073           22.9035+-2.3442        
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      3.7405+-0.0915            3.7238+-0.1050        
   get-by-id-self-or-proto                           23.0307+-2.2505           22.8023+-2.7902          might be 1.0100x faster
   get-by-val-out-of-bounds                           0.2483+-0.0059     ?      0.2499+-0.0206        ?
   get_callee_monomorphic                            10.4034+-0.4210     ?     10.5815+-0.3154        ? might be 1.0171x slower
   get_callee_polymorphic                             7.5233+-0.3592            7.4809+-0.1558        
   getter-no-activation                               5.5009+-0.0967            5.4575+-0.1542        
   getter-richards                                  167.0839+-15.1770         166.5098+-21.6945       
   getter                                             6.1314+-0.2460            6.0687+-0.1352          might be 1.0103x faster
   global-var-const-infer-fire-from-opt               0.2760+-0.0299            0.2595+-0.0222          might be 1.0635x faster
   global-var-const-infer                             0.2623+-0.0187            0.2469+-0.0264          might be 1.0623x faster
   hoist-make-rope                                    0.2515+-0.0358            0.2396+-0.0051          might be 1.0497x faster
   hoist-poly-check-structure-effectful-loop   
                                                      0.2680+-0.0132            0.2603+-0.0283          might be 1.0298x faster
   hoist-poly-check-structure                         0.2468+-0.0208            0.2445+-0.0229        
   imul-double-only                                   9.6898+-0.4142     ?      9.8018+-0.3955        ? might be 1.0116x slower
   imul-int-only                                     12.2463+-0.6708     ?     12.3934+-0.4797        ? might be 1.0120x slower
   imul-mixed                                         9.2509+-0.0983     ?      9.5786+-0.7560        ? might be 1.0354x slower
   in-four-cases                                     23.4115+-0.1926     ?     23.4348+-0.2503        ?
   in-one-case-false                                 12.0233+-0.2845     ?     12.1350+-0.2925        ?
   in-one-case-true                                  12.0900+-0.3148     ?     12.1337+-0.4538        ?
   in-two-cases                                      12.5684+-0.3179     ?     12.8289+-0.4486        ? might be 1.0207x slower
   indexed-properties-in-objects                      3.5568+-0.0466            3.4965+-0.0706          might be 1.0172x faster
   infer-closure-const-then-mov-no-inline             0.2515+-0.0355            0.2451+-0.0075          might be 1.0262x faster
   infer-closure-const-then-mov                      24.0643+-0.1402     ?     24.1090+-0.1533        ?
   infer-closure-const-then-put-to-scope-no-inline   
                                                      0.2592+-0.0242     ?      0.2743+-0.0150        ? might be 1.0584x slower
   infer-closure-const-then-put-to-scope             27.5095+-0.3125     ?     27.5397+-0.3239        ?
   infer-closure-const-then-reenter-no-inline   
                                                      0.2660+-0.0408            0.2644+-0.0199        
   infer-closure-const-then-reenter                  27.4680+-0.2024           27.4372+-0.2326        
   infer-constant-global-property                     4.4372+-0.0685            4.4365+-0.2467        
   infer-constant-property                            3.0728+-0.1002            3.0416+-0.0402          might be 1.0103x faster
   infer-one-time-closure-ten-vars                    0.2593+-0.0219     ?      0.2726+-0.0200        ? might be 1.0511x slower
   infer-one-time-closure-two-vars                    0.2552+-0.0192            0.2547+-0.0141        
   infer-one-time-closure                             0.2442+-0.0079     ?      0.2645+-0.0323        ? might be 1.0830x slower
   infer-one-time-deep-closure                        0.2614+-0.0183     ?      0.2626+-0.0284        ?
   inline-arguments-access                            2.0451+-0.1262            1.8887+-0.1037          might be 1.0828x faster
   inline-arguments-aliased-access                    2.2222+-0.1755            2.2150+-0.0996        
   inline-arguments-local-escape                     28.3149+-1.1768     ?     28.3737+-0.7929        ?
   inline-get-scoped-var                              5.3543+-0.1134            5.2649+-0.0551          might be 1.0170x faster
   inlined-put-by-id-transition                      13.3248+-0.2609           13.0893+-0.2042          might be 1.0180x faster
   int-or-other-abs-then-get-by-val                   6.4259+-0.1705     ?      6.4659+-0.0886        ?
   int-or-other-abs-zero-then-get-by-val             26.1198+-0.0763           25.9841+-0.1129        
   int-or-other-add-then-get-by-val                   5.4770+-0.0715     ?      5.5500+-0.1097        ? might be 1.0133x slower
   int-or-other-add                                   7.4975+-0.1881            7.4420+-0.2695        
   int-or-other-div-then-get-by-val                   4.7191+-0.0996            4.6950+-0.0543        
   int-or-other-max-then-get-by-val                   6.2833+-0.4648     ?      6.3904+-0.2067        ? might be 1.0171x slower
   int-or-other-min-then-get-by-val                   4.8940+-0.1194            4.8737+-0.1008        
   int-or-other-mod-then-get-by-val                   4.7787+-0.0818            4.7291+-0.0351          might be 1.0105x faster
   int-or-other-mul-then-get-by-val                   4.7581+-0.1416            4.7252+-0.2817        
   int-or-other-neg-then-get-by-val                   5.7530+-0.2911     ?      5.8027+-0.2446        ?
   int-or-other-neg-zero-then-get-by-val             26.2015+-0.2131           26.0383+-0.1228        
   int-or-other-sub-then-get-by-val                   5.5230+-0.1260     ?      5.6068+-0.0765        ? might be 1.0152x slower
   int-or-other-sub                                   4.7781+-0.0895     ?      4.8192+-0.1813        ?
   int-overflow-local                                 5.4888+-0.1991            5.4435+-0.1279        
   int52-spill                                        0.2508+-0.0159     ?      0.2544+-0.0274        ? might be 1.0144x slower
   integer-divide                                    13.8364+-0.1102     ?     14.0425+-0.3040        ? might be 1.0149x slower
   integer-modulo                                     2.6825+-0.1374            2.6420+-0.1487          might be 1.0153x faster
   large-int-captured                                15.8890+-0.4381     ?     15.9100+-0.2923        ?
   large-int-neg                                     20.2335+-0.0988     ?     20.2827+-0.1315        ?
   large-int                                         18.0828+-0.1733           17.9912+-0.2110        
   logical-not                                        0.2441+-0.0066     ?      0.2540+-0.0244        ? might be 1.0402x slower
   lots-of-fields                                    21.7770+-0.6332           21.2095+-0.3517          might be 1.0268x faster
   make-indexed-storage                               5.7718+-0.1794            5.6057+-0.4965          might be 1.0296x faster
   make-rope-cse                                     32.3018+-0.3036     ?     32.3922+-0.9796        ?
   marsaglia-larger-ints                             51.6235+-1.0295           51.5378+-0.7671        
   marsaglia-osr-entry                               28.0246+-0.3858           27.4630+-0.1789          might be 1.0204x faster
   max-boolean                                        3.0781+-0.0181     ?      3.1084+-0.0543        ?
   method-on-number                                  22.9208+-0.4797     ?     23.5095+-0.4611        ? might be 1.0257x slower
   min-boolean                                        3.1067+-0.1587            3.0525+-0.1569          might be 1.0178x faster
   minus-boolean-double                               3.8900+-0.0645     ?      3.9330+-0.1430        ? might be 1.0111x slower
   minus-boolean                                      3.0867+-0.1243            3.0303+-0.0488          might be 1.0186x faster
   misc-strict-eq                                    51.5834+-0.6080           50.5585+-1.1268          might be 1.0203x faster
   mod-boolean-double                                11.2785+-0.0652     ?     11.2818+-0.0692        ?
   mod-boolean                                        8.5242+-0.0381     ?      8.5475+-0.0354        ?
   mul-boolean-double                                 4.5712+-0.1496     ?      4.5786+-0.0705        ?
   mul-boolean                                        3.2833+-0.0783            3.2573+-0.1641        
   neg-boolean                                        4.0238+-0.0883            3.9736+-0.1003          might be 1.0126x faster
   negative-zero-divide                               0.3006+-0.0150     ?      0.3020+-0.0201        ?
   negative-zero-modulo                               0.3400+-0.0835            0.2888+-0.0015          might be 1.1771x faster
   negative-zero-negate                               0.2914+-0.0305     ?      0.2928+-0.0424        ?
   nested-function-parsing                           37.7905+-0.4555           37.5276+-0.2955        
   new-array-buffer-dead                              3.8734+-0.2046            3.8638+-0.1887        
   new-array-buffer-push                             17.8457+-0.2481           17.5732+-0.2160          might be 1.0155x faster
   new-array-dead                                    13.8839+-0.7892     ?     14.2078+-0.3943        ? might be 1.0233x slower
   new-array-push                                     9.6138+-0.3310     ?      9.6315+-0.1517        ?
   number-test                                        3.8666+-0.1517            3.7606+-0.0441          might be 1.0282x faster
   object-closure-call                                7.7451+-0.2676     ?      7.7825+-0.0968        ?
   object-test                                        4.0906+-0.1303     ?      4.1776+-0.1058        ? might be 1.0213x slower
   plus-boolean-arith                                 3.1268+-0.1001            3.0739+-0.0330          might be 1.0172x faster
   plus-boolean-double                                4.0265+-0.1471            3.9407+-0.0911          might be 1.0218x faster
   plus-boolean                                       2.9817+-0.1020            2.9785+-0.0330        
   poly-chain-access-different-prototypes-simple   
                                                      3.5719+-0.0350     ?      3.6480+-0.0894        ? might be 1.0213x slower
   poly-chain-access-different-prototypes             2.5198+-0.5809            2.4945+-0.6456          might be 1.0102x faster
   poly-chain-access-simpler                          3.7128+-0.1279            3.5739+-0.0267          might be 1.0389x faster
   poly-chain-access                                  2.8770+-0.0769     ?      2.8823+-0.0718        ?
   poly-stricteq                                     69.5085+-4.0087           67.4738+-0.8665          might be 1.0302x faster
   polymorphic-array-call                             1.9602+-0.1574     ?      2.1545+-0.1324        ? might be 1.0991x slower
   polymorphic-get-by-id                              0.2673+-0.0264            0.2484+-0.0200          might be 1.0762x faster
   polymorphic-put-by-id                              0.2740+-0.0086     ?      0.2775+-0.1050        ? might be 1.0127x slower
   polymorphic-structure                             25.1463+-0.2443     ?     25.2110+-0.1826        ?
   polyvariant-monomorphic-get-by-id                 11.0145+-0.4394           10.9277+-0.1499        
   proto-getter-access                                0.2455+-0.0074            0.2414+-0.0102          might be 1.0172x faster
   put-by-id-replace-and-transition                  13.1789+-0.1355           13.1070+-0.2813        
   put-by-id-slightly-polymorphic                     3.2845+-0.0536            3.2655+-0.0990        
   put-by-id                                         18.2973+-1.2214     ?     18.3098+-0.7822        ?
   put-by-val-direct                                  0.5677+-0.1100            0.4827+-0.0066          might be 1.1762x faster
   put-by-val-large-index-blank-indexing-type   
                                                     19.3476+-0.3913     ?     19.3945+-0.3378        ?
   put-by-val-machine-int                             0.2443+-0.0216            0.2363+-0.0181          might be 1.0338x faster
   rare-osr-exit-on-local                            17.7811+-0.4517     ?     17.8700+-0.0692        ?
   register-pressure-from-osr                        26.2755+-0.2077           26.2359+-0.4817        
   setter                                             6.2257+-0.1441            6.2173+-0.2355        
   simple-activation-demo                            30.2559+-0.3452     !     36.3515+-0.3273        ! definitely 1.2015x slower
   simple-getter-access                               0.2465+-0.0228            0.2460+-0.0309        
   simple-poly-call-nested                           19.6971+-1.5020     ?     19.9405+-1.9447        ? might be 1.0124x slower
   simple-poly-call                                   1.4870+-0.2209            1.4611+-0.1152          might be 1.0178x faster
   sin-boolean                                       24.0383+-3.1248     ?     24.0493+-4.1494        ?
   slow-array-profile-convergence                     4.3579+-0.2088            4.1891+-0.1935          might be 1.0403x faster
   slow-convergence                                   4.1458+-0.2624     ?      4.1489+-0.2261        ?
   sparse-conditional                                 1.3713+-0.0823            1.3355+-0.0310          might be 1.0268x faster
   splice-to-remove                                  25.2349+-1.2382           25.0648+-0.3516        
   string-char-code-at                               19.2123+-0.2386     ?     19.2552+-0.2299        ?
   string-concat-object                               7.5217+-0.2120            7.4966+-0.1683        
   string-concat-pair-object                          7.5088+-0.0641            7.4535+-0.1875        
   string-concat-pair-simple                         16.4830+-0.1573     ?     16.5959+-0.1164        ?
   string-concat-simple                              16.8845+-0.4354     ?     17.1129+-0.3143        ? might be 1.0135x slower
   string-cons-repeat                                14.1274+-0.3824     ?     14.3198+-0.2938        ? might be 1.0136x slower
   string-cons-tower                                 13.7117+-0.5769     ?     13.9199+-1.0256        ? might be 1.0152x slower
   string-equality                                   21.8442+-0.3767     ?     21.9089+-0.6392        ?
   string-get-by-val-big-char                        14.3422+-0.1246     ?     14.4509+-0.2130        ?
   string-get-by-val-out-of-bounds-insane             4.7455+-0.0868     ?      4.8166+-0.1337        ? might be 1.0150x slower
   string-get-by-val-out-of-bounds                    5.8688+-0.0855     ?      5.9568+-0.3616        ? might be 1.0150x slower
   string-get-by-val                                  4.4675+-0.0841     ?      4.5035+-0.0926        ?
   string-hash                                        2.5372+-0.0296            2.5347+-0.1590        
   string-long-ident-equality                        17.5391+-0.0599     ?     17.5997+-0.0896        ?
   string-repeat-arith                               40.0613+-0.8218     ?     40.1943+-0.5163        ?
   string-sub                                        76.6913+-1.3949     ?     78.9778+-1.5927        ? might be 1.0298x slower
   string-test                                        3.8463+-0.0684            3.7852+-0.2104          might be 1.0161x faster
   string-var-equality                               43.1098+-0.4012     ?     43.1276+-0.1502        ?
   structure-hoist-over-transitions                   4.9225+-0.2681     ?      4.9756+-0.4908        ? might be 1.0108x slower
   substring-concat-weird                            60.7001+-1.1910           59.4293+-0.9316          might be 1.0214x faster
   substring-concat                                  62.0806+-0.5955           61.3253+-1.4810          might be 1.0123x faster
   substring                                         65.2791+-0.3858           64.5017+-1.6673          might be 1.0121x faster
   switch-char-constant                               3.1339+-0.0939     ?      3.1772+-0.2364        ? might be 1.0138x slower
   switch-char                                        7.5905+-0.2174            7.4483+-0.1097          might be 1.0191x faster
   switch-constant                                   11.9322+-0.4004     ?     12.0416+-0.4681        ?
   switch-string-basic-big-var                       23.0953+-1.3902     ?     23.7997+-0.5018        ? might be 1.0305x slower
   switch-string-basic-big                           17.6224+-0.9092     ?     19.1520+-5.7531        ? might be 1.0868x slower
   switch-string-basic-var                           26.8618+-2.5930     ?     27.0317+-2.1489        ?
   switch-string-basic                               20.9598+-1.7538           20.9014+-1.5313        
   switch-string-big-length-tower-var                24.7643+-0.0111           24.6412+-0.1188        
   switch-string-length-tower-var                    19.7814+-0.1407     ^     19.3397+-0.0505        ^ definitely 1.0228x faster
   switch-string-length-tower                        14.3389+-0.3720     ?     14.5099+-0.3331        ? might be 1.0119x slower
   switch-string-short                               14.3417+-0.1609     ?     14.4016+-0.1686        ?
   switch                                            15.8127+-0.4223           15.7347+-0.2052        
   tear-off-arguments-simple                          2.1605+-0.1603     ?      2.1642+-0.1081        ?
   tear-off-arguments                                 3.4145+-0.1290            3.3995+-0.0731        
   temporal-structure                                16.6761+-0.1649     ?     16.7360+-0.2235        ?
   to-int32-boolean                                  20.2645+-0.0698     ?     20.3187+-0.2134        ?
   undefined-test                                     3.9678+-0.1462     ?      3.9976+-0.0965        ?
   unprofiled-licm                                   27.2375+-0.6015     ?     27.2391+-0.6396        ?
   weird-inlining-const-prop                          0.2522+-0.0298            0.2419+-0.0056          might be 1.0424x faster

   <arithmetic>                                      18.7951+-0.0911     ?     18.8209+-0.1117        ? might be 1.0014x slower
   <geometric> *                                      7.1433+-0.0131     ?      7.1480+-0.0401        ? might be 1.0006x slower
   <harmonic>                                         1.7030+-0.0141            1.6868+-0.0442          might be 1.0096x faster

                                                          trunk                      new                                        
AsmBench:
   FloatMM.c                                        953.0683+-2.8804     ?    954.2560+-3.9269        ?
   Quicksort.c                                      569.3077+-2.3034          568.7673+-2.7100        
   Towers.c                                         413.6270+-5.5509     ^    402.5715+-2.1517        ^ definitely 1.0275x faster
   bigfib.cpp                                       677.4558+-6.2990     ?    680.9818+-4.8977        ?
   cray.c                                           673.8777+-5.7045     ?    677.4255+-7.8755        ?
   dry.c                                            648.4427+-12.4184         648.1900+-14.4740       
   gcc-loops.cpp                                   6257.1985+-11.4480        6247.0603+-14.9400       
   n-body.c                                        1665.6456+-6.9917         1665.2059+-5.4533        
   stepanov_container.cpp                          4931.5547+-20.3366        4916.7004+-34.8035       

   <arithmetic>                                    1865.5753+-2.0970         1862.3510+-6.5790          might be 1.0017x faster
   <geometric> *                                   1146.1907+-1.7071         1143.4387+-4.6137          might be 1.0024x faster
   <harmonic>                                       841.9923+-2.2208          837.8450+-3.5403          might be 1.0049x faster

                                                          trunk                      new                                        
DSP:
   filtrr-posterize-tint                             36.6970+-0.4850     ?     36.8127+-0.8293        ?
   filtrr-tint-contrast-sat-bright                   60.2950+-0.6478     ?     61.0861+-0.6625        ? might be 1.0131x slower
   filtrr-tint-sat-adj-contr-mult                    75.2455+-4.1009           74.1948+-5.1824          might be 1.0142x faster
   filtrr-blur-overlay-sat-contr                    176.4652+-1.9735          175.4797+-0.4720        
   filtrr-sat-blur-mult-sharpen-contr               237.8973+-0.7781     ?    239.7888+-5.3622        ?
   filtrr-sepia-bias                                 28.1326+-0.3551     ?     28.4397+-0.1721        ? might be 1.0109x slower
   route9-vp8                               x5     2676.7426+-334.5456       2573.8235+-349.3248        might be 1.0400x faster
   starfield                                x5     1369.2355+-30.8562    ?   1374.0515+-7.1538        ?
   bellard-jslinux                          x5     4716.2500+-204.0589   ?   5238.2500+-440.7645      ? might be 1.1107x slower
   zynaps-quake3                            x5     1229.0015+-27.8926    !   1338.2227+-13.1010       ! definitely 1.0889x slower
   zynaps-mandelbrot                        x5      607.7635+-7.4673          607.0482+-6.1345        
   ammojs-asm-js                            x5       97.9078+-40.0499          83.0714+-3.1195          might be 1.1786x faster
   ammojs-regular-js                        x5      261.5507+-4.6343          258.1526+-3.3441          might be 1.0132x faster

   <arithmetic>                                    1351.3900+-56.6403    ?   1414.1195+-79.6333       ? might be 1.0464x slower
   <geometric> *                                    597.9804+-33.6896         597.7302+-13.4622         might be 1.0004x faster
   <harmonic>                                       212.0613+-19.1775         204.8259+-1.9230          might be 1.0353x faster

                                                          trunk                      new                                        
CompressionBench:
   huffman                                          662.7303+-3.1556     ?    663.2542+-1.6947        ?
   arithmetic-simple                                486.3135+-1.9973     ?    488.7368+-3.3024        ?
   arithmetic-precise                               379.4584+-5.2586     ?    380.8608+-3.3407        ?
   arithmetic-complex-precise                       388.6878+-17.6965    ?    393.2120+-7.9407        ? might be 1.0116x slower
   arithmetic-precise-order-0                       499.9119+-3.9494          499.4966+-3.1889        
   arithmetic-precise-order-1                       431.7598+-5.9271          428.6075+-3.5666        
   arithmetic-precise-order-2                       494.5443+-10.2805         491.9044+-7.0248        
   arithmetic-simple-order-1                        554.3135+-4.1475     ?    560.5196+-8.5896        ? might be 1.0112x slower
   arithmetic-simple-order-2                        629.1005+-9.8732          626.2887+-2.5305        
   lz-string                                        448.4613+-12.0144    ?    454.6389+-13.3505       ? might be 1.0138x slower

   <arithmetic>                                     497.5281+-2.5578     ?    498.7519+-2.1229        ? might be 1.0025x slower
   <geometric> *                                    489.7021+-2.7472     ?    491.0820+-2.1729        ? might be 1.0028x slower
   <harmonic>                                       482.2099+-2.9918     ?    483.7432+-2.2160        ? might be 1.0032x slower

                                                          trunk                      new                                        
All benchmarks:
   <arithmetic>                                     254.2987+-5.3880     ?    260.8829+-8.4404        ? might be 1.0259x slower
   <geometric>                                       19.8560+-0.0963     ?     19.8864+-0.0604        ? might be 1.0015x slower
   <harmonic>                                         2.2554+-0.0134            2.2386+-0.0478          might be 1.0075x faster

                                                          trunk                      new                                        
Geomean of preferred means:
   <scaled-result>                                   91.8612+-0.4369     ?     92.2006+-0.3103        ? might be 1.0037x slower

Eggplant:WebKit oliver$
Comment 18 Oliver Hunt 2014-09-29 09:43:14 PDT
Progress, i suspect there's some fairly low hanging fruit for me to still fix:


SunSpider:
   3d-cube                                            8.3767+-0.4191            8.1705+-0.6612          might be 1.0252x faster
   3d-morph                                           7.9278+-0.1657            7.8577+-0.0941        
   3d-raytrace                                        8.8688+-0.1610     ?      9.0599+-0.7670        ? might be 1.0216x slower
   access-binary-trees                                3.6864+-0.2559     ?      3.8024+-0.1158        ? might be 1.0315x slower
   access-fannkuch                                    8.3641+-0.4174            7.6986+-0.7284          might be 1.0864x faster
   access-nbody                                       3.9003+-0.1643            3.7155+-0.0274          might be 1.0498x faster
   access-nsieve                                      4.7963+-0.2946     ?      4.8415+-0.2928        ?
   bitops-3bit-bits-in-byte                           1.6531+-0.0949     ?      1.6860+-0.0708        ? might be 1.0199x slower
   bitops-bits-in-byte                                5.1691+-0.0881     ?      5.1769+-0.1056        ?
   bitops-bitwise-and                                 2.7198+-0.1052            2.6835+-0.1060          might be 1.0135x faster
   bitops-nsieve-bits                                 4.9032+-0.2318     ?      4.9506+-0.1479        ?
   controlflow-recursive                              2.7665+-0.2726            2.6155+-0.2045          might be 1.0577x faster
   crypto-aes                                         6.2427+-0.3249            5.9863+-0.0942          might be 1.0428x faster
   crypto-md5                                         3.1999+-0.0887     ?      3.2835+-0.2658        ? might be 1.0261x slower
   crypto-sha1                                        3.2156+-0.1842            3.1306+-0.1658          might be 1.0272x faster
   date-format-tofte                                 14.5623+-0.3514     ?     15.5218+-0.6243        ? might be 1.0659x slower
   date-format-xparb                                  9.0513+-0.5340            8.9205+-0.1932          might be 1.0147x faster
   math-cordic                                        3.8898+-0.1066     ?      3.9113+-0.2361        ?
   math-partial-sums                                  8.5865+-0.3566            8.5417+-0.1130        
   math-spectral-norm                                 2.6409+-0.0514            2.6205+-0.0460        
   regexp-dna                                        10.9014+-0.0477     ?     10.9755+-0.1458        ?
   string-base64                                      7.2149+-0.3350            7.1946+-0.1809        
   string-fasta                                       9.8023+-0.5528            9.6835+-0.5723          might be 1.0123x faster
   string-tagcloud                                   13.9757+-0.3729     ?     13.9843+-0.3908        ?
   string-unpack-code                                31.6708+-1.3201           31.3936+-0.3904        
   string-validate-input                              8.7354+-0.3919            8.7347+-0.1798        

   <arithmetic> *                                     7.5701+-0.1087            7.5439+-0.0310          might be 1.0035x faster
   <geometric>                                        6.0760+-0.0858            6.0385+-0.0309          might be 1.0062x faster
   <harmonic>                                         4.9866+-0.0875            4.9536+-0.0326          might be 1.0067x faster

                                                          trunk                      new                                        
LongSpider:
   3d-cube                                         1516.8100+-32.6403    ?   1547.7325+-23.6898       ? might be 1.0204x slower
   3d-morph                                        1864.4777+-3.2475         1863.6172+-4.2718        
   3d-raytrace                                     1123.3193+-17.1668    ?   1132.9290+-4.2166        ?
   access-binary-trees                             1410.1420+-5.3395         1408.3163+-3.5454        
   access-fannkuch                                  442.4086+-23.7692         437.4305+-22.3603         might be 1.0114x faster
   access-nbody                                    1050.9299+-8.5814         1047.5247+-2.4964        
   access-nsieve                                   1422.2535+-13.9017        1417.6508+-8.1998        
   bitops-3bit-bits-in-byte                          49.2863+-0.4497     ?     49.4262+-1.2551        ?
   bitops-bits-in-byte                              330.6915+-3.3575          324.5906+-4.6819          might be 1.0188x faster
   bitops-nsieve-bits                               990.7068+-8.2197     ?    994.3402+-9.8038        ?
   controlflow-recursive                            713.5417+-2.7790          713.4115+-2.3054        
   crypto-aes                                       952.6440+-6.4712          951.5392+-8.4004        
   crypto-md5                                       811.9265+-8.0516     ?    815.9408+-28.4173       ?
   crypto-sha1                                      994.1617+-4.2140     ?    999.4669+-3.5084        ?
   date-format-tofte                               1005.2809+-11.6001    !   1103.3309+-10.6773       ! definitely 1.0975x slower
   date-format-xparb                                957.8361+-23.4868         951.2857+-30.1950       
   math-cordic                                      669.1788+-2.4457     ?    669.3642+-2.3866        ?
   math-partial-sums                               1039.7679+-0.6127         1038.3046+-2.2370        
   math-spectral-norm                              1077.4794+-0.7142     ^   1075.2446+-1.1731        ^ definitely 1.0021x faster
   string-base64                                    661.5652+-2.9002     ^    650.8127+-5.5662        ^ definitely 1.0165x faster
   string-fasta                                     583.5947+-7.5084     ?    585.3134+-10.1045       ?
   string-tagcloud                                  317.1887+-2.5632     ^    310.6396+-3.2821        ^ definitely 1.0211x faster

   <arithmetic>                                     908.4178+-4.0936     ?    913.1006+-0.8718        ? might be 1.0052x slower
   <geometric> *                                    758.9910+-3.2643     ?    760.8687+-2.2827        ? might be 1.0025x slower
   <harmonic>                                       462.9109+-2.0188          462.8414+-5.9006          might be 1.0001x faster

                                                          trunk                      new                                        
V8Spider:
   crypto                                            72.5510+-0.5264           72.2592+-0.5184        
   deltablue                                        127.0001+-4.0602          124.5702+-3.0508          might be 1.0195x faster
   earley-boyer                                      67.1586+-3.7442           65.3568+-1.6384          might be 1.0276x faster
   raytrace                                          64.3182+-0.9908           62.7009+-1.0263          might be 1.0258x faster
   regexp                                            99.9855+-0.2373     ?    100.2481+-1.4075        ?
   richards                                         124.1893+-2.9926          123.6370+-4.1585        
   splay                                             43.6483+-0.8933     ?     44.0366+-1.8851        ?

   <arithmetic>                                      85.5501+-1.5180           84.6870+-0.9823          might be 1.0102x faster
   <geometric> *                                     80.3167+-1.3181           79.5282+-0.7431          might be 1.0099x faster
   <harmonic>                                        75.2084+-1.1510           74.5428+-0.8131          might be 1.0089x faster

                                                          trunk                      new                                        
Octane:
   encrypt                                           0.34238+-0.00194    ?     0.34278+-0.00159       ?
   decrypt                                           6.03378+-0.02653    ?     6.04173+-0.03543       ?
   deltablue                                x2       0.32995+-0.00770          0.32992+-0.00297       
   earley                                            1.02890+-0.01063          1.01555+-0.01123         might be 1.0131x faster
   boyer                                             8.05385+-0.09249    ?     8.13770+-0.06453       ? might be 1.0104x slower
   navier-stokes                            x2       6.61750+-0.02382    ?     6.62350+-0.02061       ?
   raytrace                                 x2       2.78994+-0.04053    ?     2.80141+-0.03725       ?
   richards                                 x2       0.18857+-0.00448    ?     0.18921+-0.00588       ?
   splay                                    x2       0.58454+-0.01317          0.57293+-0.02586         might be 1.0203x faster
   regexp                                   x2      47.33064+-0.56600    ?    48.24565+-0.72152       ? might be 1.0193x slower
   pdfjs                                    x2      75.30411+-0.36505         74.78432+-0.73183       
   mandreel                                 x2      73.87283+-1.07753         73.44964+-0.51795       
   gbemu                                    x2      59.90635+-0.35272    ?    67.86394+-12.85480      ? might be 1.1328x slower
   closure                                           0.47474+-0.00363          0.47198+-0.00137       
   jquery                                            5.28041+-0.03151    !     5.44818+-0.04401       ! definitely 1.0318x slower
   box2d                                    x2      19.06110+-0.32085         18.97153+-0.13035       
   zlib                                     x2     638.96637+-3.73830        614.81968+-66.47500        might be 1.0393x faster
   typescript                               x2    1097.47504+-12.33994   ^  1069.86572+-9.68195       ^ definitely 1.0258x faster

   <arithmetic>                                    135.53560+-0.96710        132.61643+-4.64515         might be 1.0220x faster
   <geometric> *                                     9.94963+-0.04510    ?     9.98741+-0.14899       ? might be 1.0038x slower
   <harmonic>                                        1.07803+-0.00791          1.07637+-0.01512         might be 1.0015x faster

                                                          trunk                      new                                        
Kraken:
   ai-astar                                          469.492+-14.228           462.612+-12.027          might be 1.0149x faster
   audio-beat-detection                              167.269+-1.364      ?     167.663+-2.960         ?
   audio-dft                                         212.900+-0.829            212.009+-1.820         
   audio-fft                                         110.825+-0.818            110.553+-0.839         
   audio-oscillator                                  302.688+-3.820            302.033+-4.872         
   imaging-darkroom                                  265.885+-1.086      ?     266.773+-3.709         ?
   imaging-desaturate                                 95.228+-0.586      ?      95.743+-0.961         ?
   imaging-gaussian-blur                             157.441+-0.945            156.864+-1.570         
   json-parse-financial                               70.777+-1.032      ?      72.806+-1.530         ? might be 1.0287x slower
   json-stringify-tinderbox                          100.103+-0.811      ^      92.351+-0.356         ^ definitely 1.0839x faster
   stanford-crypto-aes                               101.173+-1.323      ?     103.337+-1.076         ? might be 1.0214x slower
   stanford-crypto-ccm                               119.776+-2.678            114.736+-11.567          might be 1.0439x faster
   stanford-crypto-pbkdf2                            220.138+-1.212      ?     221.219+-4.577         ?
   stanford-crypto-sha256-iterative                  100.941+-0.532      ?     100.963+-1.788         ?

   <arithmetic> *                                    178.188+-1.154            177.119+-1.966           might be 1.0060x faster
   <geometric>                                       154.115+-0.538            153.164+-1.773           might be 1.0062x faster
   <harmonic>                                        136.517+-0.312            135.689+-1.637           might be 1.0061x faster

                                                          trunk                      new                                        
JSBench:
   amazon                                             8.2500+-0.7956            8.0000+-0.0000          might be 1.0312x faster
   facebook                                          29.0000+-1.2992           28.0000+-1.2992          might be 1.0357x faster
   google                                            60.7500+-2.7175     ?     63.7500+-0.7956        ? might be 1.0494x slower
   twitter                                            8.0000+-1.2992            7.7500+-0.7956          might be 1.0323x faster
   yahoo                                              4.0000+-0.0000     ?      4.2500+-0.7956        ? might be 1.0625x slower

   <arithmetic> *                                    22.0000+-0.5197     ?     22.3500+-0.3047        ? might be 1.0159x slower
   <geometric>                                       13.5857+-0.4895     ?     13.6117+-0.2444        ? might be 1.0019x slower
   <harmonic>                                         9.1230+-0.4731     ?      9.2078+-0.4490        ? might be 1.0093x slower
Comment 19 Oliver Hunt 2014-09-30 10:50:28 PDT
Created attachment 238937 [details]
WIP - passes all tests, rebaselined to ToT, but still regresses perf in a few places
Comment 20 Oliver Hunt 2014-10-01 12:14:06 PDT
Created attachment 239040 [details]
Patch
Comment 21 WebKit Commit Bot 2014-10-01 12:16:11 PDT
Attachment 239040 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/llint/LLIntData.cpp:146:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 22 Mark Lam 2014-10-02 12:14:53 PDT
Comment on attachment 239040 [details]
Patch

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

> Source/JavaScriptCore/bytecode/CodeBlock.cpp:3906
> +        return;

This return would make the code below dead and unreachable.  Is this intentional?
Comment 23 Oliver Hunt 2014-10-02 12:16:04 PDT
Comment on attachment 239040 [details]
Patch

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

>> Source/JavaScriptCore/bytecode/CodeBlock.cpp:3906
>> +        return;
> 
> This return would make the code below dead and unreachable.  Is this intentional?

Whoops, i'll fix this -- it was validation that was failing during bring up
Comment 24 Oliver Hunt 2014-10-02 13:36:32 PDT
Committed r174226: <http://trac.webkit.org/changeset/174226>
Comment 25 Carlos Alberto Lopez Perez 2014-10-03 14:19:10 PDT
(In reply to comment #24)
> Committed r174226: <http://trac.webkit.org/changeset/174226>

This has caused crashes when running the performance test Speedometer/Full.html

Reported here: https://bugs.webkit.org/show_bug.cgi?id=137404
Comment 26 Chris Dumez 2014-10-30 21:32:59 PDT
Comment on attachment 239040 [details]
Patch

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

> Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp:204
> +    return JSValue::encode(jsUndefined());

This doesn't seem right. The code below is no longer reachable, did you mean to remove that return statement as well?
Comment 27 Chris Dumez 2014-10-30 22:09:11 PDT
Comment on attachment 239040 [details]
Patch

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

>> Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp:204
>> +    return JSValue::encode(jsUndefined());
> 
> This doesn't seem right. The code below is no longer reachable, did you mean to remove that return statement as well?

BTW, how come this did not break any test?
Comment 28 Filip Pizlo 2014-10-30 22:19:37 PDT
Comment on attachment 239040 [details]
Patch

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

>>> Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp:204
>>> +    return JSValue::encode(jsUndefined());
>> 
>> This doesn't seem right. The code below is no longer reachable, did you mean to remove that return statement as well?
> 
> BTW, how come this did not break any test?

I think the intent was to delete the code below.
Comment 29 Chris Dumez 2014-10-30 22:48:42 PDT
Comment on attachment 239040 [details]
Patch

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

>>>> Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp:204
>>>> +    return JSValue::encode(jsUndefined());
>>> 
>>> This doesn't seem right. The code below is no longer reachable, did you mean to remove that return statement as well?
>> 
>> BTW, how come this did not break any test?
> 
> I think the intent was to delete the code below.

Then this function doesn't do anything anymore right? and the 2 variables above are useless.