Bug 74390

Summary: DFG GetByVal CSE rule should match PutByValAlias
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 ggaren: review+

Description Filip Pizlo 2011-12-13 01:32:11 PST
Patch forthcoming
Comment 1 Filip Pizlo 2011-12-13 01:35:14 PST
Created attachment 118977 [details]
the patch

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

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r102562)
"PutByValAliasCSE" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r102661)

Collected 45 samples per benchmark/VM, with 15 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            PutByValAliasCSE                                
SunSpider:
   3d-cube                                7.3350+-0.0104          7.3167+-0.0181       
   3d-morph                               8.3525+-0.0426    ?     8.3698+-0.0513       ?
   3d-raytrace                            7.7018+-0.0274          7.6631+-0.0304       
   access-binary-trees                    1.6007+-0.0044          1.6007+-0.0030       
   access-fannkuch                        7.5335+-0.0071    ^     7.3790+-0.0062       ^ definitely 1.0209x faster
   access-nbody                           3.9326+-0.0040          3.9278+-0.0045       
   access-nsieve                          3.1982+-0.0225          3.1941+-0.0222       
   bitops-3bit-bits-in-byte               1.2578+-0.0079          1.2503+-0.0075       
   bitops-bits-in-byte                    5.0874+-0.0159          5.0637+-0.0149       
   bitops-bitwise-and                     3.2892+-0.0039    ?     3.2920+-0.0050       ?
   bitops-nsieve-bits                     5.6519+-0.0167          5.6448+-0.0178       
   controlflow-recursive                  2.3535+-0.0106          2.3443+-0.0085       
   crypto-aes                             7.2043+-0.0200    !     7.3627+-0.0180       ! definitely 1.0220x slower
   crypto-md5                             2.4642+-0.0101          2.4617+-0.0104       
   crypto-sha1                            2.1909+-0.0147          2.1791+-0.0143       
   date-format-tofte                     10.6563+-0.0566    ?    10.7304+-0.0707       ?
   date-format-xparb                      9.8916+-0.0487          9.7766+-0.0888         might be 1.0118x faster
   math-cordic                            7.1762+-0.0174    ?     7.1842+-0.0174       ?
   math-partial-sums                     10.4064+-0.0120    ?    10.4218+-0.0157       ?
   math-spectral-norm                     2.6019+-0.0051    ?     2.6055+-0.0064       ?
   regexp-dna                             8.8459+-0.0253    ?     8.8789+-0.0257       ?
   string-base64                          4.2221+-0.0069          4.2181+-0.0071       
   string-fasta                           7.1979+-0.0079    ?     7.2052+-0.0093       ?
   string-tagcloud                       12.3993+-0.0296         12.3754+-0.0338       
   string-unpack-code                    20.9027+-0.0539    ^    20.7012+-0.0592       ^ definitely 1.0097x faster
   string-validate-input                  5.6090+-0.0197          5.5907+-0.0230       

   <arithmetic> *                         6.5024+-0.0081          6.4899+-0.0095         might be 1.0019x faster
   <geometric>                            5.2827+-0.0075          5.2745+-0.0075         might be 1.0016x faster
   <harmonic>                             4.1800+-0.0078          4.1719+-0.0074         might be 1.0019x faster

                                            TipOfTree            PutByValAliasCSE                                
V8:
   crypto                                76.1163+-0.1000    ?    76.2169+-0.1372       ?
   deltablue                            172.8269+-0.3326    ?   173.1246+-0.3492       ?
   earley-boyer                          99.2811+-0.6146    ?    99.3397+-0.5229       ?
   raytrace                              52.2787+-0.1007    !    52.7063+-0.2284       ! definitely 1.0082x slower
   regexp                               122.5528+-0.2666        122.4658+-0.2735       
   richards                             139.9164+-0.3003    ^   139.3020+-0.2854       ^ definitely 1.0044x faster
   splay                                 92.1539+-0.6990         91.2885+-0.6590       

   <arithmetic>                         107.8752+-0.1441        107.7777+-0.1476         might be 1.0009x faster
   <geometric> *                        101.0833+-0.1448        101.0436+-0.1663         might be 1.0004x faster
   <harmonic>                            94.2205+-0.1363    ?    94.2814+-0.1864       ? might be 1.0006x slower

                                            TipOfTree            PutByValAliasCSE                                
Kraken:
   ai-astar                             816.5833+-5.1826    ?   821.5976+-3.8664       ?
   audio-beat-detection                 203.2783+-0.2957    !   204.6801+-0.4901       ! definitely 1.0069x slower
   audio-dft                            276.5288+-1.0650        275.3805+-1.0953       
   audio-fft                            131.9214+-0.2135    !   133.1070+-0.3343       ! definitely 1.0090x slower
   audio-oscillator                     286.0799+-2.0936        284.7149+-1.9930       
   imaging-darkroom                     341.0025+-3.3151        336.3170+-2.4769         might be 1.0139x faster
   imaging-desaturate                   237.5525+-0.0434        237.4708+-0.0383       
   imaging-gaussian-blur                625.8866+-0.1034    ?   626.0054+-0.1557       ?
   json-parse-financial                  69.7659+-0.1073    ?    69.9326+-0.0694       ?
   json-stringify-tinderbox              82.0705+-0.1258    !    82.4643+-0.1323       ! definitely 1.0048x slower
   stanford-crypto-aes                  117.6011+-0.3017    !   118.7071+-0.6210       ! definitely 1.0094x slower
   stanford-crypto-ccm                  113.7530+-0.2544    ?   114.0518+-0.3293       ?
   stanford-crypto-pbkdf2               229.8478+-0.5139    ?   230.3339+-0.5859       ?
   stanford-crypto-sha256-iterative      95.8354+-0.1263         95.5967+-0.1244       

   <arithmetic> *                       259.1219+-0.3887    ?   259.3114+-0.3453       ? might be 1.0007x slower
   <geometric>                          198.5541+-0.1832    ?   198.8088+-0.1810       ? might be 1.0013x slower
   <harmonic>                           158.7630+-0.1260    !   159.1449+-0.1166       ! definitely 1.0024x slower

                                            TipOfTree            PutByValAliasCSE                                
All benchmarks:
   <arithmetic>                          96.8488+-0.1178    ?    96.8839+-0.1150       ? might be 1.0004x slower
   <geometric>                           24.1502+-0.0247         24.1372+-0.0252         might be 1.0005x faster
   <harmonic>                             7.3638+-0.0135          7.3502+-0.0128         might be 1.0019x faster

                                            TipOfTree            PutByValAliasCSE                                
Geomean of preferred means:
   <scaled-result>                       55.4307+-0.0514         55.4014+-0.0609         might be 1.0005x faster
Comment 2 Geoffrey Garen 2011-12-13 13:30:04 PST
Comment on attachment 118977 [details]
the patch

r=me
Comment 3 Filip Pizlo 2011-12-13 14:12:56 PST
Landed in http://trac.webkit.org/changeset/102707