Bug 74835 - DFG is too sloppy with register allocation
Summary: DFG is too sloppy with register allocation
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2011-12-18 20:25 PST by Filip Pizlo
Modified: 2011-12-18 22:36 PST (History)
0 users

See Also:


Attachments
the patch (10.77 KB, patch)
2011-12-18 20:54 PST, Filip Pizlo
barraclough: review+
Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Filip Pizlo 2011-12-18 20:25:58 PST
The DFG compiler sometimes keeps things in registers longer than it should, and doesn't assert aggressively enough that its register allocation discipline makes any sense.

<rdar://problem/10599330>
Comment 1 Filip Pizlo 2011-12-18 20:26:34 PST
Performance on 64-bit



Benchmark report for SunSpider, V8, and Kraken on bigmac (MacPro5,1).

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r103205)
"FixRegAllox" at /Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/jsc (r103205)

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

                                            TipOfTree              FixRegAllox                                   
SunSpider:
   3d-cube                                6.2415+-0.0296          6.2226+-0.0214       
   3d-morph                               8.4986+-0.1461          8.3180+-0.0478         might be 1.0217x faster
   3d-raytrace                            7.5847+-0.0637    ?     7.6225+-0.1090       ?
   access-binary-trees                    1.6184+-0.0109          1.6118+-0.0045       
   access-fannkuch                        7.5383+-0.0054    ?     7.5451+-0.0073       ?
   access-nbody                           3.9539+-0.0091          3.9465+-0.0128       
   access-nsieve                          3.2099+-0.0431    ?     3.2124+-0.0376       ?
   bitops-3bit-bits-in-byte               1.2578+-0.0161          1.2466+-0.0105       
   bitops-bits-in-byte                    5.0772+-0.0226          5.0664+-0.0239       
   bitops-bitwise-and                     3.2899+-0.0053          3.2888+-0.0043       
   bitops-nsieve-bits                     5.6547+-0.0446          5.6138+-0.0276       
   controlflow-recursive                  2.3483+-0.0259    ?     2.3617+-0.0223       ?
   crypto-aes                             7.5875+-0.0427          7.5685+-0.0386       
   crypto-md5                             2.4906+-0.0224    ?     2.5017+-0.0261       ?
   crypto-sha1                            2.2310+-0.0161    ?     2.2370+-0.0231       ?
   date-format-tofte                     10.5841+-0.0644         10.4793+-0.0767         might be 1.0100x faster
   date-format-xparb                     10.1877+-0.2496    ^     9.7576+-0.1500       ^ definitely 1.0441x faster
   math-cordic                            7.1462+-0.0251          7.1226+-0.0195       
   math-partial-sums                     10.3879+-0.0173    ?    10.4673+-0.0986       ?
   math-spectral-norm                     2.6406+-0.0035    ?     2.6631+-0.0277       ?
   regexp-dna                             8.8241+-0.0191    ?     8.8605+-0.0825       ?
   string-base64                          4.2716+-0.0189    ?     4.2797+-0.0151       ?
   string-fasta                           7.3972+-0.1232          7.2546+-0.0344         might be 1.0197x faster
   string-tagcloud                       12.4045+-0.0676    ?    12.4642+-0.0452       ?
   string-unpack-code                    20.3879+-0.0666    ?    20.5254+-0.0992       ?
   string-validate-input                  5.5163+-0.0353    ?     5.5835+-0.0390       ? might be 1.0122x slower

   <arithmetic> *                         6.4742+-0.0195          6.4547+-0.0185         might be 1.0030x faster
   <geometric>                            5.2756+-0.0171          5.2631+-0.0167         might be 1.0024x faster
   <harmonic>                             4.1889+-0.0164          4.1826+-0.0157         might be 1.0015x faster

                                            TipOfTree              FixRegAllox                                   
