Bug 74044

Summary: DFG CSE should know that CheckFunction is pure
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal    
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
the patch none

Description Filip Pizlo 2011-12-07 18:01:53 PST
Patch forthcoming.
Comment 1 Filip Pizlo 2011-12-07 18:05:03 PST
Created attachment 118298 [details]
the patch

[pizlo@nitroflex bencher] ./bencher TipOfTree:/Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc FixCheckFunc:/Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc --remote oldmac --local
Packaging VM builds for remote hosts...
Sending VM builds to oldmac...
Running on oldmac...
376/376                                                           
Generating benchmark report at TipOfTree_FixCheckFunc_SunSpiderV8Kraken_20111207_1757_benchReport.txt

Benchmark report for SunSpider, V8, and Kraken on oldmac.local (MacPro4,1).

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r102265)
"FixCheckFunc" at /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc (r102265)

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              FixCheckFunc                                  
SunSpider:
   3d-cube                                8.8425+-0.0700    ?     9.0314+-0.1357       ? might be 1.0214x slower
   3d-morph                              10.1451+-0.0579    ?    10.3418+-0.1855       ? might be 1.0194x slower
   3d-raytrace                            9.2890+-0.0883          9.1852+-0.0756         might be 1.0113x faster
   access-binary-trees                    1.9277+-0.0306    ?     1.9650+-0.0351       ? might be 1.0193x slower
   access-fannkuch                        9.0474+-0.0957          8.9778+-0.0149       
   access-nbody                           4.7444+-0.0231          4.7255+-0.0085       
   access-nsieve                          3.7167+-0.0071          3.7160+-0.0057       
   bitops-3bit-bits-in-byte               1.5111+-0.0256          1.5004+-0.0185       
   bitops-bits-in-byte                    6.0357+-0.0952          5.9458+-0.0273         might be 1.0151x faster
   bitops-bitwise-and                     3.9911+-0.0152          3.9870+-0.0309       
   bitops-nsieve-bits                     6.8421+-0.0365    ?     6.8648+-0.0693       ?
   controlflow-recursive                  2.7909+-0.0262          2.7741+-0.0164       
   crypto-aes                             8.9776+-0.2299    ^     8.6375+-0.0753       ^ definitely 1.0394x faster
   crypto-md5                             2.9375+-0.0219          2.9295+-0.0200       
   crypto-sha1                            2.6288+-0.0297          2.6057+-0.0264       
   date-format-tofte                     13.0708+-0.2080    ?    13.3623+-0.3008       ? might be 1.0223x slower
   date-format-xparb                     12.6484+-0.1782    ?    12.8515+-0.2025       ? might be 1.0161x slower
   math-cordic                            8.6465+-0.0519    ?     8.6788+-0.0573       ?
   math-partial-sums                     12.7340+-0.1053         12.6861+-0.0537       
   math-spectral-norm                     3.1787+-0.0413    ^     3.1215+-0.0046       ^ definitely 1.0183x faster
   regexp-dna                            15.7793+-0.1250         15.7108+-0.0495       
   string-base64                          4.8212+-0.0799    ?     4.8616+-0.0897       ?
   string-fasta                           8.9178+-0.0492    ?     8.9818+-0.1291       ?
   string-tagcloud                       15.2023+-0.2502         15.0227+-0.2046         might be 1.0120x faster
   string-unpack-code                    26.3980+-0.3502         25.9903+-0.1485         might be 1.0157x faster
   string-validate-input                  6.9392+-0.0900          6.8581+-0.0728         might be 1.0118x faster

   <arithmetic> *                         8.1448+-0.0382          8.1274+-0.0348         might be 1.0021x faster
   <geometric>                            6.4959+-0.0252          6.4841+-0.0246         might be 1.0018x faster
   <harmonic>                             5.0587+-0.0199          5.0489+-0.0237         might be 1.0019x faster

                                            TipOfTree              FixCheckFunc                                  
V8:
   crypto                                92.3939+-0.4966    ?    93.1374+-0.5456       ?
   deltablue                            204.9910+-1.0846    ?   206.3839+-0.9171       ?
   earley-boyer                         121.7526+-1.6036    ?   123.2366+-1.5073       ? might be 1.0122x slower
   raytrace                              69.8208+-0.2921    ?    70.0296+-0.4666       ?
   regexp                               149.4363+-0.6177        149.2242+-0.9202       
   richards                             168.2800+-2.0180    ?   169.4922+-3.2537       ?
   splay                                110.3434+-0.8908    ^   108.0634+-1.2010       ^ definitely 1.0211x faster

   <arithmetic>                         131.0026+-0.5490    ?   131.3668+-0.5300       ? might be 1.0028x slower
   <geometric> *                        123.8347+-0.4860    ?   124.0901+-0.4773       ? might be 1.0021x slower
   <harmonic>                           116.7824+-0.4443    ?   116.9734+-0.4461       ? might be 1.0016x slower

                                            TipOfTree              FixCheckFunc                                  
