Bug 141332

Summary: DFG should really support varargs
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, commit-queue, ggaren, mark.lam, mhahnenb, mmirman, msaboff, nrotem, oliver, ossy, saam, sam
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on: 141337, 141342, 141388, 141398, 141440, 141455, 141485, 141493, 141623, 141714, 141771    
Bug Blocks: 141448, 141660, 141174    
Attachments:
Description Flags
work in progress
none
slowly coming along
none
more things
none
even more
none
DFG 64-bit CallVarargs done
none
DFG LoadVarargs 64-bit done
none
OMG so much code
none
more
none
64-bit might be done
none
starting to compile, and reworking CallForwardVarargs in FTL
none
almost compiling
none
it compiles!
none
it passes some of our tests!
none
now passes more tests than ever!
none
it's passing so many tests
none
almost passing all tests
none
more FTL fixes
none
more fixes, more tests
none
64-bit tests pass
none
towards 32-bit support
none
x86 32-bit and 64-bit pass all tests
oliver: review+
closer to landing
none
ARM64 works none

Description Filip Pizlo 2015-02-06 08:06:47 PST
Something that blocks us from doing various arguments-related improvements is that we don't compile or inline code with varargs calls unless it's statically obvious that we're just forwarding arguments.  That's lame.  The forwarding of arguments should be a late optimization after we have already represented the problem in DFG IR.
Comment 1 Filip Pizlo 2015-02-06 10:52:51 PST
Created attachment 246166 [details]
work in progress
Comment 2 Filip Pizlo 2015-02-07 11:56:37 PST
Created attachment 246212 [details]
slowly coming along
Comment 3 Filip Pizlo 2015-02-07 16:24:13 PST
Created attachment 246226 [details]
more things
Comment 4 Filip Pizlo 2015-02-10 14:59:06 PST
Created attachment 246344 [details]
even more
Comment 5 Filip Pizlo 2015-02-10 15:45:42 PST
Created attachment 246349 [details]
DFG 64-bit CallVarargs done

Still a lot more to do, but it's coming along.
Comment 6 Filip Pizlo 2015-02-10 16:48:36 PST
Created attachment 246351 [details]
DFG LoadVarargs 64-bit done

Now I need to write the FTL side.
Comment 7 Filip Pizlo 2015-02-11 15:04:29 PST
Created attachment 246417 [details]
OMG so much code

I wrote most of the meat of the FTL varargs call, and filled in some missing junk for the inline call frame arguments register.
Comment 8 Filip Pizlo 2015-02-11 15:59:28 PST
Created attachment 246418 [details]
more

Closing the loop on call varargs in the FTL
Comment 9 Filip Pizlo 2015-02-11 20:59:12 PST
Created attachment 246423 [details]
64-bit might be done

I haven't even tried compiling yet.
Comment 10 WebKit Commit Bot 2015-02-12 06:37:05 PST
Attachment 246423 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:46:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:97:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:105:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/bytecode/CallLinkStatus.cpp:298:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/JavaScriptCore/jit/JITCall.cpp:149:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/jit/JITCall.cpp:168:  When wrapping a line, only indent 4 spaces.  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/jit/JITCall.cpp:195:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:679:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1139:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 9 in 50 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 11 Filip Pizlo 2015-02-12 10:19:19 PST
Created attachment 246451 [details]
starting to compile, and reworking CallForwardVarargs in FTL
Comment 12 Filip Pizlo 2015-02-13 12:43:55 PST
Created attachment 246542 [details]
almost compiling
Comment 13 Filip Pizlo 2015-02-13 14:17:16 PST
Created attachment 246549 [details]
it compiles!
Comment 14 Filip Pizlo 2015-02-13 17:36:55 PST
Created attachment 246561 [details]
it passes some of our tests!

Fails about 55 of them.  Still debugging...
Comment 15 Filip Pizlo 2015-02-13 22:04:03 PST
Created attachment 246585 [details]
now passes more tests than ever!
Comment 16 Filip Pizlo 2015-02-14 10:11:00 PST
Created attachment 246598 [details]
it's passing so many tests

I still need to write my own tests for this, however.  For example, ConstructVarargs never hits FTL in any of our current tests.

Currently the only tests that fail are regress/script-tests/call-spread-apply.js and 	regress/script-tests/call-spread-call.js.  Everything else passes.
Comment 17 Filip Pizlo 2015-02-15 18:08:52 PST
Created attachment 246629 [details]
almost passing all tests

The latest crash I'm working on is because GetArgument with Int32 flush type tries to speculate, which isn't what we want.  This should fix it: https://bugs.webkit.org/show_bug.cgi?id=141623
Comment 18 Filip Pizlo 2015-02-16 12:58:49 PST
Created attachment 246669 [details]
more FTL fixes
Comment 19 Filip Pizlo 2015-02-16 13:54:15 PST
Created attachment 246676 [details]
more fixes, more tests
Comment 20 Filip Pizlo 2015-02-16 17:06:08 PST
Created attachment 246706 [details]
64-bit tests pass

Still have to implement the 32-bit DFG portion.
Comment 21 Filip Pizlo 2015-02-16 18:47:04 PST
The perf results are intriguing.  On the major benchmarks, the results are great.  But JSRegress is showing signs of trouble - several tests with >2x slow-downs.  I'll investigate.


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

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc (r180189)
"Varargs" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r180189)

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

                                                        TipOfTree                  Varargs                                      
SunSpider:
   3d-cube                                            4.8283+-0.0954            4.7690+-0.0585          might be 1.0124x faster
   3d-morph                                           6.0459+-0.0834            5.9905+-0.0944        
   3d-raytrace                                        6.4282+-0.2942            6.3465+-0.2322          might be 1.0129x faster
   access-binary-trees                                2.0801+-0.0888            2.0139+-0.0466          might be 1.0329x faster
   access-fannkuch                                    5.7952+-0.1091     ?      5.8472+-0.0669        ?
   access-nbody                                       2.8569+-0.1308     ?      3.0192+-0.3974        ? might be 1.0568x slower
   access-nsieve                                      3.7162+-0.1641            3.7150+-0.1195        
   bitops-3bit-bits-in-byte                           1.5581+-0.0447            1.5411+-0.0318          might be 1.0111x faster
   bitops-bits-in-byte                                3.5278+-0.1087     ?      3.5432+-0.0682        ?
   bitops-bitwise-and                                 2.0440+-0.0645            2.0327+-0.0592        
   bitops-nsieve-bits                                 3.6942+-0.1953            3.5911+-0.0360          might be 1.0287x faster
   controlflow-recursive                              2.1884+-0.0704            2.1702+-0.0298        
   crypto-aes                                         4.1401+-0.1562     ?      4.4900+-0.7132        ? might be 1.0845x slower
   crypto-md5                                         2.5660+-0.0502     ^      2.3962+-0.0586        ^ definitely 1.0708x faster
   crypto-sha1                                        2.6965+-0.2297            2.6475+-0.1754          might be 1.0185x faster
   date-format-tofte                                  9.4598+-0.2065            9.3200+-0.1137          might be 1.0150x faster
   date-format-xparb                                  5.2196+-0.1684     ?      5.4882+-0.5348        ? might be 1.0515x slower
   math-cordic                                        3.0987+-0.2110            3.0188+-0.0311          might be 1.0265x faster
   math-partial-sums                                  5.2854+-0.1328     ?      5.4272+-0.2084        ? might be 1.0268x slower
   math-spectral-norm                                 1.8893+-0.0356     ?      1.9375+-0.0518        ? might be 1.0255x slower
   regexp-dna                                         8.1920+-1.6161            7.5630+-0.3971          might be 1.0832x faster
   string-base64                                      4.4245+-0.4507     ?      4.4338+-0.4299        ?
   string-fasta                                       6.6985+-0.6527            6.5530+-0.3834          might be 1.0222x faster
   string-tagcloud                                    9.7330+-0.1005     ?      9.7691+-0.5645        ?
   string-unpack-code                                20.1917+-0.7477           19.9587+-0.3141          might be 1.0117x faster
   string-validate-input                              4.6868+-0.2944            4.6316+-0.1272          might be 1.0119x faster

   <arithmetic> *                                     5.1171+-0.0933            5.0852+-0.0599          might be 1.0063x faster
   <geometric>                                        4.2414+-0.0594            4.2232+-0.0623          might be 1.0043x faster
   <harmonic>                                         3.6315+-0.0469            3.6133+-0.0565          might be 1.0050x faster

                                                        TipOfTree                  Varargs                                      
LongSpider:
   3d-cube                                          881.4194+-13.9875         879.4170+-8.1408        
   3d-morph                                        1551.6664+-16.9720    ?   1558.0764+-23.7863       ?
   3d-raytrace                                      752.8704+-9.7494          745.9163+-11.9598       
   access-binary-trees                              989.7576+-9.4885     ?    989.9795+-5.6724        ?
   access-fannkuch                                  333.3687+-8.6867          330.4216+-7.9593        
   access-nbody                                     623.1973+-5.2673          618.9768+-3.3285        
   access-nsieve                                    964.9990+-5.5382          949.9091+-10.9895         might be 1.0159x faster
   bitops-3bit-bits-in-byte                          47.0612+-1.8126     ?     48.9921+-1.8591        ? might be 1.0410x slower
   bitops-bits-in-byte                              107.6802+-2.4302     ?    109.9938+-10.1112       ? might be 1.0215x slower
   bitops-nsieve-bits                               707.6697+-11.9688    ?    711.1864+-5.1370        ?
   controlflow-recursive                            504.2573+-6.1659     ^    485.1164+-6.7681        ^ definitely 1.0395x faster
   crypto-aes                                       689.7016+-7.2003     ?    700.1889+-11.5444       ? might be 1.0152x slower
   crypto-md5                                       629.7967+-19.3334    ?    634.6293+-12.2884       ?
   crypto-sha1                                      671.4510+-6.5079     ?    673.3282+-4.9632        ?
   date-format-tofte                                804.0556+-17.6721    ?    806.4819+-25.1952       ?
   date-format-xparb                                840.2531+-131.2412        762.9652+-16.2090         might be 1.1013x faster
   math-cordic                                      598.9208+-9.7534          596.9500+-6.6383        
   math-partial-sums                                542.0361+-6.8847     ?    542.7876+-7.7068        ?
   math-spectral-norm                               568.7288+-4.2136     ?    575.4578+-7.6344        ? might be 1.0118x slower
   string-base64                                    363.3718+-4.7414          363.2862+-5.9981        
   string-fasta                                     437.9007+-9.7960     ?    438.8616+-10.8546       ?
   string-tagcloud                                  226.8181+-4.8095          217.8351+-4.3486          might be 1.0412x faster

   <arithmetic>                                     628.9537+-6.8231          624.5799+-3.1569          might be 1.0070x faster
   <geometric> *                                    516.1671+-4.6923          513.7706+-3.7479          might be 1.0047x faster
   <harmonic>                                       336.3241+-4.3940     ?    339.6559+-7.7003        ? might be 1.0099x slower

                                                        TipOfTree                  Varargs                                      
V8Spider:
   crypto                                            55.8227+-2.2082           55.0824+-1.3186          might be 1.0134x faster
   deltablue                                         90.9392+-5.1112           90.3206+-2.7756        
   earley-boyer                                      45.5307+-1.1588     ?     46.4867+-1.6907        ? might be 1.0210x slower
   raytrace                                          39.4868+-2.0742           37.9139+-1.3229          might be 1.0415x faster
   regexp                                            70.7640+-1.9655           70.7318+-3.6284        
   richards                                          83.0937+-2.3514           81.7196+-2.3874          might be 1.0168x faster
   splay                                             37.7284+-1.9054           36.7572+-1.1534          might be 1.0264x faster

   <arithmetic>                                      60.4808+-0.8950           59.8589+-0.9805          might be 1.0104x faster
   <geometric> *                                     57.2520+-0.7667           56.5887+-0.8832          might be 1.0117x faster
   <harmonic>                                        54.2504+-0.7908           53.5236+-0.8798          might be 1.0136x faster

                                                        TipOfTree                  Varargs                                      