V8:
   crypto                                76.9500+-0.1898    ?    77.0115+-0.2233       ?
   deltablue                            169.8515+-0.5094    ?   170.5953+-0.9752       ?
   earley-boyer                          99.2693+-1.3206         99.0097+-1.2394       
   raytrace                              52.3763+-0.3498    ?    52.5079+-0.3731       ?
   regexp                               122.5183+-0.4655    !   123.5123+-0.4026       ! definitely 1.0081x slower
   richards                             140.3176+-0.8017        139.5973+-0.8194       
   splay                                 91.5850+-3.0501         90.0657+-0.8446         might be 1.0169x faster

   <arithmetic>                         107.5526+-0.4720        107.4714+-0.2578         might be 1.0008x faster
   <geometric> *                        100.9514+-0.5162        100.8392+-0.2470         might be 1.0011x faster
   <harmonic>                            94.2317+-0.5136         94.1332+-0.2461         might be 1.0010x faster

                                            TipOfTree              FixRegAllox                                   
Kraken:
   ai-astar                             807.8613+-12.3133       807.7542+-13.0338      
   audio-beat-detection                 191.4026+-2.9822        189.8475+-1.1770       
   audio-dft                            278.2161+-1.9174        275.7080+-2.9470       
   audio-fft                            118.6202+-1.6812        118.2027+-0.8468       
   audio-oscillator                     281.4815+-2.6395        279.0403+-0.3853       
   imaging-darkroom                     299.5302+-5.5458    ?   300.7372+-5.8153       ?
   imaging-desaturate                   237.7154+-0.1280        237.5794+-0.0961       
   imaging-gaussian-blur                520.4992+-0.4187        520.3533+-0.4624       
   json-parse-financial                  71.3050+-0.4063         70.9569+-0.1153       
   json-stringify-tinderbox              82.1325+-0.3451         82.0580+-0.2758       
   stanford-crypto-aes                  117.2481+-0.8390    ?   117.7502+-0.7447       ?
   stanford-crypto-ccm                  112.3163+-0.4701    !   113.9508+-0.7557       ! definitely 1.0146x slower
   stanford-crypto-pbkdf2               229.0775+-1.2323    ?   229.5788+-0.8270       ?
   stanford-crypto-sha256-iterative      95.3843+-0.2308    ?    95.8788+-0.4132       ?

   <arithmetic> *                       245.9136+-0.9030        245.6711+-1.1304         might be 1.0010x faster
   <geometric>                          191.5584+-0.3163        191.4799+-0.4247         might be 1.0004x faster
   <harmonic>                           155.5540+-0.2637    ?   155.6007+-0.2172       ? might be 1.0003x slower

                                            TipOfTree              FixRegAllox                                   
All benchmarks:
   <arithmetic>                          92.8508+-0.2536         92.7557+-0.3255         might be 1.0010x faster
   <geometric>                           23.8709+-0.0549         23.8329+-0.0536         might be 1.0016x faster
   <harmonic>                             7.3769+-0.0282          7.3661+-0.0271         might be 1.0015x faster

                                            TipOfTree              FixRegAllox                                   
Geomean of preferred means:
   <scaled-result>                       54.3696+-0.1325         54.2769+-0.1142         might be 1.0017x faster

Running locally...
376/376                                                          
Generating benchmark report at TipOfTree_FixRegAllox_SunSpiderV8Kraken_nitroflex_20111218_2023_benchReport.txt

Benchmark report for SunSpider, V8, and Kraken on nitroflex (MacBookPro8,2).

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r103205)
"FixRegAllox" at /Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/jsc (r103205)

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

                                            TipOfTree              FixRegAllox                                   
