[webkit-reviews] review requested: [Bug 69996] DFG should have inlining : [Attachment 111861] more work in progress
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu Oct 20 15:46:49 PDT 2011
Filip Pizlo <fpizlo at apple.com> has asked for review:
Bug 69996: DFG should have inlining
https://bugs.webkit.org/show_bug.cgi?id=69996
Attachment 111861: more work in progress
https://bugs.webkit.org/attachment.cgi?id=111861&action=review
------- Additional Comments from Filip Pizlo <fpizlo at apple.com>
This isn't fully tested yet but it has a good chunk of functionality for
landing once all bugs are addressed. It's not yet complete though, so more
patches will come after this one to flesh out the functionality. Notably, we
don't inline constructors (even though we really should) and we don't have a
good inlining heuristics story yet.
On the V8 harness, it's an 8.7% speed-up. Here's the performance using my
harness:
Benchmark report for SunSpider, V8, and Kraken.
VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc
"Inlining" at /Volumes/Data/pizlo/septenary/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 Inlining
SunSpider:
3d-cube 7.2294+-0.1743 ?
7.3492+-0.1425 ? might be 1.0166x slower
3d-morph 7.6382+-0.1203 ?
7.6582+-0.1256 ?
3d-raytrace 7.5246+-0.1949 ?
7.6317+-0.1888 ? might be 1.0142x slower
access-binary-trees 1.7486+-0.0494
1.7437+-0.0460
access-fannkuch 6.5008+-0.1280
6.4137+-0.1062 might be 1.0136x faster
access-nbody 3.3089+-0.0763 !
3.5599+-0.0831 ! definitely 1.0759x slower
access-nsieve 2.6140+-0.0645 ?
2.6633+-0.0950 ? might be 1.0188x slower
bitops-3bit-bits-in-byte 1.7503+-0.0280 ^
1.2948+-0.0372 ^ definitely 1.3518x faster
bitops-bits-in-byte 2.7918+-0.0953 ^
2.3645+-0.0767 ^ definitely 1.1807x faster
bitops-bitwise-and 3.4221+-0.1173
3.3934+-0.0957
bitops-nsieve-bits 5.4132+-0.1308
5.3306+-0.0769 might be 1.0155x faster
controlflow-recursive 2.1608+-0.0553
2.1481+-0.0479
crypto-aes 6.7897+-0.1909 !
7.2303+-0.2243 ! definitely 1.0649x slower
crypto-md5 2.7882+-0.0802
2.7425+-0.0615 might be 1.0167x faster
crypto-sha1 2.5315+-0.0735
2.4292+-0.0628 might be 1.0421x faster
date-format-tofte 10.1474+-0.2384
9.9917+-0.2174 might be 1.0156x faster
date-format-xparb 8.8026+-0.1675 ?
9.2311+-0.3072 ? might be 1.0487x slower
math-cordic 6.5753+-0.2417
6.5217+-0.1291
math-partial-sums 7.6060+-0.1360 ?
7.6328+-0.1490 ?
math-spectral-norm 2.8472+-0.0610 ^
2.5817+-0.0614 ^ definitely 1.1028x faster
regexp-dna 11.6238+-0.1617
11.4674+-0.1856 might be 1.0136x faster
string-base64 4.4783+-0.1092
4.3667+-0.1042 might be 1.0256x faster
string-fasta 6.3774+-0.1054
6.3234+-0.1221
string-tagcloud 11.4621+-0.1364
11.4097+-0.2304
string-unpack-code 20.2390+-0.2392
20.1693+-0.2645
string-validate-input 5.2160+-0.1046 ?
5.2871+-0.1256 ? might be 1.0136x slower
<arithmetic> * 6.1380+-0.0387
6.1129+-0.0295
<geometric> 5.0496+-0.0307 ^
4.9542+-0.0300 ^ definitely 1.0192x faster
<harmonic> 4.1716+-0.0276 ^
3.9812+-0.0323 ^ definitely 1.0478x faster
TipOfTree Inlining
V8:
crypto 73.4235+-0.4433 !
75.0053+-0.5804 ! definitely 1.0215x slower
deltablue 228.1755+-1.0590 ^
171.0148+-0.7583 ^ definitely 1.3342x faster
earley-boyer 91.4364+-1.6587 ?
94.3709+-1.4916 ? might be 1.0321x slower
raytrace 58.3178+-0.2884 !
59.9449+-0.4125 ! definitely 1.0279x slower
regexp 106.6983+-0.6395
106.3563+-0.5184
richards 183.5438+-0.5371 ^
142.4662+-0.4241 ^ definitely 1.2883x faster
splay 97.2676+-0.5820 ^
95.9481+-0.6546 ^ definitely 1.0138x faster
<arithmetic> 119.8376+-0.3437 ^
106.4438+-0.3814 ^ definitely 1.1258x faster
<geometric> * 107.8833+-0.3250 ^
100.7615+-0.4141 ^ definitely 1.0707x faster
<harmonic> 98.3173+-0.3068 ^
95.4845+-0.4341 ^ definitely 1.0297x faster
TipOfTree Inlining
Kraken:
ai-astar 506.3080+-8.7997
504.8021+-3.0190
audio-beat-detection 195.2658+-1.2351
194.5032+-1.0999
audio-dft 272.5609+-2.2965
270.2281+-1.5971
audio-fft 126.5316+-1.1957 ?
126.5381+-1.1408 ?
audio-oscillator 255.5309+-2.0254
254.8838+-1.3599
imaging-darkroom 422.1903+-1.7198 ^
409.7418+-3.5790 ^ definitely 1.0304x faster
imaging-desaturate 222.6997+-0.4788 ?
223.1201+-1.2055 ?
imaging-gaussian-blur 562.7176+-2.0577 ?
563.6714+-1.7784 ?
json-parse-financial 57.2528+-0.3100 ^
56.3006+-0.2807 ^ definitely 1.0169x faster
json-stringify-tinderbox 68.5532+-0.5595 !
70.0214+-0.2980 ! definitely 1.0214x slower
stanford-crypto-aes 133.5707+-1.7238
132.0632+-1.7421 might be 1.0114x faster
stanford-crypto-ccm 102.6632+-1.2818 ?
102.7728+-0.8918 ?
stanford-crypto-pbkdf2 196.2656+-1.0252 ?
198.3048+-2.5661 ? might be 1.0104x slower
stanford-crypto-sha256-iterative 71.2168+-0.2476 !
72.1844+-0.4220 ! definitely 1.0136x slower
<arithmetic> * 228.0948+-0.7858
227.0811+-0.5272
<geometric> 178.9893+-0.5003
178.6557+-0.4535
<harmonic> 140.4928+-0.3341 ?
140.5655+-0.4151 ?
TipOfTree Inlining
All benchmarks:
<arithmetic> 89.1867+-0.2757 ^
86.8761+-0.1709 ^ definitely 1.0266x faster
<geometric> 23.0604+-0.0983 ^
22.5749+-0.0838 ^ definitely 1.0215x faster
<harmonic> 7.3397+-0.0477 ^
7.0112+-0.0556 ^ definitely 1.0469x faster
TipOfTree Inlining
Geomean of preferred means:
<scaled-result> 53.2550+-0.1847 ^
51.9082+-0.1028 ^ definitely 1.0259x faster
More information about the webkit-reviews
mailing list