Octane:
   encrypt                                           0.23636+-0.00582          0.23334+-0.00151         might be 1.0130x faster
   decrypt                                           4.03931+-0.02619    ?     4.04704+-0.02880       ?
   deltablue                                x2       0.20250+-0.00275          0.20100+-0.00159       
   earley                                            0.70505+-0.00706          0.69690+-0.00793         might be 1.0117x faster
   boyer                                             5.31139+-0.05581    ?     5.36110+-0.03308       ?
   navier-stokes                            x2       5.19338+-0.04326    ?     5.22049+-0.04524       ?
   raytrace                                 x2       1.24436+-0.05931          1.23212+-0.04363       
   richards                                 x2       0.13201+-0.00194    ?     0.13371+-0.00404       ? might be 1.0129x slower
   splay                                    x2       0.37827+-0.00330          0.37588+-0.00266       
   regexp                                   x2      33.32768+-0.25133    ?    33.80731+-0.36472       ? might be 1.0144x slower
   pdfjs                                    x2      51.73293+-0.09593         51.49666+-0.48402       
   mandreel                                 x2      53.17239+-1.82697         52.79042+-0.71716       
   gbemu                                    x2      48.13580+-2.72095         47.28809+-2.79174         might be 1.0179x faster
   closure                                           0.56282+-0.00698          0.56205+-0.00835       
   jquery                                            7.22227+-0.14249    ?     7.33856+-0.22317       ? might be 1.0161x slower
   box2d                                    x2      13.53053+-0.08818    ^    12.99392+-0.06465       ^ definitely 1.0413x faster
   zlib                                     x2     400.94647+-2.71702        400.43423+-3.29155       
   typescript                               x2     867.70235+-14.05712       857.25203+-13.12071        might be 1.0122x faster

   <arithmetic>                                     98.98248+-0.85327         98.15636+-1.17218         might be 1.0084x faster
   <geometric> *                                     7.03895+-0.03893          7.00449+-0.04107         might be 1.0049x faster
   <harmonic>                                        0.73804+-0.00354          0.73795+-0.00867         might be 1.0001x faster

                                                        TipOfTree                  Varargs                                      
Kraken:
   ai-astar                                          265.247+-4.953      ?     267.734+-3.605         ?
   audio-beat-detection                              113.623+-4.987            111.641+-0.826           might be 1.0178x faster
   audio-dft                                         160.901+-6.193            160.386+-4.848         
   audio-fft                                          82.935+-1.976      ?      84.361+-3.515         ? might be 1.0172x slower
   audio-oscillator                                  243.720+-6.224            240.822+-5.128           might be 1.0120x faster
   imaging-darkroom                                  139.630+-4.218      ?     139.695+-3.036         ?
   imaging-desaturate                                 63.044+-2.347      ?      64.882+-2.529         ? might be 1.0292x slower
   imaging-gaussian-blur                             111.651+-2.337      ?     114.354+-0.801         ? might be 1.0242x slower
   json-parse-financial                               47.182+-2.390      ?      47.271+-2.158         ?
   json-stringify-tinderbox                           58.979+-1.888             58.928+-2.143         
   stanford-crypto-aes                                58.481+-0.956      ?      58.672+-2.007         ?
   stanford-crypto-ccm                                57.343+-4.574             57.141+-7.693         
   stanford-crypto-pbkdf2                            176.568+-2.281            174.617+-3.758           might be 1.0112x faster
   stanford-crypto-sha256-iterative                   55.021+-3.059             54.157+-1.752           might be 1.0160x faster

   <arithmetic> *                                    116.738+-0.747      ?     116.762+-1.009         ? might be 1.0002x slower
   <geometric>                                        98.982+-0.718      ?      99.113+-1.721         ? might be 1.0013x slower
   <harmonic>                                         85.530+-0.918      ?      85.674+-2.224         ? might be 1.0017x slower

                                                        TipOfTree                  Varargs                                      