SunSpider:
   3d-cube                                5.3674+-0.0597    ?     5.4565+-0.1200       ? might be 1.0166x slower
   3d-morph                               7.6145+-0.1208    ?     7.6215+-0.1253       ?
   3d-raytrace                            7.0994+-0.1581          7.0386+-0.1572       
   access-binary-trees                    1.5602+-0.0401    ^     1.4707+-0.0299       ^ definitely 1.0609x faster
   access-fannkuch                        6.2365+-0.0922          6.1130+-0.0728         might be 1.0202x faster
   access-nbody                           3.2109+-0.0681    ?     3.2299+-0.0703       ?
   access-nsieve                          2.6344+-0.0724          2.6069+-0.0746         might be 1.0106x faster
   bitops-3bit-bits-in-byte               1.2275+-0.0263    ?     1.2434+-0.0286       ? might be 1.0129x slower
   bitops-bits-in-byte                    2.3385+-0.0443    ?     2.3758+-0.0547       ? might be 1.0160x slower
   bitops-bitwise-and                     3.3384+-0.0514    ?     3.4514+-0.0628       ? might be 1.0339x slower
   bitops-nsieve-bits                     5.3581+-0.1394    ?     5.5527+-0.1103       ? might be 1.0363x slower
   controlflow-recursive                  1.9907+-0.0436          1.9422+-0.0145         might be 1.0249x faster
   crypto-aes                             7.3454+-0.1617    ?     7.4329+-0.1966       ? might be 1.0119x slower
   crypto-md5                             2.2993+-0.0415          2.2786+-0.0300       
   crypto-sha1                            2.1155+-0.0484          2.0971+-0.0461       
   date-format-tofte                      9.8219+-0.1826          9.6931+-0.1243         might be 1.0133x faster
   date-format-xparb                      9.1419+-0.1737          9.0915+-0.1871       
   math-cordic                            6.3434+-0.0873    ?     6.4302+-0.1598       ? might be 1.0137x slower
   math-partial-sums                      7.3916+-0.1143          7.3809+-0.1216       
   math-spectral-norm                     2.2987+-0.0196    ?     2.3135+-0.0403       ?
   regexp-dna                             7.9644+-0.1101          7.7743+-0.1024         might be 1.0245x faster
   string-base64                          4.2075+-0.1145    ?     4.3032+-0.0729       ? might be 1.0228x slower
   string-fasta                           6.5694+-0.1144          6.5625+-0.1204       
   string-tagcloud                       10.9646+-0.1829         10.8515+-0.1448         might be 1.0104x faster
   string-unpack-code                    18.7656+-0.2652         18.5289+-0.2323         might be 1.0128x faster
   string-validate-input                  5.2800+-0.1388          5.2085+-0.1322         might be 1.0137x faster

   <arithmetic> *                         5.7110+-0.0285          5.6942+-0.0188         might be 1.0030x faster
   <geometric>                            4.6281+-0.0269          4.6196+-0.0137         might be 1.0018x faster
   <harmonic>                             3.7038+-0.0261          3.6892+-0.0120         might be 1.0039x faster

                                            TipOfTree              FixRegAllox                                   
V8:
   crypto                                69.2721+-0.7413    ?    69.3614+-0.6678       ?
   deltablue                            147.2022+-1.4357        146.4766+-0.9339       
   earley-boyer                          79.1693+-1.2043    ?    79.7949+-1.1389       ?
   raytrace                              47.4207+-0.2673    ?    47.4259+-0.5865       ?
   regexp                               103.4519+-0.5066        102.7928+-0.8345       
   richards                             118.0912+-0.6863    ?   118.3173+-1.1495       ?
   splay                                 72.4382+-0.7795    ^    70.9343+-0.5434       ^ definitely 1.0212x faster

   <arithmetic>                          91.0065+-0.2999         90.7290+-0.4134         might be 1.0031x faster
   <geometric> *                         85.6656+-0.2896         85.4076+-0.4116         might be 1.0030x faster
   <harmonic>                            80.5495+-0.2752         80.3162+-0.4426         might be 1.0029x faster

                                            TipOfTree              FixRegAllox                                   
