[webkit-reviews] review requested: [Bug 71202] DFG OSR exits should add to value profiles : [Attachment 113022] the patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Oct 31 01:42:04 PDT 2011


Filip Pizlo <fpizlo at apple.com> has asked  for review:
Bug 71202: DFG OSR exits should add to value profiles
https://bugs.webkit.org/show_bug.cgi?id=71202

Attachment 113022: the patch
https://bugs.webkit.org/attachment.cgi?id=113022&action=review

------- Additional Comments from Filip Pizlo <fpizlo at apple.com>
Implemented 32_64.  Fixed some pathologies that I found along the way.

Performance on my MBP:


Benchmark report for SunSpider, V8, and Kraken.

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc
"OSRExitProfile" at /Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/jsc

Collected 12 samples per benchmark/VM, with 4 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		 
OSRExitProfile				       
SunSpider:
   3d-cube				  7.4545+-0.2832	 
7.2920+-0.2150	       might be 1.0223x faster
   3d-morph				  7.6612+-0.1539	 
7.5698+-0.1604	       might be 1.0121x faster
   3d-raytrace				  7.5646+-0.1959	 
7.5226+-0.2498	     
   access-binary-trees			  1.7036+-0.0889	 
1.6274+-0.0497	       might be 1.0468x faster
   access-fannkuch			  6.5161+-0.1284    ?	 
6.5336+-0.1356	     ?
   access-nbody 			  3.7941+-0.0783	 
3.7882+-0.0742	     
   access-nsieve			  2.6010+-0.1113    ?	 
2.6077+-0.0756	     ?
   bitops-3bit-bits-in-byte		  1.3291+-0.0764	 
1.2797+-0.0307	       might be 1.0386x faster
   bitops-bits-in-byte			  2.4330+-0.0468	 
2.4273+-0.0345	     
   bitops-bitwise-and			  3.5000+-0.3836	 
3.3709+-0.1231	       might be 1.0383x faster
   bitops-nsieve-bits			  5.5452+-0.1208	 
5.5114+-0.1194	     
   controlflow-recursive		  2.1032+-0.0495    ?	 
2.1054+-0.0467	     ?
   crypto-aes				  7.5267+-0.2766    ?	 
7.6808+-0.2884	     ? might be 1.0205x slower
   crypto-md5				  2.7573+-0.0798	 
2.6895+-0.0813	       might be 1.0252x faster
   crypto-sha1				  2.5158+-0.0961    ?	 
2.5269+-0.0744	     ?
   date-format-tofte			 10.5336+-0.3881	
10.0672+-0.3106 	might be 1.0463x faster
   date-format-xparb			  9.2902+-0.2910    ?	 
9.7650+-0.2773	     ? might be 1.0511x slower
   math-cordic				  6.5445+-0.1407	 
6.4691+-0.1203	       might be 1.0117x faster
   math-partial-sums			  7.4331+-0.1180    ?	 
7.4579+-0.1256	     ?
   math-spectral-norm			  2.5659+-0.0569    ?	 
2.6255+-0.0755	     ? might be 1.0232x slower
   regexp-dna				 11.7454+-0.2662	
11.5669+-0.2919 	might be 1.0154x faster
   string-base64			  4.5259+-0.2209    ^	 
4.0954+-0.1086	     ^ definitely 1.1051x faster
   string-fasta 			  6.3696+-0.1226    ?	 
6.4395+-0.2528	     ? might be 1.0110x slower
   string-tagcloud			 11.8794+-0.5258	
11.6764+-0.4317 	might be 1.0174x faster
   string-unpack-code			 21.0209+-0.5359	
21.0046+-0.4777       
   string-validate-input		  5.3864+-0.1639	 
5.3293+-0.2266	       might be 1.0107x faster

   <arithmetic> *			  6.2423+-0.0458	 
6.1935+-0.0323	     
   <geometric>				  5.0308+-0.0482	 
4.9799+-0.0249	       might be 1.0102x faster
   <harmonic>				  4.0224+-0.0589	 
3.9694+-0.0275	       might be 1.0134x faster

					    TipOfTree		 
OSRExitProfile				       
V8:
   crypto				 72.7642+-0.4655    !	
73.7216+-0.4294       ! definitely 1.0132x slower
   deltablue				165.3919+-0.6548    ?  
167.2993+-2.5104       ? might be 1.0115x slower
   earley-boyer 			 90.5715+-0.4088    !	
91.4635+-0.3694       ! definitely 1.0098x slower
   raytrace				 63.0878+-0.5189    ?	
63.1119+-0.4952       ?
   regexp				104.5092+-0.2850    ?  
104.6082+-0.5008       ?
   richards				125.1410+-0.7511       
124.6242+-0.4366       
   splay				 92.6263+-0.8803	
91.7876+-0.3696       

   <arithmetic> 			102.0131+-0.2478    ?  
102.3737+-0.3549       ?
   <geometric> *			 97.4202+-0.2436    ?	