JSRegress:
   abs-boolean                                        2.6212+-0.0508     ?      2.7155+-0.1161        ? might be 1.0360x slower
   adapt-to-double-divide                            17.1142+-0.9100           16.6148+-0.0683          might be 1.0301x faster
   aliased-arguments-getbyval                         0.8005+-0.0145     ?      0.8352+-0.0214        ? might be 1.0434x slower
   allocate-big-object                                2.3794+-0.1058     ?      2.3852+-0.1300        ?
   arity-mismatch-inlining                            0.8313+-0.0408            0.8038+-0.0200          might be 1.0341x faster
   array-access-polymorphic-structure                 6.5237+-0.1408     ?      6.5286+-0.4005        ?
   array-nonarray-polymorhpic-access                 35.5060+-2.1529     ?     35.5355+-1.7563        ?
   array-prototype-every                             88.5483+-2.5047     ?     92.0790+-4.2008        ? might be 1.0399x slower
   array-prototype-forEach                          103.4073+-28.1307          88.3062+-2.4138          might be 1.1710x faster
   array-prototype-map                              112.6493+-4.3786     ?    112.9924+-2.1811        ?
   array-prototype-some                              92.0496+-2.6549           91.7615+-2.6859        
   array-splice-contiguous                           41.9680+-2.2560           41.0247+-1.3918          might be 1.0230x faster
   array-with-double-add                              4.0435+-0.0641     ?      4.1392+-0.1183        ? might be 1.0237x slower
   array-with-double-increment                        3.1501+-0.0326     ?      3.1606+-0.0328        ?
   array-with-double-mul-add                          4.9618+-0.0622     ?      5.0511+-0.0770        ? might be 1.0180x slower
   array-with-double-sum                              3.2103+-0.0581     ?      3.2753+-0.1485        ? might be 1.0202x slower
   array-with-int32-add-sub                           6.6989+-0.0480     ?      6.7505+-0.0661        ?
   array-with-int32-or-double-sum                     3.2725+-0.0677     ?      3.2885+-0.0680        ?
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     34.4093+-1.7458           33.6566+-2.4267          might be 1.0224x faster
   ArrayBuffer-DataView-alloc-long-lived             14.6401+-1.8103           14.2390+-1.7203          might be 1.0282x faster
   ArrayBuffer-Int32Array-byteOffset                  3.7377+-0.6725            3.4513+-0.0569          might be 1.0830x faster
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     34.5740+-2.2274           34.5194+-1.3680        
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     23.7324+-2.5308           23.4676+-1.7975          might be 1.0113x faster
   ArrayBuffer-Int8Array-alloc-long-lived            13.3031+-1.0186     ?     14.1278+-1.9482        ? might be 1.0620x slower
   ArrayBuffer-Int8Array-alloc                       11.0494+-0.5546     ?     11.2141+-1.1636        ? might be 1.0149x slower
   asmjs_bool_bug                                     7.3911+-0.3005     ?      7.3963+-0.2349        ?
   assign-custom-setter-polymorphic                   2.9513+-0.0509     ?      3.0782+-0.1254        ? might be 1.0430x slower
   assign-custom-setter                               4.2493+-0.3050            4.1284+-0.0655          might be 1.0293x faster
   basic-set                                         10.2118+-0.3989     ?     10.2993+-0.4182        ?
   big-int-mul                                        3.9087+-0.0566     ?      3.9505+-0.0386        ? might be 1.0107x slower
   boolean-test                                       2.9321+-0.0203     ?      2.9499+-0.0278        ?
   branch-fold                                        3.6477+-0.0449     ?      3.6549+-0.0384        ?
   by-val-generic                                     7.9581+-0.2530            7.8708+-0.1251          might be 1.0111x faster
   call-spread-apply                                 14.4283+-0.9393     ?     14.6791+-1.1879        ? might be 1.0174x slower
   call-spread-call                                   6.4222+-1.0667            5.6920+-0.0650          might be 1.1283x faster
   captured-assignments                               0.4342+-0.0124            0.4341+-0.0094        
   cast-int-to-double                                 5.2074+-0.0117     ?      5.3169+-0.1629        ? might be 1.0210x slower
   cell-argument                                      8.3357+-0.1236     ?      8.5077+-0.2804        ? might be 1.0206x slower
   cfg-simplify                                       2.9085+-0.0557            2.8805+-0.0546        
   chain-getter-access                                9.7635+-0.1384            9.6003+-0.1385          might be 1.0170x faster
   cmpeq-obj-to-obj-other                            10.7663+-1.2426     ?     10.8037+-1.0171        ?
   constant-test                                      4.8573+-0.0091            4.8466+-0.0372        
   DataView-custom-properties                        39.8403+-1.0886           39.1313+-1.2256          might be 1.0181x faster
   delay-tear-off-arguments-strictmode               23.4338+-2.1309     ?     24.3552+-2.1906        ? might be 1.0393x slower
   deltablue-varargs                               1102.4718+-7.6058     ^    853.4602+-10.0297       ^ definitely 1.2918x faster
   destructuring-arguments                            5.1800+-0.1092            5.1251+-0.0311          might be 1.0107x faster
   destructuring-swap                                 5.0170+-0.1728            4.9545+-0.0257          might be 1.0126x faster
   direct-arguments-getbyval                          0.9919+-0.0727            0.9124+-0.0420          might be 1.0871x faster
   div-boolean-double                                 5.1696+-0.0234     ?      5.2511+-0.2195        ? might be 1.0158x slower
   div-boolean                                        7.7081+-0.0254     ?      7.8997+-0.3786        ? might be 1.0248x slower
   double-get-by-val-out-of-bounds                    4.3038+-0.1769            4.2531+-0.0230          might be 1.0119x faster
   double-pollution-getbyval                          8.8896+-0.1926            8.8106+-0.0916        
   double-pollution-putbyoffset                       4.0842+-0.0904     ?      4.1893+-0.2126        ? might be 1.0257x slower
   double-to-int32-typed-array-no-inline              2.2601+-0.1611            2.2326+-0.0532          might be 1.0123x faster
   double-to-int32-typed-array                        1.8881+-0.0207     ?      1.8983+-0.0268        ?
   double-to-uint32-typed-array-no-inline             2.3217+-0.1024            2.2588+-0.0460          might be 1.0278x faster
   double-to-uint32-typed-array                       1.9565+-0.0384     ?      2.0793+-0.1647        ? might be 1.0628x slower
   elidable-new-object-dag                           41.9705+-1.8489     ?     42.5362+-2.0310        ? might be 1.0135x slower
   elidable-new-object-roflcopter                    47.4452+-0.7567     ?     48.8214+-1.4310        ? might be 1.0290x slower
   elidable-new-object-then-call                     39.3924+-1.4435     ?     39.6280+-2.0048        ?
   elidable-new-object-tree                          44.7834+-1.4825           44.7431+-2.2761        
   empty-string-plus-int                              5.3086+-0.2324            5.2903+-0.2062        
   emscripten-cube2hash                              38.5666+-0.9606           37.1876+-1.5146          might be 1.0371x faster
   external-arguments-getbyval                        1.2927+-0.0534     ?      1.3328+-0.1267        ? might be 1.0310x slower
   external-arguments-putbyval                        2.1014+-0.0708            2.0734+-0.1155          might be 1.0135x faster
   fixed-typed-array-storage-var-index                1.2355+-0.0565            1.2281+-0.0365        
   fixed-typed-array-storage                          0.9691+-0.1444            0.8939+-0.0462          might be 1.0841x faster
   Float32Array-matrix-mult                           4.2517+-0.0931     !      5.0407+-0.0470        ! definitely 1.1856x slower
   Float32Array-to-Float64Array-set                  58.4541+-2.8761     !     64.1847+-1.8201        ! definitely 1.0980x slower
   Float64Array-alloc-long-lived                     68.2255+-1.0884     !    134.2301+-4.0148        ! definitely 1.9674x slower
   Float64Array-to-Int16Array-set                    69.8218+-2.5428     !     82.9570+-3.9490        ! definitely 1.1881x slower
   fold-double-to-int                                14.5782+-1.5237     ?     14.9761+-1.2871        ? might be 1.0273x slower
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     10.4859+-0.7349     ?     10.8909+-0.6563        ? might be 1.0386x slower
   fold-get-by-id-to-multi-get-by-offset              9.5851+-0.6564            9.4779+-0.9006          might be 1.0113x faster
   fold-multi-get-by-offset-to-get-by-offset   
                                                      8.9248+-0.9236            7.6488+-1.7420          might be 1.1668x faster
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      8.4383+-1.0385     ?      8.4838+-0.8313        ?
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      7.6959+-0.9565            7.6415+-0.8026        
   fold-multi-put-by-offset-to-put-by-offset   
                                                      4.4022+-0.3573     ?      4.9880+-0.5305        ? might be 1.1331x slower
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                      9.5805+-1.3161            9.2419+-0.5965          might be 1.0366x faster
   fold-put-by-id-to-multi-put-by-offset              8.7837+-0.3902     ?      8.8747+-0.7326        ? might be 1.0104x slower
   fold-put-structure                                 5.2815+-0.2719     ?      5.5278+-0.7908        ? might be 1.0466x slower
   for-of-iterate-array-entries                       5.7706+-0.3743     ?      5.9722+-0.7588        ? might be 1.0349x slower
   for-of-iterate-array-keys                          2.7918+-0.0305     ?      2.8633+-0.2045        ? might be 1.0256x slower
   for-of-iterate-array-values                        2.4502+-0.0516     ?      2.5372+-0.0771        ? might be 1.0355x slower
   fround                                            19.7769+-0.8490     ?     20.1560+-1.9624        ? might be 1.0192x slower
   ftl-library-inlining-dataview                     69.5669+-3.7552     ?     72.5727+-3.2062        ? might be 1.0432x slower
   ftl-library-inlining                              68.0919+-5.8361     ?     86.4943+-19.2504       ? might be 1.2703x slower
   function-dot-apply                                 1.4270+-0.0713     ?      1.4848+-0.0868        ? might be 1.0405x slower
   function-test                                      3.3230+-0.0349            3.3216+-0.0805        
   function-with-eval                               116.4371+-2.9604     ?    118.1788+-4.8629        ? might be 1.0150x slower
   gcse-poly-get-less-obvious                        19.9911+-1.9644           19.5193+-2.4473          might be 1.0242x faster
   gcse-poly-get                                     22.6287+-1.2189     ?     22.6932+-2.5801        ?
   gcse                                               4.3161+-0.1181            4.2794+-0.0781        
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.7213+-0.0482     ?      2.7402+-0.0770        ?
   get-by-id-bimorphic-check-structure-elimination   
                                                      6.1729+-0.2830            6.0600+-0.0507          might be 1.0186x faster
   get-by-id-chain-from-try-block                    10.7787+-1.2202           10.2128+-1.4291          might be 1.0554x faster
   get-by-id-check-structure-elimination              5.0106+-0.0662            4.9877+-0.0772        
   get-by-id-proto-or-self                           17.6327+-1.5857     ?     18.2055+-1.9995        ? might be 1.0325x slower
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      2.8802+-0.0262     ?      2.9535+-0.1357        ? might be 1.0254x slower
   get-by-id-self-or-proto                           17.9494+-1.3706     ?     18.9677+-1.2284        ? might be 1.0567x slower
   get-by-val-out-of-bounds                           4.1816+-0.1696            4.1534+-0.0185        
   get_callee_monomorphic                             3.9935+-0.6877            3.8318+-0.2900          might be 1.0422x faster
   get_callee_polymorphic                             3.5280+-0.2792            3.4435+-0.2515          might be 1.0246x faster
   getter-no-activation                               4.5197+-0.3812            4.4920+-0.3195        
   getter-richards                                  122.4117+-7.8824          121.4702+-11.1709       
   getter                                             5.1069+-0.1335     ?      5.1653+-0.2230        ? might be 1.0114x slower
   global-var-const-infer-fire-from-opt               0.8751+-0.0766            0.8352+-0.0254          might be 1.0478x faster
   global-var-const-infer                             0.7947+-0.1090     ?      0.8060+-0.1067        ? might be 1.0142x slower
   HashMap-put-get-iterate-keys                      27.2985+-0.8603           27.1536+-0.4345        
   HashMap-put-get-iterate                           27.0245+-0.4352     ?     27.7152+-0.9944        ? might be 1.0256x slower
   HashMap-string-put-get-iterate                    27.4995+-0.4608           27.0775+-1.1013          might be 1.0156x faster
   hoist-make-rope                                   10.8986+-0.5091     ?     11.7653+-1.2203        ? might be 1.0795x slower
   hoist-poly-check-structure-effectful-loop   
                                                      4.8593+-0.0453            4.8525+-0.0434        
   hoist-poly-check-structure                         3.6612+-0.1106     ?      3.6876+-0.1942        ?
   imul-double-only                                   7.6360+-0.5558     ?      8.1098+-0.9204        ? might be 1.0620x slower
   imul-int-only                                      9.6540+-0.3078     ?     10.1629+-0.9201        ? might be 1.0527x slower
   imul-mixed                                         8.2721+-0.3917            7.8116+-0.3821          might be 1.0589x faster
   in-four-cases                                     19.5465+-1.2456           19.0280+-0.6362          might be 1.0273x faster
   in-one-case-false                                  9.9301+-0.1526     ?      9.9945+-0.1751        ?
   in-one-case-true                                   9.9178+-0.1594            9.8381+-0.1520        
   in-two-cases                                      10.2864+-0.2896           10.1700+-0.1969          might be 1.0114x faster
   indexed-properties-in-objects                      2.8654+-0.0470     ?      2.9208+-0.1874        ? might be 1.0194x slower
   infer-closure-const-then-mov-no-inline             3.7336+-0.0561            3.7261+-0.1211        
   infer-closure-const-then-mov                      19.4357+-0.7902           18.8259+-1.6148          might be 1.0324x faster
   infer-closure-const-then-put-to-scope-no-inline   
                                                     12.6548+-1.5165           12.4356+-0.7283          might be 1.0176x faster
   infer-closure-const-then-put-to-scope             23.6111+-1.1613     ?     23.7346+-1.7248        ?
   infer-closure-const-then-reenter-no-inline   
                                                     51.5207+-1.5447           49.1082+-1.7662          might be 1.0491x faster
   infer-closure-const-then-reenter                  19.8989+-1.4809           19.8740+-1.1173        
   infer-constant-global-property                    31.9941+-2.6781     ?     33.2666+-3.1424        ? might be 1.0398x slower
   infer-constant-property                            2.6250+-0.0544            2.6206+-0.0372        
   infer-one-time-closure-ten-vars                   12.0109+-0.2072     ?     12.3396+-0.7536        ? might be 1.0274x slower
   infer-one-time-closure-two-vars                   12.8328+-1.8168           12.0299+-0.9588          might be 1.0667x faster
   infer-one-time-closure                            11.7133+-0.4817           11.6277+-0.4958        
   infer-one-time-deep-closure                       21.8076+-1.5458           21.4972+-1.5976          might be 1.0144x faster
   inline-arguments-access                            1.3980+-0.0397            1.3788+-0.0305          might be 1.0139x faster
   inline-arguments-aliased-access                    1.6316+-0.0906     ?      1.6397+-0.0816        ?
   inline-arguments-local-escape                     13.7856+-1.7195           12.1422+-0.1829          might be 1.1354x faster
   inline-get-scoped-var                              4.1740+-0.1564            4.1435+-0.0694        
   inlined-put-by-id-transition                      10.5479+-0.7039           10.3984+-0.2812          might be 1.0144x faster
   int-or-other-abs-then-get-by-val                   4.8898+-0.0478            4.8555+-0.0647        
   int-or-other-abs-zero-then-get-by-val             17.4460+-0.9715     ?     18.5558+-1.7431        ? might be 1.0636x slower
   int-or-other-add-then-get-by-val                   4.3171+-0.1340            4.2034+-0.0956          might be 1.0271x faster
   int-or-other-add                                   5.2452+-0.1160            5.1812+-0.0404          might be 1.0124x faster
   int-or-other-div-then-get-by-val                   4.2222+-0.0437     ?      4.2812+-0.1237        ? might be 1.0140x slower
   int-or-other-max-then-get-by-val                   4.3131+-0.0294     ?      4.3654+-0.0831        ? might be 1.0121x slower
   int-or-other-min-then-get-by-val                   4.3976+-0.0323            4.3667+-0.0199        
   int-or-other-mod-then-get-by-val                   3.9048+-0.0763     ?      3.9652+-0.1755        ? might be 1.0155x slower
   int-or-other-mul-then-get-by-val                   3.8297+-0.0546     ?      3.9331+-0.2405        ? might be 1.0270x slower
   int-or-other-neg-then-get-by-val                   4.6981+-0.0221            4.6888+-0.0212        
   int-or-other-neg-zero-then-get-by-val             19.5756+-1.5472           18.1175+-1.8202          might be 1.0805x faster
   int-or-other-sub-then-get-by-val                   4.2305+-0.0370     ?      4.3155+-0.1884        ? might be 1.0201x slower
   int-or-other-sub                                   3.4218+-0.0539     ?      3.4270+-0.0459        ?
   int-overflow-local                                 4.2774+-0.0214     ?      4.3836+-0.2082        ? might be 1.0248x slower
   Int16Array-alloc-long-lived                       48.3795+-1.1625     !    116.9775+-3.4435        ! definitely 2.4179x slower
   Int16Array-bubble-sort-with-byteLength            21.1473+-1.6138           20.9348+-1.3590          might be 1.0102x faster
   Int16Array-bubble-sort                            21.5358+-1.4488     ?     21.8587+-1.4315        ? might be 1.0150x slower
   Int16Array-load-int-mul                            1.4775+-0.0224     ?      1.4834+-0.0417        ?
   Int16Array-to-Int32Array-set                      55.1340+-4.6383     !     62.8521+-2.6366        ! definitely 1.1400x slower
   Int32Array-alloc-large                            24.9858+-1.2060     ?     25.2924+-0.6240        ? might be 1.0123x slower
   Int32Array-alloc-long-lived                       53.7673+-1.8909     !    126.4333+-16.4939       ! definitely 2.3515x slower
   Int32Array-alloc                                   3.2045+-0.5075     !      9.3022+-0.6479        ! definitely 2.9029x slower
   Int32Array-Int8Array-view-alloc                    7.5383+-1.1516     ?      7.9868+-0.8453        ? might be 1.0595x slower
   int52-spill                                        6.2405+-0.0779     ?      6.4122+-0.1877        ? might be 1.0275x slower
   Int8Array-alloc-long-lived                        45.4456+-1.2396           45.1487+-1.1212        
   Int8Array-load-with-byteLength                     3.3151+-0.0514     ?      3.3340+-0.1064        ?
   Int8Array-load                                     3.3125+-0.0537     ?      3.3722+-0.1036        ? might be 1.0180x slower
   integer-divide                                    11.6768+-0.1326     ?     11.7314+-0.1118        ?
   integer-modulo                                     1.9913+-0.1124            1.9529+-0.1047          might be 1.0197x faster
   large-int-captured                                 7.0248+-0.8907            6.9187+-0.8493          might be 1.0153x faster
   large-int-neg                                     16.7248+-1.2173     ?     17.0906+-1.3964        ? might be 1.0219x slower
   large-int                                         15.8532+-1.4771           15.4820+-0.4188          might be 1.0240x faster
   logical-not                                        4.5336+-0.0972     ?      4.5854+-0.0455        ? might be 1.0114x slower
   lots-of-fields                                    10.6439+-1.1455            9.9969+-0.3037          might be 1.0647x faster
   make-indexed-storage                               2.9175+-0.0523     ?      2.9629+-0.1185        ? might be 1.0156x slower
   make-rope-cse                                      4.1684+-0.2221     ?      4.2858+-0.5441        ? might be 1.0282x slower
   marsaglia-larger-ints                             39.2186+-1.4956           38.9637+-0.3137        
   marsaglia-osr-entry                               23.6506+-1.6019           23.1045+-1.2788          might be 1.0236x faster
   max-boolean                                        2.5186+-0.1028            2.4621+-0.0224          might be 1.0229x faster
   method-on-number                                  17.2381+-1.6033           16.5872+-0.2592          might be 1.0392x faster
   min-boolean                                        2.6821+-0.5134            2.5538+-0.1153          might be 1.0502x faster
   minus-boolean-double                               3.1676+-0.0555     ?      3.2177+-0.1716        ? might be 1.0158x slower
   minus-boolean                                      2.3297+-0.0526     ?      2.3431+-0.0241        ?
   misc-strict-eq                                    39.0111+-1.9995           38.2700+-0.6152          might be 1.0194x faster
   mod-boolean-double                                11.1165+-0.1679           11.0924+-0.4197        
   mod-boolean                                        7.8316+-0.1505            7.7846+-0.0417        
   mul-boolean-double                                 3.7261+-0.1150            3.7074+-0.0586        
   mul-boolean                                        2.8921+-0.0733     ?      3.0008+-0.2376        ? might be 1.0376x slower
   neg-boolean                                        3.1819+-0.0766            3.1407+-0.0481          might be 1.0131x faster
   negative-zero-divide                               0.3337+-0.0082            0.3291+-0.0126          might be 1.0141x faster
   negative-zero-modulo                               0.3516+-0.0426            0.3461+-0.0055          might be 1.0158x faster
   negative-zero-negate                               0.3126+-0.0135     ?      0.3203+-0.0139        ? might be 1.0245x slower
   nested-function-parsing                           23.6678+-0.8656           23.3872+-0.9651          might be 1.0120x faster
   new-array-buffer-dead                              2.6480+-0.0631     ?      2.6657+-0.0347        ?
   new-array-buffer-push                              7.7949+-0.5895            7.5115+-0.6008          might be 1.0377x faster
   new-array-dead                                    12.1012+-0.3149     ?     12.2894+-0.6665        ? might be 1.0156x slower
   new-array-push                                     5.5441+-0.6130            5.3146+-0.1419          might be 1.0432x faster
   number-test                                        2.9841+-0.0595            2.9729+-0.0753        
   object-closure-call                                5.4504+-0.1075     ?      5.4687+-0.0665        ?
   object-test                                        3.0424+-0.0357     ?      3.0577+-0.0489        ?
   obvious-sink-pathology-taken                     143.0253+-3.0687     ?    143.6776+-2.6762        ?
   obvious-sink-pathology                           139.9014+-3.7380          139.2068+-2.7311        
   obviously-elidable-new-object                     33.9501+-1.1728     ?     35.3165+-1.4360        ? might be 1.0402x slower
   plus-boolean-arith                                 2.5161+-0.0284     ?      2.5201+-0.0222        ?
   plus-boolean-double                                3.2586+-0.1901            3.1591+-0.0495          might be 1.0315x faster
   plus-boolean                                       2.3835+-0.0217            2.3811+-0.0220        
   poly-chain-access-different-prototypes-simple   
                                                      3.2699+-0.0643     ?      3.2849+-0.0235        ?
   poly-chain-access-different-prototypes             2.5390+-0.2473     ?      2.6463+-0.2876        ? might be 1.0422x slower
   poly-chain-access-simpler                          3.2838+-0.0521     ?      3.2993+-0.0575        ?
   poly-chain-access                                  2.7463+-0.0781     ?      2.7716+-0.0810        ?
   poly-stricteq                                     58.5882+-1.3996     ?     59.7712+-1.5602        ? might be 1.0202x slower
   polymorphic-array-call                             1.8600+-0.1043            1.7675+-0.0275          might be 1.0524x faster
   polymorphic-get-by-id                              3.1406+-0.0920     ?      3.1923+-0.1341        ? might be 1.0165x slower
   polymorphic-put-by-id                             30.0338+-2.0337           30.0035+-2.2549        
   polymorphic-structure                             16.1237+-1.5043           14.9755+-0.2461          might be 1.0767x faster
   polyvariant-monomorphic-get-by-id                  8.5378+-0.1801            8.5188+-0.1050        
   proto-getter-access                                9.6822+-0.2914            9.5739+-0.1333          might be 1.0113x faster
   put-by-id-replace-and-transition                   8.6855+-0.4040            8.5883+-0.2173          might be 1.0113x faster
   put-by-id-slightly-polymorphic                     2.8319+-0.0540     ?      2.8479+-0.0527        ?
   put-by-id                                         13.0806+-0.7095     ?     13.1803+-0.5893        ?
   put-by-val-direct                                  0.5483+-0.0107     ?      0.5563+-0.0107        ? might be 1.0147x slower
   put-by-val-large-index-blank-indexing-type   
                                                      6.1962+-0.6805            6.1951+-0.7237        
   put-by-val-machine-int                             2.5099+-0.0133     !      5.5358+-0.1947        ! definitely 2.2056x slower
   rare-osr-exit-on-local                            14.9390+-0.6329     ?     15.2590+-1.1075        ? might be 1.0214x slower
   register-pressure-from-osr                        21.8924+-0.1230           21.7836+-0.5555        
   setter                                             5.2586+-0.0953            5.1667+-0.1546          might be 1.0178x faster
   simple-activation-demo                            26.1979+-1.8037     ?     26.6113+-1.6349        ? might be 1.0158x slower
   simple-getter-access                              12.8826+-0.8359           12.7462+-0.9038          might be 1.0107x faster
   simple-poly-call-nested                            8.0169+-0.2423     ?      8.0260+-0.4032        ?
   simple-poly-call                                   1.2127+-0.0246     ?      1.2519+-0.0971        ? might be 1.0323x slower
   sin-boolean                                       21.4080+-2.7987           21.2675+-2.7870        
   sinkable-new-object-dag                           70.6248+-2.6608           70.0444+-2.2542        
   sinkable-new-object-taken                         49.7336+-1.1298     ?     50.0622+-1.7758        ?
   sinkable-new-object                               39.4986+-2.1484           38.0152+-1.3297          might be 1.0390x faster
   slow-array-profile-convergence                     2.7525+-0.1317     ?      2.7702+-0.1070        ?
   slow-convergence                                   3.1757+-0.0859            3.1300+-0.0591          might be 1.0146x faster
   sparse-conditional                                 1.0975+-0.0414            1.0867+-0.0393        
   splice-to-remove                                  16.2669+-0.2364     ?     17.0596+-1.1917        ? might be 1.0487x slower
   string-char-code-at                               16.7991+-0.4978     ?     17.2823+-1.1255        ? might be 1.0288x slower
   string-concat-object                               2.3502+-0.3680            2.1676+-0.2191          might be 1.0842x faster
   string-concat-pair-object                          2.2224+-0.4796     ?      2.5049+-0.4427        ? might be 1.1271x slower
   string-concat-pair-simple                         11.2702+-1.1780           10.8129+-0.3857          might be 1.0423x faster
   string-concat-simple                              11.3358+-0.3254     ?     11.5503+-1.3039        ? might be 1.0189x slower
   string-cons-repeat                                 7.6313+-0.8740     ?      7.7265+-0.7668        ? might be 1.0125x slower
   string-cons-tower                                  7.4762+-0.9404            7.3413+-0.3000          might be 1.0184x faster
   string-equality                                   18.6333+-1.4472     ?     19.0858+-1.4626        ? might be 1.0243x slower
   string-get-by-val-big-char                         6.9763+-0.2927     ?      7.0665+-0.2846        ? might be 1.0129x slower
   string-get-by-val-out-of-bounds-insane             3.8803+-0.0766     ?      4.1521+-0.7324        ? might be 1.0701x slower
   string-get-by-val-out-of-bounds                    5.1993+-0.0810     ?      5.2216+-0.0693        ?
   string-get-by-val                                  3.2751+-0.1406     ?      3.2946+-0.0478        ?
   string-hash                                        1.9856+-0.0120     ?      2.0042+-0.0158        ?
   string-long-ident-equality                        14.7498+-0.2195     ?     15.2272+-0.3463        ? might be 1.0324x slower
   string-repeat-arith                               34.8779+-3.6760     ?     35.1596+-2.4053        ?
   string-sub                                        70.2493+-2.7303           69.2666+-3.1070          might be 1.0142x faster
   string-test                                        2.8878+-0.0531            2.8728+-0.0581        
   string-var-equality                               31.6888+-1.3291     ?     33.3819+-2.1741        ? might be 1.0534x slower
   structure-hoist-over-transitions                   2.3500+-0.0344     ?      2.3623+-0.0600        ?
   substring-concat-weird                            39.3584+-2.4579     ?     40.0370+-1.7666        ? might be 1.0172x slower
   substring-concat                                  41.7503+-1.7794           39.8837+-0.7298          might be 1.0468x faster
   substring                                         46.0614+-1.7810     ?     46.4079+-1.4951        ?
   switch-char-constant                               2.6933+-0.0298     ?      2.7015+-0.0363        ?
   switch-char                                        7.0086+-0.8838            6.2962+-0.2390          might be 1.1131x faster
   switch-constant                                   10.1568+-0.4310     ?     10.4425+-0.5088        ? might be 1.0281x slower
   switch-string-basic-big-var                       17.3322+-1.7311           15.6095+-1.2567          might be 1.1104x faster
   switch-string-basic-big                           15.9558+-2.1285           14.9291+-1.6003          might be 1.0688x faster
   switch-string-basic-var                           14.9854+-0.9332     ?     15.7466+-1.8105        ? might be 1.0508x slower
   switch-string-basic                               15.0549+-2.2516           14.4403+-1.8227          might be 1.0426x faster
   switch-string-big-length-tower-var                21.8507+-1.7290           21.1774+-1.2508          might be 1.0318x faster
   switch-string-length-tower-var                    16.8516+-1.9020           16.2882+-1.8292          might be 1.0346x faster
   switch-string-length-tower                        12.7258+-0.6479     ?     14.4002+-1.7607        ? might be 1.1316x slower
   switch-string-short                               13.6778+-1.7405           12.9697+-1.4848          might be 1.0546x faster
   switch                                            13.5416+-1.7594           13.2585+-1.9247          might be 1.0214x faster
   tear-off-arguments-simple                          1.7778+-0.0412     ?      1.7989+-0.0417        ? might be 1.0119x slower
   tear-off-arguments                                 2.6882+-0.0571            2.6562+-0.0385          might be 1.0121x faster
   temporal-structure                                12.4624+-0.8400     ?     12.5753+-0.9146        ?
   to-int32-boolean                                  13.7072+-0.3957     ?     13.7639+-0.2956        ?
   undefined-property-access                        390.2414+-5.1663          388.8454+-8.1147        
   undefined-test                                     3.0178+-0.0432            2.9982+-0.0813        
   unprofiled-licm                                   22.4699+-0.3402     ?     22.9527+-1.4431        ? might be 1.0215x slower
   weird-inlining-const-prop                          1.9775+-0.0901     ?      2.0736+-0.1217        ? might be 1.0486x slower

   <arithmetic>                                      21.3187+-0.0745           21.3086+-0.1699          might be 1.0005x faster
   <geometric> *                                      8.1629+-0.0238     !      8.2977+-0.0465        ! definitely 1.0165x slower
   <harmonic>                                         4.0151+-0.0123     ?      4.0449+-0.0257        ? might be 1.0074x slower

                                                        TipOfTree                  Varargs                                      