Kraken:
   ai-astar                             474.6751+-2.0640    ?   477.1846+-5.2130       ?
   audio-beat-detection                 169.2471+-0.8500    ?   170.2460+-1.4331       ?
   audio-dft                            276.9173+-3.8333        276.1273+-2.6584       
   audio-fft                            105.8960+-0.4160    ?   106.1126+-0.9759       ?
   audio-oscillator                     250.0479+-1.6387    ?   250.1671+-1.1911       ?
   imaging-darkroom                     267.9879+-5.8848    ?   268.6597+-6.0591       ?
   imaging-desaturate                   224.2193+-0.6828    !   227.6462+-0.8253       ! definitely 1.0153x slower
   imaging-gaussian-blur                481.6816+-1.9163    ?   484.9727+-3.5730       ?
   json-parse-financial                  57.5064+-0.6289    ?    57.8643+-0.8253       ?
   json-stringify-tinderbox              73.3214+-0.4450    ?    73.8877+-0.5348       ?
   stanford-crypto-aes                   94.6605+-0.4635    !    95.7534+-0.2978       ! definitely 1.0115x slower
   stanford-crypto-ccm                   97.7390+-0.7350    ?    98.4418+-0.9552       ?
   stanford-crypto-pbkdf2               188.3791+-0.9875        188.3673+-1.2585       
   stanford-crypto-sha256-iterative      82.6176+-0.7911         82.4370+-0.2675       

   <arithmetic> *                       203.2069+-0.6381    ?   204.1334+-0.8902       ? might be 1.0046x slower
   <geometric>                          164.1801+-0.4580    ?   164.9492+-0.6033       ? might be 1.0047x slower
   <harmonic>                           133.8590+-0.3944    ?   134.5314+-0.4795       ? might be 1.0050x slower

                                            TipOfTree              FixRegAllox                                   
All benchmarks:
   <arithmetic>                          77.2431+-0.2058    ?    77.4685+-0.2900       ? might be 1.0029x slower
   <geometric>                           20.6937+-0.0668         20.6922+-0.0486         might be 1.0001x faster
   <harmonic>                             6.5175+-0.0447          6.4928+-0.0206         might be 1.0038x faster

                                            TipOfTree              FixRegAllox                                   
Geomean of preferred means:
   <scaled-result>                       46.3248+-0.0971         46.3029+-0.1112         might be 1.0005x faster
Comment 2 Filip Pizlo 2011-12-18 20:41:26 PST
Performance on 32-bit


[pizlo@nitroflex bencher] ./bencher TipOfTree32:/Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc FixRegAllox32:/Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/jsc --remote bigmac --local
Copying TipOfTree32 into /Volumes/Data/pizlo/bencher/temp/benchdata...
Copying FixRegAllox32 into /Volumes/Data/pizlo/bencher/temp/benchdata...
All VMs are in place.
Packaging benchmarking directory for remote hosts...
Sending benchmark payload to bigmac...
Running on bigmac...
376/376                                                            
Generating benchmark report at TipOfTree32_FixRegAllox32_SunSpiderV8Kraken_bigmac_20111218_2038_benchReport.txt

Benchmark report for SunSpider, V8, and Kraken on bigmac (MacPro5,1).

VMs tested:
"TipOfTree32" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r103205)
"FixRegAllox32" at /Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/jsc (r103205)

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

                                           TipOfTree32            FixRegAllox32                                  
