[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