AsmBench:
   bigfib.cpp                                       501.5117+-4.8465     ?    501.7469+-2.4127        ?
   cray.c                                           501.2266+-141.7163        451.0122+-8.1881          might be 1.1113x faster
   dry.c                                            502.6892+-13.3196         496.4124+-15.2110         might be 1.0126x faster
   FloatMM.c                                        735.8057+-5.1917     ?    742.5267+-16.2023       ?
   gcc-loops.cpp                                   4215.1259+-38.3104    ?   4216.4792+-44.5235       ?
   n-body.c                                        1000.7433+-7.7089     ?   1006.4331+-7.0989        ?
   Quicksort.c                                      451.5618+-5.7585     ?    475.6743+-59.4393       ? might be 1.0534x slower
   stepanov_container.cpp                          3607.4513+-29.5355    ?   3647.0526+-57.3167       ? might be 1.0110x slower
   Towers.c                                         263.5458+-3.7305     ?    267.9293+-15.6823       ? might be 1.0166x slower

   <arithmetic>                                    1308.8513+-22.1903    ?   1311.6963+-11.8905       ? might be 1.0022x slower
   <geometric> *                                    818.4368+-24.3210         817.7156+-13.7320         might be 1.0009x faster
   <harmonic>                                       602.4026+-17.9361    ?    602.4821+-14.0988       ? might be 1.0001x slower

                                                        TipOfTree                  Varargs                                      
CompressionBench:
   huffman                                          506.2357+-6.7995          494.6323+-11.0881         might be 1.0235x faster
   arithmetic-simple                                422.5426+-7.1369     ?    426.2483+-4.7347        ?
   arithmetic-precise                               325.8688+-5.3953          323.8330+-1.9317        
   arithmetic-complex-precise                       323.3937+-4.7004          318.5152+-4.6211          might be 1.0153x faster
   arithmetic-precise-order-0                       463.8657+-8.9762          461.3990+-4.8314        
   arithmetic-precise-order-1                       363.3422+-6.1786     ?    364.0529+-4.8991        ?
   arithmetic-precise-order-2                       397.0428+-5.4652     ?    398.5431+-3.7641        ?
   arithmetic-simple-order-1                        452.7095+-4.8820     ?    452.7105+-5.8528        ?
   arithmetic-simple-order-2                        505.8470+-11.0134         505.4974+-8.3541        
   lz-string                                        342.2450+-6.3964     ?    351.0746+-6.2713        ? might be 1.0258x slower

   <arithmetic>                                     410.3093+-2.0180          409.6506+-1.8749          might be 1.0016x faster
   <geometric> *                                    404.7911+-1.9706          404.3671+-1.9193          might be 1.0010x faster
   <harmonic>                                       399.3305+-1.9341          399.0836+-1.9950          might be 1.0006x faster

                                                        TipOfTree                  Varargs                                      