97.7310+-0.2245       ?
   <harmonic>				 93.2800+-0.2585    ?	
93.5759+-0.1745       ?

					    TipOfTree		 
OSRExitProfile				       
Kraken:
   ai-astar				497.8291+-2.2483       
495.2406+-4.7121       
   audio-beat-detection 		190.5957+-1.5949    ?  
191.3128+-2.4672       ?
   audio-dft				271.3709+-7.4366       
264.9552+-2.7768	 might be 1.0242x faster
   audio-fft				124.2120+-1.0364       
123.6318+-0.7699       
   audio-oscillator			251.2518+-1.6367    ?  
252.5525+-1.8577       ?
   imaging-darkroom			438.3063+-43.5788   ^  
300.6240+-3.8107       ^ definitely 1.4580x faster
   imaging-desaturate			225.0933+-0.9025       
224.7551+-1.1130       
   imaging-gaussian-blur		553.4834+-2.1758       
552.4078+-2.6317       
   json-parse-financial 		 57.6940+-0.2728	
57.5327+-0.5092       
   json-stringify-tinderbox		 68.7863+-0.7813	
68.4622+-0.6336       
   stanford-crypto-aes			133.4748+-1.5811    ^	
96.9603+-1.0838       ^ definitely 1.3766x faster
   stanford-crypto-ccm			100.3808+-1.5548	
99.5330+-1.0401       
   stanford-crypto-pbkdf2		192.9906+-0.8765    ?  
196.4618+-2.8331       ? might be 1.0180x slower
   stanford-crypto-sha256-iterative	 71.0408+-0.7204    !	
79.7118+-0.3803       ! definitely 1.1221x slower

   <arithmetic> *			226.8936+-2.7807    ^  
214.5816+-0.4404       ^ definitely 1.0574x faster
   <geometric>				177.8281+-0.9731    ^  
170.3935+-0.4246       ^ definitely 1.0436x faster
   <harmonic>				139.7862+-0.3273    ^  
136.3782+-0.4782       ^ definitely 1.0250x faster

					    TipOfTree		 
OSRExitProfile				       
All benchmarks:
   <arithmetic> 			 86.2320+-0.8017    ^	
82.5912+-0.1293       ^ definitely 1.0441x faster
   <geometric>				 22.6213+-0.1161    ^	
22.2213+-0.0647       ^ definitely 1.0180x faster
   <harmonic>				  7.0792+-0.1007	 
6.9861+-0.0471	       might be 1.0133x faster

					    TipOfTree		 
OSRExitProfile				       
Geomean of preferred means:
   <scaled-result>			 51.6707+-0.1784    ^	
50.6426+-0.1111       ^ definitely 1.0203x faster


Performance on my Mac Pro:


Benchmark report for SunSpider, V8, and Kraken.

VMs tested:
"TipOfTree" at
/Volumes/Data/fromMiniMe/quinary/OpenSource/WebKitBuild/Release/jsc
"OSRExitProfile" at /Volumes/Data/fromMiniMe/OpenSource/WebKitBuild/Release/jsc


Collected 12 samples per benchmark/VM, with 4 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		 
OSRExitProfile				       
SunSpider:
   3d-cube				  7.9226+-0.0726	 
7.9218+-0.0725	     
   3d-morph				  8.4109+-0.0357    !	 
8.6122+-0.1463	     ! definitely 1.0239x slower
   3d-raytrace				  8.2457+-0.1275	 
8.1584+-0.0989	       might be 1.0107x faster
   access-binary-trees			  1.7159+-0.0235	 
1.7122+-0.0244	     
   access-fannkuch			  7.7707+-0.0323    !	 
7.8800+-0.0327	     ! definitely 1.0141x slower
   access-nbody 			  4.6132+-0.0267    ^	 
4.5377+-0.0119	     ^ definitely 1.0166x faster
   access-nsieve			  3.2429+-0.0318	 
3.2209+-0.0202	     
   bitops-3bit-bits-in-byte		  1.3253+-0.0088	 
1.3217+-0.0118	     
   bitops-bits-in-byte			  4.9741+-0.0289    ?	 
4.9939+-0.0235	     ?
   bitops-bitwise-and			  3.4683+-0.0677    ?	 
3.4788+-0.0910	     ?
   bitops-nsieve-bits			  5.7003+-0.0376	 
5.6874+-0.0379	     
   controlflow-recursive		  2.3656+-0.0301	 
2.3521+-0.0241	     
   crypto-aes				  7.6225+-0.0454    !	 
7.7965+-0.0962	     ! definitely 1.0228x slower
   crypto-md5				  2.8842+-0.0301    ?	 
2.8846+-0.0220	     ?
   crypto-sha1				  2.6554+-0.0292	 
2.6467+-0.0274	     
   date-format-tofte			 10.8094+-0.0904	
10.6824+-0.1033 	might be 1.0119x faster
   date-format-xparb			 10.2739+-0.0636    !	