SunSpider:
   3d-cube                                7.2415+-0.0118    ?     7.2659+-0.0156       ?
   3d-morph                              10.9712+-0.0257    ?    10.9964+-0.0376       ?
   3d-raytrace                            9.6943+-0.0333    ^     9.6388+-0.0128       ^ definitely 1.0058x faster
   access-binary-trees                    1.9335+-0.0074    ?     1.9368+-0.0089       ?
   access-fannkuch                        9.3437+-0.0223    ?     9.3513+-0.0325       ?
   access-nbody                           5.7192+-0.0043    ^     5.6822+-0.0146       ^ definitely 1.0065x faster
   access-nsieve                          3.1192+-0.0071    ?     3.1231+-0.0084       ?
   bitops-3bit-bits-in-byte               1.2905+-0.0207    ?     1.2965+-0.0202       ?
   bitops-bits-in-byte                    4.9757+-0.0094          4.9749+-0.0161       
   bitops-bitwise-and                     3.8653+-0.0306    ?     3.8788+-0.0191       ?
   bitops-nsieve-bits                     6.7604+-0.0087    ?     6.7777+-0.0268       ?
   controlflow-recursive                  3.0331+-0.0239          3.0131+-0.0056       
   crypto-aes                            10.0957+-0.0489    !    10.3150+-0.0261       ! definitely 1.0217x slower
   crypto-md5                             3.2807+-0.0198          3.2748+-0.0179       
   crypto-sha1                            2.7549+-0.0208    ?     2.7590+-0.0099       ?
   date-format-tofte                     11.4431+-0.0481    ?    11.5128+-0.0441       ?
   date-format-xparb                     11.8692+-0.0576    !    12.1184+-0.1233       ! definitely 1.0210x slower
   math-cordic                            9.9647+-0.0341          9.9379+-0.0299       
   math-partial-sums                     12.4512+-0.0185         12.4244+-0.0265       
   math-spectral-norm                     2.7283+-0.0069          2.7254+-0.0108       
   regexp-dna                             9.3073+-0.1241    ^     9.1720+-0.0105       ^ definitely 1.0148x faster
   string-base64                          4.8903+-0.0073          4.8867+-0.0063       
   string-fasta                           8.6363+-0.0148    ?     8.6560+-0.0262       ?
   string-tagcloud                       13.7226+-0.0610         13.6375+-0.0284       
   string-unpack-code                    22.0759+-0.0648         21.9853+-0.0526       
   string-validate-input                  6.3142+-0.0366    ?     6.3586+-0.0208       ?

   <arithmetic> *                         7.5955+-0.0134    ?     7.6038+-0.0087       ? might be 1.0011x slower
   <geometric>                            6.1988+-0.0130    ?     6.2053+-0.0096       ? might be 1.0010x slower
   <harmonic>                             4.8555+-0.0184    ?     4.8606+-0.0159       ? might be 1.0011x slower

                                           TipOfTree32            FixRegAllox32                                  
V8:
   crypto                               101.2954+-0.1853        101.0174+-0.3112       
   deltablue                            187.6014+-1.2169        186.7793+-1.0042       
   earley-boyer                         118.6513+-1.4013    ?   119.1959+-1.3526       ?
   raytrace                              56.8082+-0.2555    ?    58.2214+-1.8180       ? might be 1.0249x slower
   regexp                               128.3248+-0.6396        127.6049+-0.3558       
   richards                             199.3216+-0.5879    ?   199.4225+-1.2734       ?
   splay                                 98.4823+-1.1111    ?    99.1035+-1.7769       ?

   <arithmetic>                         127.2121+-0.4190    ?   127.3350+-0.5843       ? might be 1.0010x slower
   <geometric> *                        118.2102+-0.3626    ?   118.5846+-0.7172       ? might be 1.0032x slower
   <harmonic>                           109.0275+-0.2954    ?   109.7254+-0.9855       ? might be 1.0064x slower

                                           TipOfTree32            FixRegAllox32                                  
Kraken:
   ai-astar                             899.0276+-7.1020    ?   900.7698+-0.5249       ?
   audio-beat-detection                 362.4061+-2.3057    ?   364.5499+-0.7262       ?
   audio-dft                            363.2819+-2.3767        361.4780+-2.6151       
   audio-fft                            220.6278+-0.6800    ?   221.3411+-0.5022       ?
   audio-oscillator                     442.6988+-2.9341        441.9102+-2.8373       
   imaging-darkroom                     391.0075+-4.0946    ?   391.0196+-4.1839       ?
   imaging-desaturate                   297.6189+-0.2173        297.3822+-0.2328       
   imaging-gaussian-blur                706.8123+-0.4998    ?   707.9762+-1.3653       ?
   json-parse-financial                  72.9125+-0.1172    ?    73.2383+-0.2330       ?
   json-stringify-tinderbox             106.0381+-0.3153        105.7179+-0.2628       
   stanford-crypto-aes                  140.6319+-0.5437    ?   141.2936+-0.7772       ?
   stanford-crypto-ccm                  129.0145+-0.7118        128.1255+-0.5148       
   stanford-crypto-pbkdf2               259.4363+-0.8636    !   261.3396+-0.8399       ! definitely 1.0073x slower
   stanford-crypto-sha256-iterative     109.2524+-0.3084    ?   109.3277+-0.3363       ?

   <arithmetic> *                       321.4833+-0.5407    ?   321.8193+-0.5402       ? might be 1.0010x slower
   <geometric>                          250.2567+-0.3287    ?   250.4803+-0.4151       ? might be 1.0009x slower
   <harmonic>                           195.0791+-0.2745    ?   195.2465+-0.3022       ? might be 1.0009x slower

                                           TipOfTree32            FixRegAllox32                                  