Kraken:
   ai-astar                             899.5897+-0.8491    !   903.2278+-2.4389       ! definitely 1.0040x slower
   audio-beat-detection                 249.0234+-1.0104    ?   249.1777+-1.0923       ?
   audio-dft                            329.5744+-13.7973       324.9010+-13.0897        might be 1.0144x faster
   audio-fft                            160.6459+-0.5296    ?   161.0761+-0.6340       ?
   audio-oscillator                     344.8350+-7.1896        344.6023+-8.4341       
   imaging-darkroom                     404.2031+-5.6120        403.7540+-5.7959       
   imaging-desaturate                   290.1854+-0.9942    ^   288.6604+-0.4480       ^ definitely 1.0053x faster
   imaging-gaussian-blur                739.8452+-2.2079    ?   740.0225+-1.4430       ?
   json-parse-financial                  86.2863+-0.5058    ?    86.6719+-0.6711       ?
   json-stringify-tinderbox              99.4345+-0.2757    ?    99.7361+-0.3391       ?
   stanford-crypto-aes                  145.0492+-0.9806    ^   142.8023+-0.8076       ^ definitely 1.0157x faster
   stanford-crypto-ccm                  139.4911+-2.0648        138.6611+-1.6733       
   stanford-crypto-pbkdf2               277.9355+-1.8993    ?   281.4521+-2.0659       ? might be 1.0127x slower
   stanford-crypto-sha256-iterative     114.2836+-0.5304    ?   114.9241+-0.5582       ?

   <arithmetic> *                       305.7416+-1.2262        305.6907+-1.0980         might be 1.0002x faster
   <geometric>                          238.7170+-0.9603        238.5501+-0.7456         might be 1.0007x faster
   <harmonic>                           192.7428+-0.6204        192.6929+-0.4938         might be 1.0003x faster

                                            TipOfTree              FixCheckFunc                                  
All benchmarks:
   <arithmetic>                         115.0886+-0.4388    ?   115.1181+-0.3160       ? might be 1.0003x slower
   <geometric>                           29.4816+-0.1017         29.4546+-0.0797         might be 1.0009x faster
   <harmonic>                             8.9145+-0.0346          8.8980+-0.0410         might be 1.0019x faster

                                            TipOfTree              FixCheckFunc                                  
Geomean of preferred means:
   <scaled-result>                       67.5600+-0.2497         67.5543+-0.1671         might be 1.0001x faster

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

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

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r102265)
"FixCheckFunc" at /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc (r102265)

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              FixCheckFunc                                  
SunSpider:
   3d-cube                                6.8899+-0.1386    ?     7.1365+-0.1505       ? might be 1.0358x slower
   3d-morph                               8.0201+-0.1344          7.9624+-0.4518       
   3d-raytrace                            7.5278+-0.7369          7.3101+-0.1787         might be 1.0298x faster
   access-binary-trees                    1.5192+-0.0502    ?     1.7136+-0.1961       ? might be 1.1280x slower
   access-fannkuch                        6.3875+-0.1212          6.3581+-0.1264       
   access-nbody                           3.2196+-0.1223          3.2078+-0.1177       
   access-nsieve                          2.5877+-0.0725          2.5254+-0.0554         might be 1.0247x faster
   bitops-3bit-bits-in-byte               1.4965+-0.2983          1.2812+-0.0438         might be 1.1681x faster
   bitops-bits-in-byte                    2.4380+-0.1032    ?     2.4528+-0.0543       ?
   bitops-bitwise-and                     3.4106+-0.0724    ?     3.4286+-0.0948       ?
   bitops-nsieve-bits                     5.3475+-0.1088    ?     5.3834+-0.1086       ?
   controlflow-recursive                  2.3991+-0.3355          2.0915+-0.0417         might be 1.1471x faster
   crypto-aes                             7.0035+-0.1998    ?     7.0536+-0.2225       ?
   crypto-md5                             2.3787+-0.0703          2.3477+-0.0702         might be 1.0132x faster
   crypto-sha1                            2.2092+-0.2976          2.0689+-0.0543         might be 1.0678x faster
   date-format-tofte                     10.3803+-0.2436         10.1929+-0.2797         might be 1.0184x faster
   date-format-xparb                      9.7166+-0.1690    ?    10.5225+-1.1023       ? might be 1.0829x slower
   math-cordic                            6.3753+-0.1160          6.3509+-0.1195       
   math-partial-sums                      7.5838+-0.2547          7.4843+-0.1347         might be 1.0133x faster
   math-spectral-norm                     2.5770+-0.2835          2.4160+-0.1813         might be 1.0666x faster
   regexp-dna                            11.0499+-0.1973    ?    11.2826+-0.2442       ? might be 1.0211x slower
   string-base64                          3.8561+-0.0719    ?     3.9455+-0.1203       ? might be 1.0232x slower
   string-fasta                           6.8028+-0.1733          6.7981+-0.1935       
   string-tagcloud                       11.5268+-0.6967         11.4124+-0.2823         might be 1.0100x faster
   string-unpack-code                    19.4170+-0.3565         19.4005+-0.3156       
   string-validate-input                  5.4187+-0.1903    ?     5.4762+-0.1854       ? might be 1.0106x slower

   <arithmetic> *                         6.0592+-0.0449    ?     6.0617+-0.0568       ? might be 1.0004x slower
   <geometric>                            4.8778+-0.0512          4.8453+-0.0494         might be 1.0067x faster
   <harmonic>                             3.8865+-0.0764          3.8339+-0.0599         might be 1.0137x faster

                                            TipOfTree              FixCheckFunc                                  