11.2169+-0.4809       ! definitely 1.0918x slower
   math-cordic				  7.2778+-0.0287	 
7.2759+-0.0338	     
   math-partial-sums			 10.5738+-0.0555	
10.5579+-0.0218       
   math-spectral-norm			  2.9220+-0.0349	 
2.8988+-0.0226	     
   regexp-dna				 13.4306+-0.1902    ?	
13.6700+-0.2354       ? might be 1.0178x slower
   string-base64			  4.5318+-0.0131    ^	 
4.3737+-0.0480	     ^ definitely 1.0361x faster
   string-fasta 			  7.1551+-0.0175    ?	 
7.2128+-0.0580	     ?
   string-tagcloud			 13.1124+-0.0961	
13.0921+-0.0823       
   string-unpack-code			 23.1503+-0.2013	
23.0892+-0.1106       
   string-validate-input		  5.8721+-0.0375    ^	 
5.7439+-0.0192	     ^ definitely 1.0223x faster

   <arithmetic> *			  7.0010+-0.0275    ?	 
7.0392+-0.0385	     ?
   <geometric>				  5.6642+-0.0235    ?	 
5.6740+-0.0273	     ?
   <harmonic>				  4.4911+-0.0229	 
4.4824+-0.0236	     

					    TipOfTree		 
OSRExitProfile				       
V8:
   crypto				 81.4879+-0.5618    ?	
81.6116+-0.5521       ?
   deltablue				182.8618+-1.5267       
182.3407+-1.5476       
   earley-boyer 			114.2309+-0.5866    ^  
112.4634+-0.4256       ^ definitely 1.0157x faster
   raytrace				 70.4738+-0.2521    ^	
69.4215+-0.7369       ^ definitely 1.0152x faster
   regexp				125.1142+-0.8947       
124.7320+-0.4422       
   richards				141.8218+-0.2707    !  
144.2976+-0.3103       ! definitely 1.0175x slower
   splay				122.3796+-0.5153    ^  
121.3030+-0.5030       ^ definitely 1.0089x faster

   <arithmetic> 			119.7671+-0.3736       
119.4528+-0.2912       
   <geometric> *			114.6531+-0.3189       
114.2175+-0.2599       
   <harmonic>				109.5415+-0.2858       
108.9818+-0.2788       

					    TipOfTree		 
OSRExitProfile				       
Kraken:
   ai-astar				816.5574+-12.8439   ?  
827.0204+-0.7326       ? might be 1.0128x slower
   audio-beat-detection 		213.8757+-0.9533    ^  
211.2199+-0.9561       ^ definitely 1.0126x faster
   audio-dft				269.7655+-7.9556       
262.5692+-3.1835	 might be 1.0274x faster
   audio-fft				133.3203+-0.2228    !  
137.8996+-0.6059       ! definitely 1.0343x slower
   audio-oscillator			292.7531+-1.2667    ?  
293.1369+-1.3357       ?
   imaging-darkroom			462.4961+-11.1884   ^  
340.0617+-5.4201       ^ definitely 1.3600x faster
   imaging-desaturate			245.5975+-0.4425    ^  
241.5062+-0.2790       ^ definitely 1.0169x faster
   imaging-gaussian-blur		622.4428+-0.6371       
622.2575+-0.5368       
   json-parse-financial 		 71.9435+-0.6837	
71.3530+-0.4389       
   json-stringify-tinderbox		 79.4496+-0.4179	
79.4022+-0.3451       
   stanford-crypto-aes			154.8135+-2.3105    ^  
116.4911+-0.5211       ^ definitely 1.3290x faster
   stanford-crypto-ccm			116.2768+-1.2510    ?  
116.3312+-0.6872       ?
   stanford-crypto-pbkdf2		235.4881+-1.7905    ?  
236.9285+-1.1141       ?
   stanford-crypto-sha256-iterative	 85.8812+-0.1605    !	
98.6669+-0.2702       ! definitely 1.1489x slower

   <arithmetic> *			271.4758+-1.2765    ^  
261.0603+-0.3748       ^ definitely 1.0399x faster
   <geometric>				207.2575+-0.4542    ^  
200.5239+-0.3073       ^ definitely 1.0336x faster
   <harmonic>				163.1304+-0.2808    ^  
160.4491+-0.2487       ^ definitely 1.0167x faster

					    TipOfTree		 
OSRExitProfile				       
All benchmarks:
   <arithmetic> 			102.5757+-0.3941    ^	
99.4475+-0.1162       ^ definitely 1.0315x faster
   <geometric>				 25.9042+-0.0727    ^	
25.6604+-0.0722       ^ definitely 1.0095x faster
   <harmonic>				  7.9138+-0.0395	 
7.8966+-0.0406	     

					    TipOfTree		 
OSRExitProfile				       
Geomean of preferred means:
   <scaled-result>			 60.1758+-0.1473    ^	
59.4285+-0.1256       ^ definitely 1.0126x faster


More information about the webkit-reviews mailing list