All benchmarks:
   <arithmetic>                                     102.8410+-0.5303          102.5648+-0.2820          might be 1.0027x faster
   <geometric>                                       13.4697+-0.0420     !     13.6105+-0.0553        ! definitely 1.0105x slower
   <harmonic>                                         3.3731+-0.0091     ?      3.3865+-0.0061        ? might be 1.0040x slower

                                                        TipOfTree                  Varargs                                      
Geomean of preferred means:
   <scaled-result>                                   65.4296+-0.4684           65.3259+-0.1854          might be 1.0016x faster
Comment 22 Filip Pizlo 2015-02-16 19:19:46 PST
I figured out the performance regressions: I broke typed array constructor inlining, and this appears to only have mattered on our microbenchmarks.  I broke it accidentally as part of the refactoring I had to do in the inlining code.
Comment 23 Filip Pizlo 2015-02-16 20:25:23 PST
OK, all performance is good now.


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

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc (r180189)
"Varargs" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r180189)

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

                                                        TipOfTree                  Varargs                                      
SunSpider:
   3d-cube                                            4.8026+-0.0567     ?      4.8888+-0.1662        ? might be 1.0179x slower
   3d-morph                                           6.0504+-0.0365     ?      6.0796+-0.1231        ?
   3d-raytrace                                        7.0231+-1.9006            6.2440+-0.1291          might be 1.1248x faster
   access-binary-trees                                2.0839+-0.1252            2.0438+-0.1017          might be 1.0197x faster
   access-fannkuch                                    5.8274+-0.2128     ?      5.8317+-0.0990        ?
   access-nbody                                       2.8365+-0.1328     ?      2.8560+-0.0592        ?
   access-nsieve                                      3.7153+-0.0563     ?      3.9078+-0.6038        ? might be 1.0518x slower
   bitops-3bit-bits-in-byte                           1.5376+-0.0201            1.5277+-0.0193        
   bitops-bits-in-byte                                3.5793+-0.0653            3.4870+-0.1055          might be 1.0265x faster
   bitops-bitwise-and                                 2.0343+-0.0429     ?      2.2374+-0.4134        ? might be 1.0999x slower
   bitops-nsieve-bits                                 3.6144+-0.0658     ?      3.7081+-0.2725        ? might be 1.0259x slower
   controlflow-recursive                              2.2560+-0.1913            2.1695+-0.0268          might be 1.0399x faster
   crypto-aes                                         4.3143+-0.6121            4.1850+-0.1573          might be 1.0309x faster
   crypto-md5                                         2.6027+-0.0700     ^      2.3711+-0.0450        ^ definitely 1.0976x faster
   crypto-sha1                                        2.5798+-0.1380            2.5085+-0.1086          might be 1.0284x faster
   date-format-tofte                                  9.3044+-0.1986     ?      9.3682+-0.2732        ?
   date-format-xparb                                  5.1751+-0.1294     ?      5.2762+-0.1737        ? might be 1.0195x slower
   math-cordic                                        3.0764+-0.1308     ?      3.0803+-0.0798        ?
   math-partial-sums                                  5.6898+-0.5490            5.5437+-0.2932          might be 1.0263x faster
   math-spectral-norm                                 1.8999+-0.0328     ?      1.9185+-0.0459        ?
   regexp-dna                                         8.0837+-1.1750            7.8398+-1.2557          might be 1.0311x faster
   string-base64                                      4.5736+-0.7479            4.5356+-0.5501        
   string-fasta                                       6.3963+-0.1003     ?      6.7719+-0.6303        ? might be 1.0587x slower
   string-tagcloud                                    9.6937+-0.1574     ?      9.8830+-0.3934        ? might be 1.0195x slower
   string-unpack-code                                20.4762+-0.9067     ?     20.5898+-1.0744        ?
   string-validate-input                              4.5740+-0.0523     ?      4.8623+-0.3485        ? might be 1.0630x slower

   <arithmetic> *                                     5.1462+-0.0855            5.1429+-0.0685          might be 1.0006x faster
   <geometric>                                        4.2549+-0.0464            4.2496+-0.0609          might be 1.0012x faster
   <harmonic>                                         3.6352+-0.0379            3.6259+-0.0532          might be 1.0026x faster

                                                        TipOfTree                  Varargs                                      
LongSpider:
   3d-cube                                          908.4274+-15.4800         899.8439+-12.9558       
   3d-morph                                        1598.7533+-26.3411        1592.8800+-27.1534       
   3d-raytrace                                      774.0499+-5.4868          768.2398+-8.9377        
   access-binary-trees                             1006.7487+-6.4017         1001.7826+-6.2242        
   access-fannkuch                                  340.7502+-6.7285          329.5375+-5.4130          might be 1.0340x faster
   access-nbody                                     662.8798+-71.4904         638.2287+-8.2131          might be 1.0386x faster
   access-nsieve                                    971.4976+-11.6297         963.4171+-6.3078        
   bitops-3bit-bits-in-byte                          48.1631+-2.1012           48.1154+-2.0868        
   bitops-bits-in-byte                              118.9046+-12.2232         117.3034+-9.4061          might be 1.0137x faster
   bitops-nsieve-bits                               726.0989+-9.9088     ?    732.0344+-11.0202       ?
   controlflow-recursive                            518.3383+-8.5805          501.5930+-12.6159         might be 1.0334x faster
   crypto-aes                                       702.6232+-9.4370     ?    704.7467+-8.9687        ?
   crypto-md5                                       646.6972+-14.4554    ?    652.7996+-19.1162       ?
   crypto-sha1                                      692.9813+-9.9172     ?    698.0936+-19.8181       ?
   date-format-tofte                                814.8175+-11.2269    ?    826.4238+-34.2474       ? might be 1.0142x slower
   date-format-xparb                                787.5695+-19.9233         779.1775+-23.4253         might be 1.0108x faster
   math-cordic                                      612.5157+-6.3295          609.6938+-8.9129        
   math-partial-sums                                554.4149+-9.0186     ?    615.6208+-95.6192       ? might be 1.1104x slower
   math-spectral-norm                               593.5487+-8.4247          592.4699+-23.0137       
   string-base64                                    369.9431+-6.5546          366.3904+-4.0005        
   string-fasta                                     439.4980+-7.9096     ?    441.8711+-7.2653        ?
   string-tagcloud                                  231.9950+-5.6261          225.1798+-4.9746          might be 1.0303x faster

   <arithmetic>                                     641.8734+-3.6237          641.1565+-6.2110          might be 1.0011x faster
   <geometric> *                                    528.7052+-4.4849          527.2353+-5.1686          might be 1.0028x faster
   <harmonic>                                       347.1165+-6.9698          345.4101+-7.6724          might be 1.0049x faster

                                                        TipOfTree                  Varargs                                      
V8Spider:
   crypto                                            57.2177+-3.6804           55.5971+-1.3303          might be 1.0291x faster
   deltablue                                         85.6786+-8.1014     ?     87.7258+-4.3231        ? might be 1.0239x slower
   earley-boyer                                      47.1467+-1.8877           45.5576+-0.8665          might be 1.0349x faster
   raytrace                                          40.0444+-1.7066           38.5417+-1.1992          might be 1.0390x faster
   regexp                                            70.0061+-1.9349     ?     72.3778+-3.0744        ? might be 1.0339x slower
   richards                                          82.4088+-3.2801     ?     82.7550+-2.3680        ?
   splay                                             36.3880+-2.9921     ?     37.7218+-2.6937        ? might be 1.0367x slower

   <arithmetic>                                      59.8415+-0.9281     ?     60.0396+-0.7153        ? might be 1.0033x slower
   <geometric> *                                     56.8792+-1.0677     ?     56.8811+-0.5210        ? might be 1.0000x slower
   <harmonic>                                        54.0444+-1.4113           53.9032+-0.6379          might be 1.0026x faster

                                                        TipOfTree                  Varargs                                      
Octane:
   encrypt                                           0.24429+-0.00260          0.24011+-0.00284         might be 1.0174x faster
   decrypt                                           4.17529+-0.09454          4.15439+-0.06416       
   deltablue                                x2       0.20785+-0.00408    ?     0.20809+-0.00331       ?
   earley                                            0.71511+-0.00448          0.71203+-0.01544       
   boyer                                             5.49665+-0.08676          5.42468+-0.07401         might be 1.0133x faster
   navier-stokes                            x2       5.38262+-0.05910    ?     5.57102+-0.45325       ? might be 1.0350x slower
   raytrace                                 x2       1.21768+-0.04730    ?     1.35731+-0.28682       ? might be 1.1147x slower
   richards                                 x2       0.13823+-0.00135          0.13805+-0.00285       
   splay                                    x2       0.38471+-0.00151    ?     0.38684+-0.00514       ?
   regexp                                   x2      34.55647+-0.60553         34.34950+-0.41144       
   pdfjs                                    x2      53.59289+-0.43010    ^    52.35451+-0.54997       ^ definitely 1.0237x faster
   mandreel                                 x2      54.00938+-0.34959         53.85736+-0.46010       
   gbemu                                    x2      51.27613+-3.63519         49.20525+-3.32433         might be 1.0421x faster
   closure                                           0.58076+-0.01196    ?     0.59232+-0.00869       ? might be 1.0199x slower
   jquery                                            7.44985+-0.10619    ?     7.54808+-0.19784       ? might be 1.0132x slower
   box2d                                    x2      13.76926+-0.17888    ^    13.18605+-0.09848       ^ definitely 1.0442x faster
   zlib                                     x2     399.63437+-14.00056       398.55208+-13.00459      
   typescript                               x2     871.98271+-13.62226       871.75940+-16.42152      

   <arithmetic>                                     99.69888+-1.40204         99.35075+-1.14040         might be 1.0035x faster
   <geometric> *                                     7.21011+-0.04684    ?     7.21477+-0.07230       ? might be 1.0006x slower
   <harmonic>                                        0.76136+-0.00493    ?     0.76340+-0.00470       ? might be 1.0027x slower

                                                        TipOfTree                  Varargs                                      
Kraken:
   ai-astar                                          275.056+-6.758            274.881+-7.115         
   audio-beat-detection                              114.697+-2.225            112.416+-0.897           might be 1.0203x faster
   audio-dft                                         167.727+-7.843      ?     170.386+-8.763         ? might be 1.0159x slower
   audio-fft                                          87.381+-3.727             85.261+-1.798           might be 1.0249x faster
   audio-oscillator                                  248.447+-8.101      ?     252.176+-8.846         ? might be 1.0150x slower
   imaging-darkroom                                  148.031+-4.077            142.918+-5.047           might be 1.0358x faster
   imaging-desaturate                                 64.936+-2.599      ?      65.988+-3.548         ? might be 1.0162x slower
   imaging-gaussian-blur                             115.969+-3.640            113.935+-2.542           might be 1.0179x faster
   json-parse-financial                               48.101+-3.141             45.361+-1.662           might be 1.0604x faster
   json-stringify-tinderbox                           61.687+-3.626             58.136+-2.064           might be 1.0611x faster
   stanford-crypto-aes                                59.113+-1.579      ?      59.206+-1.492         ?
   stanford-crypto-ccm                                64.187+-2.853             55.956+-8.976           might be 1.1471x faster
   stanford-crypto-pbkdf2                            180.639+-5.349            179.536+-7.031         
   stanford-crypto-sha256-iterative                   56.741+-4.047      ?      57.864+-4.413         ? might be 1.0198x slower

   <arithmetic> *                                    120.908+-1.064            119.573+-1.267           might be 1.0112x faster
   <geometric>                                       102.763+-1.213            100.595+-1.592           might be 1.0216x faster
   <harmonic>                                         88.910+-1.396             86.228+-1.931           might be 1.0311x faster

                                                        TipOfTree                  Varargs                                      