V8:
   crypto                                71.2986+-0.6848         70.8310+-0.8543       
   deltablue                            149.3018+-1.3442        148.5317+-0.6460       
   earley-boyer                          85.2736+-1.4637         84.6163+-2.0638       
   raytrace                              54.4495+-2.6654         52.7010+-1.1609         might be 1.0332x faster
   regexp                               107.2549+-2.5278        106.3236+-1.3451       
   richards                             118.0904+-3.1343        115.2541+-0.4266         might be 1.0246x faster
   splay                                 75.4466+-1.8272    ?    76.3017+-1.9505       ? might be 1.0113x slower

   <arithmetic>                          94.4451+-0.7325         93.5085+-0.4354         might be 1.0100x faster
   <geometric> *                         89.7816+-0.8662         88.8688+-0.4729         might be 1.0103x faster
   <harmonic>                            85.3896+-1.1069         84.4532+-0.5128         might be 1.0111x faster

                                            TipOfTree              FixCheckFunc                                  
Kraken:
   ai-astar                             501.6880+-3.3387        498.2480+-3.6935       
   audio-beat-detection                 185.5088+-1.3534        184.9064+-1.2457       
   audio-dft                            292.2868+-8.7709        281.4146+-5.0894         might be 1.0386x faster
   audio-fft                            122.3843+-2.7231        120.4536+-1.1730         might be 1.0160x faster
   audio-oscillator                     250.6638+-3.9515    ?   252.3063+-3.5651       ?
   imaging-darkroom                     306.1458+-4.6104        304.4572+-4.1356       
   imaging-desaturate                   217.5283+-1.1451    ?   218.3009+-1.8705       ?
   imaging-gaussian-blur                552.4730+-3.4193    ?   555.2720+-5.8729       ?
   json-parse-financial                  57.2575+-0.3659         56.8653+-0.3398       
   json-stringify-tinderbox              74.2972+-0.4058    ?    74.2980+-0.4882       ?
   stanford-crypto-aes                   97.6599+-0.4222         96.9200+-0.7324       
   stanford-crypto-ccm                  101.6598+-1.4779    ?   102.0497+-1.6383       ?
   stanford-crypto-pbkdf2               189.6759+-0.7736    ?   190.4033+-0.8665       ?
   stanford-crypto-sha256-iterative      81.3322+-1.1897    ?    81.3838+-1.5974       ?

   <arithmetic> *                       216.4686+-0.8229        215.5199+-0.7205         might be 1.0044x faster
   <geometric>                          172.0731+-0.6614        171.3384+-0.4272         might be 1.0043x faster
   <harmonic>                           138.2870+-0.4907        137.7556+-0.3821         might be 1.0039x faster

                                            TipOfTree              FixCheckFunc                                  
All benchmarks:
   <arithmetic>                          81.8982+-0.2992         81.4775+-0.2316         might be 1.0052x faster
   <geometric>                           21.7549+-0.1412         21.6141+-0.1184         might be 1.0065x faster
   <harmonic>                             6.8382+-0.1310          6.7468+-0.1026         might be 1.0136x faster

                                            TipOfTree              FixCheckFunc                                  
Geomean of preferred means:
   <scaled-result>                       49.0133+-0.1969         48.7820+-0.1450         might be 1.0047x faster

[pizlo@nitroflex bencher]
Comment 2 Filip Pizlo 2011-12-07 19:12:08 PST
Landed in http://trac.webkit.org/changeset/102302
Comment 3 Filip Pizlo 2011-12-07 19:12:20 PST
Comment on attachment 118298 [details]
the patch

Clearing flags.