[webkit-reviews] review canceled: [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
Sat Oct 8 00:33:34 PDT 2011
Filip Pizlo <fpizlo at apple.com> has canceled Filip Pizlo <fpizlo at apple.com>'s
request 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>
This is now pure win. This required a number of changes:
- CFA merging requires interrogating the successors of basic blocks. This was
previously a binary search. Now it's not.
- The CFA is now pseudo-worklist based. It visits basic blocks in bytecode
order (which is almost program order, and almost topological order), leading to
a high probability that a block will not be visited unless its predecessors
have been visited. But it does not visit a block if since the last time it was
visited nothing has happened that would change the block's outcome.
- Bunch of little tweaks to reduce the costs of various CFA operations.
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.1877+-0.1640 ?
7.2292+-0.1642 ?
3d-morph 7.5879+-0.1785
7.5121+-0.1356 might be 1.0101x faster
3d-raytrace 7.4148+-0.2026
7.3754+-0.1707
access-binary-trees 1.7784+-0.0808
1.6926+-0.0562 might be 1.0507x faster
access-fannkuch 6.3277+-0.1237
6.3013+-0.1268
access-nbody 3.5172+-0.0884
3.4572+-0.0941 might be 1.0174x faster
access-nsieve 2.5999+-0.0791
2.5825+-0.0877
bitops-3bit-bits-in-byte 1.7346+-0.0357
1.7115+-0.0327 might be 1.0135x faster
bitops-bits-in-byte 2.7539+-0.0720
2.7514+-0.0510
bitops-bitwise-and 3.3173+-0.0725 ?
3.3754+-0.1000 ? might be 1.0175x slower
bitops-nsieve-bits 5.3589+-0.1009 ?
5.3927+-0.1290 ?
controlflow-recursive 2.0357+-0.0392 ?
2.0723+-0.0671 ? might be 1.0180x slower
crypto-aes 6.5654+-0.1839 ?
6.6289+-0.1744 ?
crypto-md5 2.7721+-0.0633 ?
2.8039+-0.0589 ? might be 1.0114x slower
crypto-sha1 2.4790+-0.1072 ?
2.4911+-0.0745 ?
date-format-tofte 9.8535+-0.2432 ?
9.9580+-0.2362 ? might be 1.0106x slower
date-format-xparb 9.4830+-0.1867 !
10.0138+-0.2298 ! definitely 1.0560x slower
math-cordic 6.3866+-0.1093 ?
6.5029+-0.1173 ? might be 1.0182x slower
math-partial-sums 7.6234+-0.1297
7.5099+-0.1406 might be 1.0151x faster
math-spectral-norm 2.8589+-0.0701
2.8198+-0.0660 might be 1.0139x faster
regexp-dna 10.5651+-0.2565
10.4409+-0.1349 might be 1.0119x faster
string-base64 5.0891+-0.1039 ?
5.2070+-0.1078 ? might be 1.0232x slower
string-fasta 6.4453+-0.1413
6.3143+-0.0977 might be 1.0207x faster
string-tagcloud 11.0358+-0.2692 ?
11.1644+-0.1814 ? might be 1.0117x slower
string-unpack-code 21.0071+-0.2760 ?
21.4615+-0.5199 ? might be 1.0216x slower
string-validate-input 6.2340+-0.1813 ?
6.3609+-0.1603 ? might be 1.0204x slower
<arithmetic> * 6.1543+-0.0155 ?
6.1973+-0.0322 ?
<geometric> 5.0642+-0.0192 ?
5.0771+-0.0246 ?
<harmonic> 4.1736+-0.0342
4.1643+-0.0360
TipOfTree CFA
V8:
crypto 71.6260+-0.3327 ?
71.8717+-0.3132 ?
deltablue 226.0467+-1.9042 ^
221.1798+-1.0192 ^ definitely 1.0220x faster
earley-boyer 89.8473+-0.2783 !
90.9236+-0.3194 ! definitely 1.0120x slower
raytrace 57.7508+-0.2079 ?
58.0618+-0.2847 ?
regexp 102.4067+-0.2936 ?
103.1329+-0.4744 ?
richards 204.6559+-1.0139 ^
175.9648+-1.3114 ^ definitely 1.1631x faster
splay 96.0001+-0.5870
95.7168+-0.2982
<arithmetic> 121.1905+-0.2260 ^
116.6931+-0.2717 ^ definitely 1.0385x faster
<geometric> * 107.7836+-0.1350 ^
105.5294+-0.1963 ^ definitely 1.0214x faster
<harmonic> 97.3547+-0.1511 ^
96.5707+-0.1726 ^ definitely 1.0081x faster
TipOfTree CFA
Kraken:
ai-astar 491.8601+-2.3376
489.5730+-2.2160
audio-beat-detection 190.6516+-0.7819 !
193.5275+-1.1763 ! definitely 1.0151x slower
audio-dft 268.0732+-3.6325 ^
259.3428+-1.9135 ^ definitely 1.0337x faster
audio-fft 124.9162+-0.4877
124.7628+-0.2686
audio-oscillator 252.5326+-2.3092
249.5812+-1.6099 might be 1.0118x faster
imaging-darkroom 411.7627+-1.5812 ?
412.7726+-0.8839 ?
imaging-desaturate 229.9889+-0.7966 ^
216.8373+-0.8930 ^ definitely 1.0607x faster
imaging-gaussian-blur 580.7792+-2.4572 ^
565.6115+-1.0252 ^ definitely 1.0268x faster
json-parse-financial 55.2379+-0.3316
55.1255+-0.5643
json-stringify-tinderbox 68.1584+-0.4261
67.6238+-0.1915
stanford-crypto-aes 130.3048+-1.2905 ?
130.4318+-1.5252 ?
stanford-crypto-ccm 99.8189+-0.8939 !
102.0182+-0.9102 ! definitely 1.0220x slower
stanford-crypto-pbkdf2 187.7075+-0.8696 !
190.3954+-1.0340 ! definitely 1.0143x slower
stanford-crypto-sha256-iterative 70.1452+-0.4680 ?
70.3815+-0.4656 ?
<arithmetic> * 225.8527+-0.5194 ^
223.4275+-0.4581 ^ definitely 1.0109x faster
<geometric> 176.3357+-0.4920 ^
175.2288+-0.4434 ^ definitely 1.0063x faster
<harmonic> 137.8869+-0.4240
137.5821+-0.4486
TipOfTree CFA
All benchmarks:
<arithmetic> 88.7294+-0.1670 ^
87.3610+-0.1625 ^ definitely 1.0157x faster
<geometric> 22.9916+-0.0565
22.9087+-0.0767
<harmonic> 7.3403+-0.0588
7.3234+-0.0619
TipOfTree CFA
Geomean of preferred means:
<scaled-result> 53.1110+-0.0676 ^
52.6706+-0.1069 ^ definitely 1.0084x faster
More information about the webkit-reviews
mailing list