JSRegress:
   abs-boolean                                        2.6377+-0.0478            2.6261+-0.0228        
   adapt-to-double-divide                            17.2713+-1.4470           16.8875+-0.2573          might be 1.0227x faster
   aliased-arguments-getbyval                         0.8099+-0.0128     ?      0.8441+-0.0230        ? might be 1.0423x slower
   allocate-big-object                                2.4469+-0.1833            2.4453+-0.2034        
   arity-mismatch-inlining                            0.8331+-0.0382            0.8124+-0.0204          might be 1.0255x faster
   array-access-polymorphic-structure                 6.6504+-0.8718     ?      6.7401+-0.8589        ? might be 1.0135x slower
   array-nonarray-polymorhpic-access                 36.4305+-1.6605     ?     40.2568+-9.1696        ? might be 1.1050x slower
   array-prototype-every                             90.8488+-3.6178           90.0061+-3.8067        
   array-prototype-forEach                          103.5016+-30.9499          90.2314+-3.5981          might be 1.1471x faster
   array-prototype-map                              114.6580+-4.1355     ?    117.2358+-2.7495        ? might be 1.0225x slower
   array-prototype-some                              92.2380+-3.8656           90.3232+-2.6296          might be 1.0212x faster
   array-splice-contiguous                           44.8178+-1.9957           44.2948+-1.8299          might be 1.0118x faster
   array-with-double-add                              4.0507+-0.0372            4.0458+-0.0647        
   array-with-double-increment                        3.1903+-0.0473            3.1876+-0.0722        
   array-with-double-mul-add                          5.0199+-0.0758            4.9993+-0.0399        
   array-with-double-sum                              3.2251+-0.0490            3.2149+-0.0281        
   array-with-int32-add-sub                           6.7545+-0.1483     ?      7.4878+-1.9125        ? might be 1.1086x slower
   array-with-int32-or-double-sum                     3.2842+-0.0617     ?      3.3610+-0.1915        ? might be 1.0234x slower
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     35.2952+-2.2518     ?     35.8361+-1.1746        ? might be 1.0153x slower
   ArrayBuffer-DataView-alloc-long-lived             13.9316+-1.3197     ?     14.1142+-1.0574        ? might be 1.0131x slower
   ArrayBuffer-Int32Array-byteOffset                  3.4515+-0.0448     ?      3.4736+-0.0454        ?
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     32.9243+-1.2013     ?     33.0442+-1.3008        ?
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     23.6692+-1.8182     ?     25.1093+-7.1848        ? might be 1.0608x slower
   ArrayBuffer-Int8Array-alloc-long-lived            13.0114+-0.8883     ?     13.8030+-1.5158        ? might be 1.0608x slower
   ArrayBuffer-Int8Array-alloc                       12.7911+-3.6218           11.4818+-0.8549          might be 1.1140x faster
   asmjs_bool_bug                                     7.5516+-0.1908            7.3816+-0.1379          might be 1.0230x faster
   assign-custom-setter-polymorphic                   2.9897+-0.0799     ?      3.0284+-0.0761        ? might be 1.0129x slower
   assign-custom-setter                               4.3310+-0.5341            4.1318+-0.0461          might be 1.0482x faster
   basic-set                                         10.3272+-0.2668           10.2016+-0.2047          might be 1.0123x faster
   big-int-mul                                        3.9340+-0.1285     ?      4.0498+-0.2215        ? might be 1.0294x slower
   boolean-test                                       2.9945+-0.0927            2.9519+-0.0255          might be 1.0144x faster
   branch-fold                                        3.6652+-0.0283            3.6361+-0.0452        
   by-val-generic                                     7.8883+-0.1142     ?      7.9510+-0.1299        ?
   call-spread-apply                                 16.0472+-1.5990           14.6655+-2.0460          might be 1.0942x faster
   call-spread-call                                   6.5043+-1.0307            5.7029+-0.0668          might be 1.1405x faster
   captured-assignments                               0.4437+-0.0062     ?      0.4476+-0.0042        ?
   cast-int-to-double                                 5.2476+-0.0941            5.2428+-0.0564        
   cell-argument                                      8.1771+-0.2442     ?      8.2955+-0.0698        ? might be 1.0145x slower
   cfg-simplify                                       2.8748+-0.0535     ?      2.9481+-0.0920        ? might be 1.0255x slower
   chain-getter-access                                9.7045+-0.1511            9.6715+-0.1783        
   cmpeq-obj-to-obj-other                             9.8755+-0.4111     ?     10.2097+-0.6870        ? might be 1.0338x slower
   constant-test                                      4.8528+-0.0237     ?      4.9151+-0.1290        ? might be 1.0128x slower
   DataView-custom-properties                        39.7219+-1.6810           38.8782+-1.2013          might be 1.0217x faster
   delay-tear-off-arguments-strictmode               24.7915+-2.5167           23.3879+-1.2208          might be 1.0600x faster
   deltablue-varargs                               1128.9684+-13.4659    ^    869.3823+-6.4294        ^ definitely 1.2986x faster
   destructuring-arguments                            5.2672+-0.1878            5.1293+-0.0532          might be 1.0269x faster
   destructuring-swap                                 4.9635+-0.0276            4.9562+-0.0338        
   direct-arguments-getbyval                          1.0118+-0.2122            0.9296+-0.1317          might be 1.0884x faster
   div-boolean-double                                 5.1831+-0.0671     ?      5.1976+-0.0825        ?
   div-boolean                                        7.8610+-0.3418            7.8045+-0.1431        
   double-get-by-val-out-of-bounds                    4.5775+-0.7376            4.3300+-0.2577          might be 1.0572x faster
   double-pollution-getbyval                          8.8092+-0.0545            8.8013+-0.0289        
   double-pollution-putbyoffset                       4.0352+-0.0172     ^      4.0001+-0.0146        ^ definitely 1.0088x faster
   double-to-int32-typed-array-no-inline              2.2837+-0.1089     ?      2.2909+-0.0737        ?
   double-to-int32-typed-array                        1.8899+-0.0664     ?      1.9104+-0.0481        ? might be 1.0109x slower
   double-to-uint32-typed-array-no-inline             2.3076+-0.0628            2.3043+-0.0406        
   double-to-uint32-typed-array                       1.9854+-0.0299     ?      1.9926+-0.0513        ?
   elidable-new-object-dag                           41.9845+-1.3982           41.5133+-1.0797          might be 1.0113x faster
   elidable-new-object-roflcopter                    49.6423+-2.1235           48.4762+-1.6715          might be 1.0241x faster
   elidable-new-object-then-call                     39.2714+-1.7955           39.0883+-2.0406        
   elidable-new-object-tree                          45.9883+-1.6952           43.7314+-1.4148          might be 1.0516x faster
   empty-string-plus-int                              5.3034+-0.2852     ?      5.6281+-0.8568        ? might be 1.0612x slower
   emscripten-cube2hash                              37.8470+-0.7233     ?     37.8811+-1.9372        ?
   external-arguments-getbyval                        1.3445+-0.1326            1.3093+-0.0452          might be 1.0269x faster
   external-arguments-putbyval                        2.0651+-0.0817     ?      2.4710+-0.6981        ? might be 1.1965x slower
   fixed-typed-array-storage-var-index                1.3889+-0.3333            1.2710+-0.0625          might be 1.0928x faster
   fixed-typed-array-storage                          0.9009+-0.0701     ?      0.9010+-0.0602        ?
   Float32Array-matrix-mult                           4.2402+-0.1255     ?      4.2472+-0.0959        ?
   Float32Array-to-Float64Array-set                  58.6918+-3.5148     ?     61.5549+-2.7903        ? might be 1.0488x slower
   Float64Array-alloc-long-lived                     66.2131+-1.2333     ?     66.5959+-2.3150        ?
   Float64Array-to-Int16Array-set                    71.1981+-0.6071           70.7301+-3.7265        
   fold-double-to-int                                14.2998+-1.7390     ?     14.6755+-1.3246        ? might be 1.0263x slower
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     10.5632+-1.5409     ?     10.9552+-0.4857        ? might be 1.0371x slower
   fold-get-by-id-to-multi-get-by-offset              8.5971+-0.5248     ?      9.4651+-0.5530        ? might be 1.1010x slower
   fold-multi-get-by-offset-to-get-by-offset   
                                                      8.9455+-0.9358            8.3585+-0.9818          might be 1.0702x faster
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      8.4058+-1.3022     ?      8.8861+-0.9172        ? might be 1.0571x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      7.6353+-1.7273     ?      7.8753+-0.9380        ? might be 1.0314x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                      4.8990+-0.2920            4.5053+-0.4021          might be 1.0874x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     10.2271+-1.0402            9.3031+-1.1251          might be 1.0993x faster
   fold-put-by-id-to-multi-put-by-offset              9.1123+-0.7102            8.6698+-0.6625          might be 1.0510x faster
   fold-put-structure                                 5.7914+-0.9123            5.7796+-0.6543        
   for-of-iterate-array-entries                       5.9075+-0.8253     ?      6.6237+-1.0269        ? might be 1.1212x slower
   for-of-iterate-array-keys                          2.8931+-0.1871     ?      2.9036+-0.2203        ?
   for-of-iterate-array-values                        2.6142+-0.0791     ?      2.6244+-0.2241        ?
   fround                                            19.4590+-0.4524           19.2622+-0.5047          might be 1.0102x faster
   ftl-library-inlining-dataview                     69.4948+-2.0472     ?     70.5918+-4.6007        ? might be 1.0158x slower
   ftl-library-inlining                              84.0391+-17.7823    ?     84.3176+-11.9040       ?
   function-dot-apply                                 1.4873+-0.1187     ?      1.4989+-0.0817        ?
   function-test                                      3.3677+-0.1178            3.3170+-0.0377          might be 1.0153x faster
   function-with-eval                               119.9775+-5.9320          114.4809+-2.4122          might be 1.0480x faster
   gcse-poly-get-less-obvious                        19.6985+-1.7078     ?     21.2074+-1.3506        ? might be 1.0766x slower
   gcse-poly-get                                     22.3350+-2.6810           22.2955+-1.5330        
   gcse                                               4.3015+-0.1976            4.2998+-0.1830        
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.7065+-0.0494     ?      2.7800+-0.1353        ? might be 1.0272x slower
   get-by-id-bimorphic-check-structure-elimination   
                                                      6.0774+-0.3222     ?      6.1314+-0.1992        ?
   get-by-id-chain-from-try-block                    10.5632+-1.5220            9.1527+-0.8315          might be 1.1541x faster
   get-by-id-check-structure-elimination              5.0083+-0.0573     ?      5.0472+-0.1323        ?
   get-by-id-proto-or-self                           18.5756+-2.0665           17.3213+-0.9749          might be 1.0724x faster
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      2.8789+-0.0520            2.8640+-0.0143        
   get-by-id-self-or-proto                           17.3221+-0.9450     ?     17.8546+-0.5510        ? might be 1.0307x slower
   get-by-val-out-of-bounds                           4.1611+-0.0774     ?      4.1709+-0.0703        ?
   get_callee_monomorphic                             3.7891+-0.1650            3.7732+-0.2186        
   get_callee_polymorphic                             3.4610+-0.0603            3.3940+-0.0592          might be 1.0197x faster
   getter-no-activation                               4.6043+-0.3420            4.4551+-0.4731          might be 1.0335x faster
   getter-richards                                  126.8127+-5.3953     ?    127.3516+-4.3695        ?
   getter                                             5.0455+-0.0441     ?      5.0798+-0.0714        ?
   global-var-const-infer-fire-from-opt               0.8233+-0.0358     ?      0.9151+-0.1241        ? might be 1.1114x slower
   global-var-const-infer                             0.8808+-0.1033     ^      0.7131+-0.0262        ^ definitely 1.2353x faster
   HashMap-put-get-iterate-keys                      27.1720+-0.6724     ?     27.2942+-0.4762        ?
   HashMap-put-get-iterate                           27.8050+-1.0344     ?     27.8396+-0.8134        ?
   HashMap-string-put-get-iterate                    27.1544+-1.0001           26.5079+-0.5395          might be 1.0244x faster
   hoist-make-rope                                   11.9669+-1.3628           11.3705+-0.9499          might be 1.0524x faster
   hoist-poly-check-structure-effectful-loop   
                                                      4.9547+-0.2502            4.9170+-0.1121        
   hoist-poly-check-structure                         3.6540+-0.1390            3.6132+-0.0392          might be 1.0113x faster
   imul-double-only                                   7.6957+-0.4688     ?      7.7939+-0.4535        ? might be 1.0128x slower
   imul-int-only                                     10.0865+-0.8308            9.5500+-0.1753          might be 1.0562x faster
   imul-mixed                                         7.6761+-0.3576     ?      7.9413+-0.5426        ? might be 1.0345x slower
   in-four-cases                                     18.9210+-0.2240     ?     18.9618+-0.1739        ?
   in-one-case-false                                  9.9697+-0.2412            9.8764+-0.1707        
   in-one-case-true                                   9.9499+-0.2079     ?      9.9678+-0.2899        ?
   in-two-cases                                      10.0929+-0.0543     ?     10.0970+-0.0866        ?
   indexed-properties-in-objects                      2.8582+-0.0165     ?      2.8665+-0.0620        ?
   infer-closure-const-then-mov-no-inline             3.6946+-0.0290     ?      3.7004+-0.0135        ?
   infer-closure-const-then-mov                      18.9068+-1.3999     ?     19.5348+-1.3789        ? might be 1.0332x slower
   infer-closure-const-then-put-to-scope-no-inline   
                                                     12.9336+-1.6826     ?     13.1229+-2.0299        ? might be 1.0146x slower
   infer-closure-const-then-put-to-scope             24.0260+-1.7423           23.8776+-1.7231        
   infer-closure-const-then-reenter-no-inline   
                                                     51.5336+-3.3131     ?     51.5431+-2.6450        ?
   infer-closure-const-then-reenter                  18.6663+-0.4180     ?     19.0751+-1.0524        ? might be 1.0219x slower
   infer-constant-global-property                    31.9668+-2.1745     ?     33.7634+-3.2238        ? might be 1.0562x slower
   infer-constant-property                            2.6960+-0.1349            2.6542+-0.0379          might be 1.0157x faster
   infer-one-time-closure-ten-vars                   11.9591+-0.1126     ?     12.3551+-1.3133        ? might be 1.0331x slower
   infer-one-time-closure-two-vars                   12.0148+-1.4513           11.7224+-0.3021          might be 1.0249x faster
   infer-one-time-closure                            11.8381+-0.5616           11.6703+-0.2728          might be 1.0144x faster
   infer-one-time-deep-closure                       21.3217+-1.4321           20.6117+-0.7689          might be 1.0344x faster
   inline-arguments-access                            1.4198+-0.0641     ?      1.4714+-0.1059        ? might be 1.0364x slower
   inline-arguments-aliased-access                    1.6140+-0.0440            1.6122+-0.0428        
   inline-arguments-local-escape                     12.4343+-0.4100     ?     12.5323+-0.5878        ?
   inline-get-scoped-var                              4.1412+-0.1152     ?      4.2033+-0.1242        ? might be 1.0150x slower
   inlined-put-by-id-transition                      10.2543+-0.5430     ?     10.6163+-0.8226        ? might be 1.0353x slower
   int-or-other-abs-then-get-by-val                   4.8823+-0.0420     ?      4.8839+-0.0190        ?
   int-or-other-abs-zero-then-get-by-val             17.4277+-0.4396           17.1905+-0.3863          might be 1.0138x faster
   int-or-other-add-then-get-by-val                   4.3526+-0.2856            4.2052+-0.0249          might be 1.0350x faster
   int-or-other-add                                   5.3398+-0.2020            5.2438+-0.1037          might be 1.0183x faster
   int-or-other-div-then-get-by-val                   4.2901+-0.0805     ?      4.3413+-0.2182        ? might be 1.0119x slower
   int-or-other-max-then-get-by-val                   4.4120+-0.1236            4.3840+-0.0995        
   int-or-other-min-then-get-by-val                   4.4083+-0.0691     ?      4.4243+-0.0704        ?
   int-or-other-mod-then-get-by-val                   3.9061+-0.0579            3.8982+-0.0808        
   int-or-other-mul-then-get-by-val                   3.8535+-0.0500     ?      3.8556+-0.1136        ?
   int-or-other-neg-then-get-by-val                   4.7567+-0.1728            4.7091+-0.0494          might be 1.0101x faster
   int-or-other-neg-zero-then-get-by-val             18.8747+-1.7125           17.9097+-1.5164          might be 1.0539x faster
   int-or-other-sub-then-get-by-val                   4.4021+-0.4287            4.3807+-0.3143        
   int-or-other-sub                                   3.4543+-0.0444     ?      3.5116+-0.1983        ? might be 1.0166x slower
   int-overflow-local                                 4.3218+-0.1094            4.3100+-0.0753        
   Int16Array-alloc-long-lived                       49.8179+-2.4099           48.9523+-1.5323          might be 1.0177x faster
   Int16Array-bubble-sort-with-byteLength            21.7593+-1.0312     ^     20.1429+-0.3934        ^ definitely 1.0802x faster
   Int16Array-bubble-sort                            21.5291+-1.0514     ?     22.0817+-1.5141        ? might be 1.0257x slower
   Int16Array-load-int-mul                            1.5117+-0.1035            1.4672+-0.0157          might be 1.0303x faster
   Int16Array-to-Int32Array-set                      54.9065+-2.9240     ?     54.9702+-2.3688        ?
   Int32Array-alloc-large                            24.8816+-0.7255     ?     24.9344+-0.7280        ?
   Int32Array-alloc-long-lived                       54.4545+-1.4576           54.3951+-2.4334        
   Int32Array-alloc                                   3.1705+-0.3587     ?      3.4528+-0.4989        ? might be 1.0890x slower
   Int32Array-Int8Array-view-alloc                    7.0433+-0.6846     ?      7.2664+-0.9452        ? might be 1.0317x slower
   int52-spill                                        6.4556+-0.3497            6.3528+-0.0827          might be 1.0162x faster
   Int8Array-alloc-long-lived                        46.5347+-2.1107           45.5233+-1.8827          might be 1.0222x faster
   Int8Array-load-with-byteLength                     3.3068+-0.0344            3.3063+-0.0499        
   Int8Array-load                                     3.2994+-0.0341     ?      3.4365+-0.1332        ? might be 1.0416x slower
   integer-divide                                    11.7507+-0.2107           11.7002+-0.2199        
   integer-modulo                                     2.0112+-0.1142     ?      2.0341+-0.2376        ? might be 1.0114x slower
   large-int-captured                                 7.5880+-2.3251            7.5860+-1.1380        
   large-int-neg                                     17.2301+-1.3705           17.0892+-0.6020        
   large-int                                         15.9727+-1.1895           15.3453+-0.4287          might be 1.0409x faster
   logical-not                                        4.5341+-0.0633     ?      4.5882+-0.0225        ? might be 1.0119x slower
   lots-of-fields                                    10.4685+-0.4544           10.1754+-0.9127          might be 1.0288x faster
   make-indexed-storage                               2.8998+-0.1815     ?      2.9312+-0.3173        ? might be 1.0108x slower
   make-rope-cse                                      4.2317+-0.4311     ?      4.4452+-0.5021        ? might be 1.0504x slower
   marsaglia-larger-ints                             39.3074+-1.4513     ?     40.5042+-1.7863        ? might be 1.0304x slower
   marsaglia-osr-entry                               23.2778+-0.9720           23.1380+-1.5516        
   max-boolean                                        2.4907+-0.0229     ?      2.5090+-0.0349        ?
   method-on-number                                  17.3437+-0.9687     ?     17.9661+-2.0800        ? might be 1.0359x slower
   min-boolean                                        2.5390+-0.0973     ?      2.5396+-0.0908        ?
   minus-boolean-double                               3.1490+-0.0499            3.1427+-0.0506        
   minus-boolean                                      2.3213+-0.0191     ?      2.3464+-0.0802        ? might be 1.0108x slower
   misc-strict-eq                                    37.5551+-0.9933     ?     37.9972+-0.8613        ? might be 1.0118x slower
   mod-boolean-double                                11.4840+-0.7778           11.0885+-0.2404          might be 1.0357x faster
   mod-boolean                                        7.8508+-0.0883            7.8348+-0.1187        
   mul-boolean-double                                 3.7596+-0.1519     ?      3.7598+-0.1750        ?
   mul-boolean                                        2.8548+-0.0688     ?      2.8892+-0.1166        ? might be 1.0121x slower
   neg-boolean                                        3.1613+-0.0477            3.1405+-0.0380        
   negative-zero-divide                               0.3408+-0.0189            0.3299+-0.0114          might be 1.0331x faster
   negative-zero-modulo                               0.3334+-0.0127     ?      0.3488+-0.0213        ? might be 1.0461x slower
   negative-zero-negate                               0.3169+-0.0064     ?      0.3278+-0.0405        ? might be 1.0342x slower
   nested-function-parsing                           23.5352+-0.1019           23.4799+-0.9589        
   new-array-buffer-dead                              2.7483+-0.1310            2.6801+-0.0394          might be 1.0254x faster
   new-array-buffer-push                              8.2676+-0.8416            7.6698+-0.8276          might be 1.0779x faster
   new-array-dead                                    12.1735+-0.3248           12.0669+-0.4827        
   new-array-push                                     5.4013+-0.1063            5.2916+-0.0714          might be 1.0207x faster
   number-test                                        2.9772+-0.0615            2.9765+-0.0559        
   object-closure-call                                5.5044+-0.2078     ?      5.5243+-0.0994        ?
   object-test                                        3.0634+-0.1277     ?      3.0794+-0.0765        ?
   obvious-sink-pathology-taken                     143.5330+-2.6452          143.0437+-3.2482        
   obvious-sink-pathology                           138.1538+-3.4589     ?    141.8939+-3.4854        ? might be 1.0271x slower
   obviously-elidable-new-object                     36.4009+-1.1042           34.4602+-1.2098          might be 1.0563x faster
   plus-boolean-arith                                 2.5179+-0.0634            2.4967+-0.0285        
   plus-boolean-double                                3.1927+-0.0948            3.1597+-0.0352          might be 1.0105x faster
   plus-boolean                                       2.3813+-0.0353            2.3586+-0.0290        
   poly-chain-access-different-prototypes-simple   
                                                      3.2906+-0.0517            3.2365+-0.0194          might be 1.0167x faster
   poly-chain-access-different-prototypes             2.5929+-0.2615            2.5549+-0.3371          might be 1.0149x faster
   poly-chain-access-simpler                          3.3089+-0.0614     ?      3.3249+-0.0838        ?
   poly-chain-access                                  2.7039+-0.1782            2.5198+-0.2480          might be 1.0731x faster
   poly-stricteq                                     62.1642+-1.0595           61.3830+-3.6927          might be 1.0127x faster
   polymorphic-array-call                             1.8458+-0.0217     ?      1.8738+-0.1097        ? might be 1.0151x slower
   polymorphic-get-by-id                              3.0846+-0.0460     ?      3.1541+-0.0999        ? might be 1.0225x slower
   polymorphic-put-by-id                             31.3785+-2.8477           30.3222+-1.6786          might be 1.0348x faster
   polymorphic-structure                             16.0190+-1.5044           14.8763+-0.1985          might be 1.0768x faster
   polyvariant-monomorphic-get-by-id                  8.4245+-0.0449     ?      8.4300+-0.0834        ?
   proto-getter-access                                9.6556+-0.1671            9.6091+-0.2301        
   put-by-id-replace-and-transition                   8.5211+-0.2216     ?      8.7251+-0.3925        ? might be 1.0239x slower
   put-by-id-slightly-polymorphic                     2.8475+-0.0471            2.8003+-0.0350          might be 1.0169x faster
   put-by-id                                         12.9555+-0.4101     ?     13.0852+-0.7559        ? might be 1.0100x slower
   put-by-val-direct                                  0.5490+-0.0293            0.5399+-0.0260          might be 1.0167x faster
   put-by-val-large-index-blank-indexing-type   
                                                      5.8709+-0.7326     ?      6.2231+-0.8885        ? might be 1.0600x slower
   put-by-val-machine-int                             2.5232+-0.0126     ?      2.5819+-0.1383        ? might be 1.0233x slower
   rare-osr-exit-on-local                            14.8328+-0.3666           14.7714+-0.2581        
   register-pressure-from-osr                        22.7411+-1.3536           22.1397+-0.6402          might be 1.0272x faster
   setter                                             5.4062+-0.4073            5.2198+-0.2041          might be 1.0357x faster
   simple-activation-demo                            26.8653+-1.9951           26.3792+-2.2680          might be 1.0184x faster
   simple-getter-access                              12.4102+-0.2023     ?     12.7237+-0.3486        ? might be 1.0253x slower
   simple-poly-call-nested                            8.0687+-0.1532     ?      8.2702+-0.3396        ? might be 1.0250x slower
   simple-poly-call                                   1.2332+-0.0905     ?      1.2427+-0.0739        ?
   sin-boolean                                       21.9297+-2.6684     ?     23.2614+-3.2645        ? might be 1.0607x slower
   sinkable-new-object-dag                           69.7868+-2.5697           68.2832+-1.5299          might be 1.0220x faster
   sinkable-new-object-taken                         51.3703+-2.9684     ?     54.8672+-11.2974       ? might be 1.0681x slower
   sinkable-new-object                               38.0990+-1.3234           37.8446+-1.0050        
   slow-array-profile-convergence                     2.8228+-0.2243            2.7380+-0.0521          might be 1.0310x faster
   slow-convergence                                   3.2226+-0.1327            3.1775+-0.0555          might be 1.0142x faster
   sparse-conditional                                 1.0735+-0.0129     ?      1.1053+-0.0450        ? might be 1.0296x slower
   splice-to-remove                                  18.4343+-1.1731           18.2231+-1.3219          might be 1.0116x faster
   string-char-code-at                               17.2371+-1.2694     ?     17.4187+-1.5697        ? might be 1.0105x slower
   string-concat-object                               2.4487+-0.3330            2.3981+-0.5376          might be 1.0211x faster
   string-concat-pair-object                          2.4323+-0.4084            2.2473+-0.3172          might be 1.0823x faster
   string-concat-pair-simple                         11.5662+-2.4361           10.9451+-1.1738          might be 1.0567x faster
   string-concat-simple                              11.5237+-0.9203           11.1984+-1.1504          might be 1.0290x faster
   string-cons-repeat                                 7.4022+-0.5285     ?      8.1506+-1.1613        ? might be 1.1011x slower
   string-cons-tower                                  7.5127+-0.4463            7.4622+-0.8353        
   string-equality                                   21.0863+-3.3804           19.1524+-1.9284          might be 1.1010x faster
   string-get-by-val-big-char                         6.8618+-0.0341     ?      7.9143+-2.3952        ? might be 1.1534x slower
   string-get-by-val-out-of-bounds-insane             4.5302+-1.5902            3.7760+-0.0904          might be 1.1998x faster
   string-get-by-val-out-of-bounds                    5.1728+-0.0918     ?      5.2310+-0.0974        ? might be 1.0113x slower
   string-get-by-val                                  3.1812+-0.0686            3.1576+-0.0323        
   string-hash                                        2.0377+-0.0781            2.0217+-0.0260        
   string-long-ident-equality                        15.4439+-0.9705     ?     15.5222+-0.8648        ?
   string-repeat-arith                               33.8103+-2.0808     ?     34.3999+-1.8125        ? might be 1.0174x slower
   string-sub                                        70.6002+-2.7559           67.9901+-2.0423          might be 1.0384x faster
   string-test                                        2.9440+-0.1276            2.9291+-0.1129        
   string-var-equality                               32.8765+-2.1384           32.8169+-2.6278        
   structure-hoist-over-transitions                   2.3757+-0.0726            2.3644+-0.0328        
   substring-concat-weird                            41.3951+-1.6361           40.6172+-1.3000          might be 1.0192x faster
   substring-concat                                  41.9649+-1.8279     ?     42.6056+-2.1366        ? might be 1.0153x slower
   substring                                         46.5783+-2.2780     ?     47.5019+-2.0320        ? might be 1.0198x slower
   switch-char-constant                               2.6879+-0.0301     ?      2.8632+-0.4446        ? might be 1.0652x slower
   switch-char                                        7.0628+-0.7787            6.9147+-0.6594          might be 1.0214x faster
   switch-constant                                    9.9967+-0.2589            9.6079+-0.8337          might be 1.0405x faster
   switch-string-basic-big-var                       16.4856+-1.4392     ?     16.5869+-1.1903        ?
   switch-string-basic-big                           16.6488+-1.0362           14.7524+-1.5907          might be 1.1285x faster
   switch-string-basic-var                           15.2552+-1.0387     ?     15.6516+-1.5815        ? might be 1.0260x slower
   switch-string-basic                               15.6749+-1.6268           15.3260+-1.3779          might be 1.0228x faster
   switch-string-big-length-tower-var                21.1968+-1.4002           20.3350+-1.4833          might be 1.0424x faster
   switch-string-length-tower-var                    15.6240+-1.4799           14.9983+-0.5767          might be 1.0417x faster
   switch-string-length-tower                        13.0468+-1.1253     ?     14.1802+-1.6277        ? might be 1.0869x slower
   switch-string-short                               14.1847+-1.9313           12.4224+-0.0933          might be 1.1419x faster
   switch                                            14.3986+-1.7643           11.9808+-1.9113          might be 1.2018x faster
   tear-off-arguments-simple                          1.8053+-0.0314     ?      1.8132+-0.0251        ?
   tear-off-arguments                                 2.6222+-0.0492     ?      2.9440+-0.7427        ? might be 1.1227x slower
   temporal-structure                                12.7605+-1.5458           12.4714+-0.8558          might be 1.0232x faster
   to-int32-boolean                                  13.9764+-0.6531           13.9762+-1.0175        
   undefined-property-access                        399.4307+-6.0751          395.6478+-8.7134        
   undefined-test                                     3.0486+-0.1243            3.0361+-0.1414        
   unprofiled-licm                                   22.8896+-0.7671     ?     24.1981+-2.2013        ? might be 1.0572x slower
   weird-inlining-const-prop                          2.1449+-0.1418            2.0306+-0.0915          might be 1.0563x faster

   <arithmetic>                                      21.6450+-0.2338     ^     20.6024+-0.0993        ^ definitely 1.0506x faster
   <geometric> *                                      8.2254+-0.0310            8.1837+-0.0384          might be 1.0051x faster
   <harmonic>                                         4.0410+-0.0231            4.0312+-0.0445          might be 1.0024x faster

                                                        TipOfTree                  Varargs                                      