All benchmarks:
   <arithmetic>                         118.9092+-0.1616    ?   119.0322+-0.2140       ? might be 1.0010x slower
   <geometric>                           28.9337+-0.0514    ?    28.9716+-0.0502       ? might be 1.0013x slower
   <harmonic>                             8.5599+-0.0318    ?     8.5694+-0.0276       ? might be 1.0011x slower

                                           TipOfTree32            FixRegAllox32                                  
Geomean of preferred means:
   <scaled-result>                       66.0878+-0.0957    ?    66.2044+-0.1591       ? might be 1.0018x slower

Running locally...
376/376                                                            
Generating benchmark report at TipOfTree32_FixRegAllox32_SunSpiderV8Kraken_nitroflex_20111218_2040_benchReport.txt

Benchmark report for SunSpider, V8, and Kraken on nitroflex (MacBookPro8,2).

VMs tested:
"TipOfTree32" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r103205)
"FixRegAllox32" at /Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/jsc (r103205)

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

                                           TipOfTree32            FixRegAllox32                                  
SunSpider:
   3d-cube                                6.3514+-0.1064          6.2673+-0.0873         might be 1.0134x faster
   3d-morph                              10.3341+-0.0950         10.3068+-0.1198       
   3d-raytrace                            9.0755+-0.1247    ?     9.0998+-0.1234       ?
   access-binary-trees                    1.7146+-0.0474    ?     1.7928+-0.0606       ? might be 1.0456x slower
   access-fannkuch                        7.7941+-0.1011          7.7734+-0.1096       
   access-nbody                           5.1546+-0.0793          5.0752+-0.0657         might be 1.0156x faster
   access-nsieve                          2.5397+-0.0571    ?     2.5791+-0.0493       ? might be 1.0155x slower
   bitops-3bit-bits-in-byte               1.2588+-0.0312          1.2378+-0.0237         might be 1.0170x faster
   bitops-bits-in-byte                    2.4702+-0.0677    ?     2.4708+-0.0587       ?
   bitops-bitwise-and                     2.9361+-0.1600          2.8068+-0.0503         might be 1.0461x faster
   bitops-nsieve-bits                     6.2598+-0.1007          6.2304+-0.0836       
   controlflow-recursive                  2.5292+-0.1050    ?     2.5748+-0.0540       ? might be 1.0180x slower
   crypto-aes                             9.0541+-0.1422    ?     9.2731+-0.2058       ? might be 1.0242x slower
   crypto-md5                             2.9867+-0.0680    ?     2.9954+-0.0684       ?
   crypto-sha1                            2.5955+-0.0531    ?     2.6003+-0.0610       ?
   date-format-tofte                     10.5304+-0.2213         10.2841+-0.1304         might be 1.0239x faster
   date-format-xparb                     10.1926+-0.1257    ?    10.2508+-0.1510       ?
   math-cordic                            8.1121+-0.1336          8.0873+-0.1531       
   math-partial-sums                      9.6628+-0.1622    ?     9.6865+-0.1445       ?
   math-spectral-norm                     2.4549+-0.0393          2.4202+-0.0499         might be 1.0143x faster
   regexp-dna                             7.8236+-0.1302          7.7456+-0.1457         might be 1.0101x faster
   string-base64                          4.6609+-0.1067          4.5756+-0.0896         might be 1.0186x faster
   string-fasta                           7.7347+-0.1063          7.7169+-0.1646       
   string-tagcloud                       12.0710+-0.1818         12.0534+-0.1728       
   string-unpack-code                    20.1773+-0.3363         20.0840+-0.3095       
   string-validate-input                  5.9710+-0.1366          5.9646+-0.1215       

   <arithmetic> *                         6.6325+-0.0266          6.6136+-0.0246         might be 1.0029x faster
   <geometric>                            5.3542+-0.0227          5.3423+-0.0230         might be 1.0022x faster
   <harmonic>                             4.1960+-0.0238          4.1936+-0.0215         might be 1.0006x faster

                                           TipOfTree32            FixRegAllox32                                  
