[webkit-reviews] review requested: [Bug 69690] DFG does not have flow-sensitive intraprocedural control flow analysis : [Attachment 110259] work in progress - better performance
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Fri Oct 7 23:00:20 PDT 2011
Filip Pizlo <fpizlo at apple.com> has asked for review:
Bug 69690: DFG does not have flow-sensitive intraprocedural control flow
analysis
https://bugs.webkit.org/show_bug.cgi?id=69690
Attachment 110259: work in progress - better performance
https://bugs.webkit.org/attachment.cgi?id=110259&action=review
------- Additional Comments from Filip Pizlo <fpizlo at apple.com>
I did two things:
- Fixed OSR entry. If a variable is dead then the abstract value should be TOP.
Internally, the abstract state machine treats dead variables as BOTTOM. That's
necessary for making the analysis precise.
- Changed the abstract structure value representation. Previously it was
basically Vector<Structure*>. Now it's just Structure*, where sets larger than
1 are turned to TOP. This works great, since most structure sets only contain
one element anyway.
Benchmark report for SunSpider, V8, and Kraken.
VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc
"CFA" at /Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/jsc
Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark.
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 CFA
SunSpider:
3d-cube 7.3400+-0.2059
7.2108+-0.1398 might be 1.0179x faster
3d-morph 7.5851+-0.1400 ?
7.6501+-0.1387 ?
3d-raytrace 7.5752+-0.1830
7.5150+-0.1734
access-binary-trees 1.7129+-0.0337 ?
1.7169+-0.0476 ?
access-fannkuch 6.2979+-0.0958 ?
6.5286+-0.1364 ? might be 1.0366x slower
access-nbody 3.4297+-0.0839 ?
3.5317+-0.0830 ? might be 1.0297x slower
access-nsieve 2.5318+-0.0516 ?
2.6022+-0.0786 ? might be 1.0278x slower
bitops-3bit-bits-in-byte 1.6817+-0.0191 !
1.7452+-0.0250 ! definitely 1.0378x slower
bitops-bits-in-byte 2.7081+-0.0537 !
2.9258+-0.1245 ! definitely 1.0804x slower
bitops-bitwise-and 3.4372+-0.2532
3.3606+-0.0894 might be 1.0228x faster
bitops-nsieve-bits 5.4391+-0.0644
5.3109+-0.1139 might be 1.0241x faster
controlflow-recursive 2.0508+-0.0375
2.0316+-0.0499
crypto-aes 6.5082+-0.1513 ?
6.7630+-0.1750 ? might be 1.0392x slower
crypto-md5 2.7830+-0.0851 ?
2.8322+-0.0706 ? might be 1.0177x slower
crypto-sha1 2.4498+-0.0714 ?
2.5556+-0.0867 ? might be 1.0432x slower
date-format-tofte 9.8098+-0.2208 ?
9.9895+-0.1587 ? might be 1.0183x slower
date-format-xparb 9.4492+-0.1745 !
9.8804+-0.2001 ! definitely 1.0456x slower
math-cordic 6.3737+-0.1416
6.3125+-0.0656
math-partial-sums 7.5554+-0.1169
7.5150+-0.1276
math-spectral-norm 2.7905+-0.0655 ?
2.8601+-0.0784 ? might be 1.0250x slower
regexp-dna 10.6186+-0.1482
10.5608+-0.1658
string-base64 5.1063+-0.0828 ?
5.1827+-0.0692 ? might be 1.0150x slower
string-fasta 6.3348+-0.1140 ?
6.4154+-0.1134 ? might be 1.0127x slower
string-tagcloud 11.1755+-0.2087 ?
11.2236+-0.2715 ?
string-unpack-code 21.0133+-0.2257 !
21.6342+-0.2337 ! definitely 1.0295x slower
string-validate-input 6.2811+-0.1612
6.2791+-0.1612
<arithmetic> * 6.1553+-0.0194 !
6.2359+-0.0193 ! definitely 1.0131x slower
<geometric> 5.0469+-0.0176 !
5.1180+-0.0158 ! definitely 1.0141x slower
<harmonic> 4.1371+-0.0257 !
4.2074+-0.0236 ! definitely 1.0170x slower
TipOfTree CFA
V8:
crypto 71.6115+-0.3106 !
72.6151+-0.5762 ! definitely 1.0140x slower
deltablue 227.0336+-3.5653
223.0970+-2.1287 might be 1.0176x faster
earley-boyer 90.4309+-0.3425 ?
90.9446+-0.2832 ?
raytrace 57.5184+-0.4610
57.4722+-0.2783
regexp 102.7896+-0.3338 ?
102.8251+-0.5877 ?
richards 205.1041+-1.1592 ^
175.0092+-0.6119 ^ definitely 1.1720x faster
splay 95.5634+-0.6248 ?
95.6634+-0.7130 ?
<arithmetic> 121.4359+-0.5050 ^
116.8038+-0.3613 ^ definitely 1.0397x faster
<geometric> * 107.9023+-0.2225 ^
105.5267+-0.2425 ^ definitely 1.0225x faster
<harmonic> 97.3732+-0.1490 ^
96.4890+-0.1988 ^ definitely 1.0092x faster
TipOfTree CFA
Kraken:
ai-astar 493.1064+-3.9254
492.3566+-3.0941
audio-beat-detection 191.3132+-0.6433 ?
191.4514+-0.7850 ?
audio-dft 265.4996+-2.7456 ^
260.4941+-1.8597 ^ definitely 1.0192x faster
audio-fft 125.3307+-0.5836 ?
126.1825+-1.9849 ?
audio-oscillator 251.3514+-1.9030
249.7558+-2.0144
imaging-darkroom 410.4260+-0.8666 !
413.6212+-1.1919 ! definitely 1.0078x slower
imaging-desaturate 230.1417+-0.5040 ^
216.3676+-0.4729 ^ definitely 1.0637x faster
imaging-gaussian-blur 578.7784+-2.2247 ^
568.6758+-2.3888 ^ definitely 1.0178x faster
json-parse-financial 54.4313+-0.2379 ?
54.5051+-0.2106 ?
json-stringify-tinderbox 69.6600+-0.8972 ^
68.1390+-0.2398 ^ definitely 1.0223x faster
stanford-crypto-aes 131.3154+-2.2640
130.2981+-1.6271
stanford-crypto-ccm 99.8329+-0.9814 !
101.7389+-0.8432 ! definitely 1.0191x slower
stanford-crypto-pbkdf2 187.8078+-0.7526 !
191.5040+-1.2973 ! definitely 1.0197x slower
stanford-crypto-sha256-iterative 69.6199+-0.2190 ?
69.9535+-0.3764 ?
<arithmetic> * 225.6153+-0.5117 ^
223.9317+-0.4806 ^ definitely 1.0075x faster
<geometric> 176.2934+-0.4303 ^
175.3365+-0.4004 ^ definitely 1.0055x faster
<harmonic> 137.8627+-0.3810
137.4240+-0.3734
TipOfTree CFA
All benchmarks:
<arithmetic> 88.6958+-0.1882 ^
87.5490+-0.1577 ^ definitely 1.0131x faster
<geometric> 22.9502+-0.0535 ?
23.0146+-0.0492 ?
<harmonic> 7.2778+-0.0442 !
7.3970+-0.0406 ! definitely 1.0164x slower
TipOfTree CFA
Geomean of preferred means:
<scaled-result> 53.1147+-0.0841 ^
52.8190+-0.0781 ^ definitely 1.0056x faster
More information about the webkit-reviews
mailing list