AsmBench:
   bigfib.cpp                                       509.9665+-3.4647          508.5284+-4.5365        
   cray.c                                           462.3071+-15.9530         455.0837+-4.8121          might be 1.0159x faster
   dry.c                                            522.3138+-8.9570          519.0764+-11.7603       
   FloatMM.c                                        759.7880+-14.7970         754.8067+-8.4566        
   gcc-loops.cpp                                   4350.9079+-27.7889        4349.3158+-17.0638       
   n-body.c                                        1044.2198+-7.0197         1029.9733+-18.1867         might be 1.0138x faster
   Quicksort.c                                      465.0140+-6.2040          461.1965+-10.5657       
   stepanov_container.cpp                          3703.3679+-37.8267        3690.2519+-27.8405       
   Towers.c                                         272.8492+-6.6793          271.8270+-7.0600        

   <arithmetic>                                    1343.4149+-6.5278         1337.7844+-6.8570          might be 1.0042x faster
   <geometric> *                                    836.0450+-6.1720          830.4153+-6.7441          might be 1.0068x faster
   <harmonic>                                       615.1226+-6.4918          610.7100+-6.4641          might be 1.0072x faster

                                                        TipOfTree                  Varargs                                      
CompressionBench:
   huffman                                          523.4119+-14.7566    ?    533.9702+-6.5180        ? might be 1.0202x slower
   arithmetic-simple                                438.0364+-10.2581         435.5862+-10.6094       
   arithmetic-precise                               329.2513+-6.3226     ?    335.0275+-5.9349        ? might be 1.0175x slower
   arithmetic-complex-precise                       329.5603+-10.3139    ?    344.8861+-56.4117       ? might be 1.0465x slower
   arithmetic-precise-order-0                       471.9719+-9.3184     ?    473.6711+-10.0789       ?
   arithmetic-precise-order-1                       377.0987+-5.4909     ?    405.3004+-77.1429       ? might be 1.0748x slower
   arithmetic-precise-order-2                       412.9557+-6.1838          409.1986+-10.6570       
   arithmetic-simple-order-1                        465.3090+-6.0304     ?    467.9609+-6.0845        ?
   arithmetic-simple-order-2                        515.0670+-9.5275          509.0608+-10.1933         might be 1.0118x faster
   lz-string                                        351.5260+-3.4569     ?    363.1371+-9.3085        ? might be 1.0330x slower

   <arithmetic>                                     421.4188+-3.2817     ?    427.7799+-8.9411        ? might be 1.0151x slower
   <geometric> *                                    415.6298+-3.0339     ?    421.9763+-8.8476        ? might be 1.0153x slower
   <harmonic>                                       409.8505+-2.9327     ?    416.1544+-8.8038        ? might be 1.0154x slower

                                                        TipOfTree                  Varargs                                      