V8:
   crypto                                93.0857+-0.4705    ?    93.1162+-0.4067       ?
   deltablue                            155.1923+-1.3671        154.8117+-1.5066       
   earley-boyer                          93.4563+-0.9280    ?    93.5306+-1.1499       ?
   raytrace                              51.0585+-0.8245    ?    51.4678+-0.4252       ?
   regexp                               111.2716+-0.3969    ^   108.3468+-0.4182       ^ definitely 1.0270x faster
   richards                             166.2101+-1.0434    ?   167.0656+-0.5824       ?
   splay                                 80.6801+-1.1339         79.6174+-0.9456         might be 1.0133x faster

   <arithmetic>                         107.2792+-0.3074        106.8509+-0.4148         might be 1.0040x faster
   <geometric> *                        100.3933+-0.3439         99.9947+-0.3987         might be 1.0040x faster
   <harmonic>                            93.4734+-0.4482         93.2024+-0.3899         might be 1.0029x faster

                                           TipOfTree32            FixRegAllox32                                  
Kraken:
   ai-astar                             518.0567+-4.2396    ?   522.9223+-3.8962       ?
   audio-beat-detection                 332.5109+-5.2239    ?   339.3258+-5.9447       ? might be 1.0205x slower
   audio-dft                            363.2800+-2.9691        362.3718+-2.9151       
   audio-fft                            207.1526+-1.5889    ^   204.0062+-0.5000       ^ definitely 1.0154x faster
   audio-oscillator                     408.0943+-1.8188        406.8593+-2.2099       
   imaging-darkroom                     362.6742+-3.5852        362.5699+-4.2088       
   imaging-desaturate                   262.4619+-0.6562        261.4084+-0.8725       
   imaging-gaussian-blur                586.2568+-2.6599    ?   587.0692+-2.7495       ?
   json-parse-financial                  59.4232+-0.3383    !    61.4743+-0.2087       ! definitely 1.0345x slower
   json-stringify-tinderbox              93.6780+-0.2445    ^    90.4414+-0.2895       ^ definitely 1.0358x faster
   stanford-crypto-aes                  111.6194+-1.2202        110.6155+-0.5579       
   stanford-crypto-ccm                  110.7395+-0.6315    ?   110.9770+-0.4050       ?
   stanford-crypto-pbkdf2               213.6550+-0.7054    !   215.7886+-0.8343       ! definitely 1.0100x slower
   stanford-crypto-sha256-iterative      96.1172+-0.3435    ^    95.2770+-0.2565       ^ definitely 1.0088x faster

   <arithmetic> *                       266.1228+-0.5818    ?   266.5076+-0.6539       ? might be 1.0014x slower
   <geometric>                          213.7936+-0.3803        213.7788+-0.4147         might be 1.0001x faster
   <harmonic>                           167.0125+-0.3691    ?   167.1128+-0.2168       ? might be 1.0006x slower

                                           TipOfTree32            FixRegAllox32                                  
All benchmarks:
   <arithmetic>                          98.9174+-0.1807    ?    98.9578+-0.2273       ? might be 1.0004x slower
   <geometric>                           24.8469+-0.0550         24.8010+-0.0530         might be 1.0019x faster
   <harmonic>                             7.3956+-0.0410          7.3912+-0.0369         might be 1.0006x faster

                                           TipOfTree32            FixRegAllox32                                  
Geomean of preferred means:
   <scaled-result>                       56.1674+-0.0887         56.0664+-0.0733         might be 1.0018x faster

[pizlo@nitroflex bencher]
Comment 3 Filip Pizlo 2011-12-18 20:54:41 PST
Created attachment 119805 [details]
the patch
Comment 4 Filip Pizlo 2011-12-18 22:36:26 PST
Landed in http://trac.webkit.org/changeset/103218