All benchmarks:
   <arithmetic>                                     105.0415+-0.4271          104.2315+-0.4958          might be 1.0078x faster
   <geometric>                                       13.6197+-0.0349           13.5614+-0.0464          might be 1.0043x faster
   <harmonic>                                         3.4227+-0.0150            3.4201+-0.0182          might be 1.0008x faster

                                                        TipOfTree                  Varargs                                      
Geomean of preferred means:
   <scaled-result>                                   66.5657+-0.2350           66.4780+-0.3541          might be 1.0013x faster
Comment 24 Filip Pizlo 2015-02-16 20:49:09 PST
Created attachment 246722 [details]
towards 32-bit support

Implemented 32-bit support, but it's still failing a lot of tests.
Comment 25 Filip Pizlo 2015-02-16 21:15:51 PST
Created attachment 246724 [details]
x86 32-bit and 64-bit pass all tests

I still have to do minor tweaks for ARM, but it's ready for review.
Comment 26 WebKit Commit Bot 2015-02-16 21:18:10 PST
Attachment 246724 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:689:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:674:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1417:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1426:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1439:  An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement.  [readability/control_flow] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1526:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.cpp:1254:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.cpp:1271:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/bytecode/CallLinkStatus.cpp:298:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/JavaScriptCore/jit/JITCall.cpp:191:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:54:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:123:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:134:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:142:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:475:  The parameter name "node" adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:476:  The parameter name "node" adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 16 in 88 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 27 Oliver Hunt 2015-02-17 08:46:47 PST
Comment on attachment 246724 [details]
x86 32-bit and 64-bit pass all tests

y u so big :-/

r=me
Comment 28 Csaba Osztrogonác 2015-02-17 09:26:52 PST
I tested the latest patch and it doesn't build on ARMv7 Linux. Could you
possibly give us a little bit time (max a day) to fix before landing?
Comment 29 Csaba Osztrogonác 2015-02-17 09:30:49 PST
(In reply to comment #28)
> I tested the latest patch and it doesn't build on ARMv7 Linux. Could you
> possibly give us a little bit time (max a day) to fix before landing?

At least helpers are missing from Source/JavaScriptCore/jit/CCallHelpers.h,
I don't know if there is any issue later, but I'm on it.
Comment 30 Csaba Osztrogonác 2015-02-17 10:20:33 PST
I fixed the ARM Linux build in bug141714, please review 
and land it before landing this patch. Thanks.

Additionally I started JSC tests, it is still running, but no regression at 10% .
Comment 31 Filip Pizlo 2015-02-17 10:36:07 PST
(In reply to comment #28)
> I tested the latest patch and it doesn't build on ARMv7 Linux. Could you
> possibly give us a little bit time (max a day) to fix before landing?

In the past, the way we worked this out was that I CC'd you on the bug before landing and then you would fix after.

Are you proposing a change to this?
Comment 32 Csaba Osztrogonác 2015-02-17 10:38:17 PST
(In reply to comment #31)
> (In reply to comment #28)
> > I tested the latest patch and it doesn't build on ARMv7 Linux. Could you
> > possibly give us a little bit time (max a day) to fix before landing?
> 
> In the past, the way we worked this out was that I CC'd you on the bug
> before landing and then you would fix after.
> 
> Are you proposing a change to this?

Nope, I thought it is a bigger change, but I already fixed it. ;)
Comment 33 Csaba Osztrogonác 2015-02-17 10:42:26 PST
I noticed it wasn't ARM Linux specific build issue,
it was exactly same as the iOS EWS noticed.
Comment 34 Filip Pizlo 2015-02-17 11:10:22 PST
Created attachment 246757 [details]
closer to landing

Fixed some debug asserts and crashes.  Still need to deal with some ARMs.
Comment 35 WebKit Commit Bot 2015-02-17 11:12:53 PST
Attachment 246757 [details] did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:689:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:674:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1417:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1526:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.cpp:1254:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGGraph.cpp:1271:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/bytecode/CallLinkStatus.cpp:298:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:54:  Comma should be at the beginning of the line in a member initialization list.  [whitespace/init] [4]
ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:123:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:134:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:142:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 11 in 94 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 36 Filip Pizlo 2015-02-18 09:06:36 PST
Created attachment 246819 [details]
ARM64 works
Comment 37 Filip Pizlo 2015-02-18 11:57:08 PST
Landed in http://trac.webkit.org/changeset/180279