[webkit-reviews] review requested: [Bug 71195] DFG ValueAdd(string, int) should not fail speculation : [Attachment 113002] the patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun Oct 30 16:37:11 PDT 2011


Filip Pizlo <fpizlo at apple.com> has asked  for review:
Bug 71195: DFG ValueAdd(string, int) should not fail speculation
https://bugs.webkit.org/show_bug.cgi?id=71195

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

------- Additional Comments from Filip Pizlo <fpizlo at apple.com>
On my MacBook Pro:


Benchmark report for SunSpider, V8, and Kraken.

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc
"CarefulInt" at /Volumes/Data/pizlo/tertiary/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		    CarefulInt 
				 
SunSpider:
   3d-cube				  7.3259+-0.2009	 
7.3073+-0.1861	     
   3d-morph				  7.9552+-0.2032    ^	 
7.5143+-0.1301	     ^ definitely 1.0587x faster
   3d-raytrace				  7.5745+-0.2877	 
7.4723+-0.1598	       might be 1.0137x faster
   access-binary-trees			  1.5919+-0.0532    ?	 
1.6165+-0.0991	     ? might be 1.0155x slower
   access-fannkuch			  6.4633+-0.1043	 
6.4275+-0.0835	     
   access-nbody 			  3.7428+-0.0875    ?	 
3.7665+-0.0755	     ?
   access-nsieve			  2.5399+-0.0561    !	 
2.7178+-0.1177	     ! definitely 1.0700x slower
   bitops-3bit-bits-in-byte		  1.3109+-0.0308    ?	 
1.3318+-0.0350	     ? might be 1.0159x slower
   bitops-bits-in-byte			  2.4184+-0.0493	 
2.3974+-0.0912	     
   bitops-bitwise-and			  3.4004+-0.0707    ?	 
3.4229+-0.1392	     ?
   bitops-nsieve-bits			  5.3733+-0.0885    ?	 
5.4491+-0.1767	     ? might be 1.0141x slower
   controlflow-recursive		  2.1811+-0.0525	 
2.1350+-0.0572	       might be 1.0216x faster
   crypto-aes				  7.5692+-0.3790    ?	 
7.5974+-0.3586	     ?
   crypto-md5				  2.7485+-0.0883	 
2.6901+-0.0641	       might be 1.0217x faster
   crypto-sha1				  2.5225+-0.0831	 
2.5074+-0.0786	     
   date-format-tofte			 10.3182+-0.3545    ?	
10.5272+-0.3219       ? might be 1.0203x slower
   date-format-xparb			  9.5610+-0.3060	 
9.0423+-0.3222	       might be 1.0574x faster
   math-cordic				  6.4785+-0.1218	 
6.3923+-0.0889	       might be 1.0135x faster
   math-partial-sums			  7.6059+-0.2173	 
7.5550+-0.2191	     
   math-spectral-norm			  2.6434+-0.0745	 
2.5893+-0.0622	       might be 1.0209x faster
   regexp-dna				 11.7834+-0.3481    ?	
11.8475+-0.2318       ?
   string-base64			  4.5257+-0.2658	 
4.3191+-0.1457	       might be 1.0478x faster
   string-fasta 			  6.4393+-0.1803	 
6.3954+-0.1645	     
   string-tagcloud			 12.0152+-0.3070	
11.7852+-0.3769 	might be 1.0195x faster
   string-unpack-code			 20.5993+-0.5628    ?	
21.0286+-0.5792       ? might be 1.0208x slower
   string-validate-input		  5.3187+-0.0938    ?	 
5.3893+-0.1995	     ? might be 1.0133x slower

   <arithmetic> *			  6.2310+-0.0409	 
6.2009+-0.0329	     
   <geometric>				  5.0164+-0.0330	 
4.9932+-0.0270	     
   <harmonic>				  3.9982+-0.0342	 
3.9927+-0.0393	     

					    TipOfTree		    CarefulInt 
				 
V8:
   crypto				 73.1664+-0.3527    ?	
73.1677+-0.2378       ?
   deltablue				175.2406+-0.6489    ^  
165.6919+-0.9282       ^ definitely 1.0576x faster
   earley-boyer 			 90.4457+-0.5623    ?	
90.5133+-0.4641       ?
   raytrace				 63.8960+-2.0470	
63.4613+-0.4670       
   regexp				105.8455+-0.5584       
105.0330+-0.4212       
   richards				124.7142+-0.5617    ?  
125.4665+-0.7181       ?
   splay				 93.4173+-0.6427	
92.2681+-0.5995 	might be 1.0125x faster

   <arithmetic> 			103.8179+-0.2809    ^  
102.2288+-0.2332       ^ definitely 1.0155x faster
   <geometric> *			 98.7026+-0.3864    ^	
97.6485+-0.2145       ^ definitely 1.0108x faster
   <harmonic>				 94.2319+-0.5346	
93.5308+-0.2211       

					    TipOfTree		    CarefulInt 
				 
Kraken:
   ai-astar				495.6258+-1.4470       
495.0451+-1.4095       
   audio-beat-detection 		193.1900+-2.1893       
191.1431+-1.4454	 might be 1.0107x faster
   audio-dft				268.4201+-3.4503       
268.2043+-3.1973       
   audio-fft				124.5449+-0.8480    ?  
124.6707+-1.0365       ?
   audio-oscillator			252.6236+-1.2134    ?  
252.7995+-2.6054       ?
   imaging-darkroom			407.1107+-3.2206       
403.5027+-3.6943       
   imaging-desaturate			226.9378+-2.5364       
224.5258+-1.4722	 might be 1.0107x faster
   imaging-gaussian-blur		553.4083+-2.3280       
552.8223+-1.9311       
   json-parse-financial 		 57.1128+-0.1394    !	
57.8648+-0.3231       ! definitely 1.0132x slower
   json-stringify-tinderbox		 68.9238+-0.3309    ?	
68.9904+-0.6905       ?
   stanford-crypto-aes			133.8447+-2.1733       
133.1328+-1.1985       
   stanford-crypto-ccm			100.7223+-1.0065    ?  
102.8278+-2.9258       ? might be 1.0209x slower
   stanford-crypto-pbkdf2		196.1437+-1.4767    ^  
193.2595+-0.7409       ^ definitely 1.0149x faster
   stanford-crypto-sha256-iterative	 71.4571+-0.6219	
70.6566+-0.2515 	might be 1.0113x faster

   <arithmetic> *			225.0047+-0.5366       
224.2461+-0.7780       
   <geometric>				177.4582+-0.2696       
177.0967+-0.6993       
   <harmonic>				139.8567+-0.2994    ?  
139.9118+-0.5708       ?

					    TipOfTree		    CarefulInt 
				 
All benchmarks:
   <arithmetic> 			 85.9319+-0.1747    ^	
85.4526+-0.2378       ^ definitely 1.0056x faster
   <geometric>				 22.6161+-0.0923	
22.5083+-0.0653       
   <harmonic>				  7.0387+-0.0589	 
7.0287+-0.0674	     

					    TipOfTree		    CarefulInt 
				 
Geomean of preferred means:
   <scaled-result>			 51.7234+-0.1504    ^	
51.3977+-0.1042       ^ definitely 1.0063x faster



On my Mac Pro:


Benchmark report for SunSpider, V8, and Kraken.

VMs tested:
"TipOfTree" at
/Volumes/Data/fromMiniMe/quinary/OpenSource/WebKitBuild/Release/jsc
"CarefulInt" at
/Volumes/Data/fromMiniMe/tertiary/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		    CarefulInt 
				 
SunSpider:
   3d-cube				  7.8440+-0.0223    ?	 
7.8919+-0.0482	     ?
   3d-morph				  8.5234+-0.1301	 
8.3797+-0.0302	       might be 1.0172x faster
   3d-raytrace				  8.1137+-0.0931    ?	 
8.1800+-0.1380	     ?
   access-binary-trees			  1.7174+-0.0269	 
1.7090+-0.0218	     
   access-fannkuch			  7.7988+-0.0978	 
7.7535+-0.0110	     
   access-nbody 			  4.5673+-0.0089    ?	 
4.5688+-0.0125	     ?
   access-nsieve			  3.2088+-0.0402    ?	 
3.2164+-0.0232	     ?
   bitops-3bit-bits-in-byte		  1.3095+-0.0154    ?	 
1.3096+-0.0161	     ?
   bitops-bits-in-byte			  4.9947+-0.0474	 
4.9710+-0.0331	     
   bitops-bitwise-and			  3.4317+-0.0609    ?	 
3.4607+-0.0715	     ?
   bitops-nsieve-bits			  5.6564+-0.0331	 
5.6477+-0.0377	     
   controlflow-recursive		  2.3517+-0.0236    ?	 
2.3540+-0.0265	     ?
   crypto-aes				  7.5701+-0.0587	 
7.5595+-0.0231	     
   crypto-md5				  2.8627+-0.0183    ?	 
2.8729+-0.0242	     ?
   crypto-sha1				  2.6270+-0.0206    ?	 
2.6472+-0.0230	     ?
   date-format-tofte			 10.6375+-0.0808    ?	
10.6982+-0.0645       ?
   date-format-xparb			  9.9140+-0.1294    ?	
10.0989+-0.1979       ? might be 1.0186x slower
   math-cordic				  7.2762+-0.0594	 
7.2404+-0.0221	     
   math-partial-sums			 10.5791+-0.0490	
10.5516+-0.0485       
   math-spectral-norm			  2.8966+-0.0232	 
2.8933+-0.0177	     
   regexp-dna				 13.3787+-0.1628	
13.3118+-0.1501       
   string-base64			  4.5195+-0.0185    ?	 
4.5264+-0.0240	     ?
   string-fasta 			  7.1627+-0.0211    ?	 
7.1689+-0.0252	     ?
   string-tagcloud			 13.0597+-0.0785    ?	
13.2237+-0.1193       ? might be 1.0126x slower
   string-unpack-code			 23.1291+-0.1420	
22.9427+-0.1497       
   string-validate-input		  5.7961+-0.0278    ?	 
5.8358+-0.0317	     ?

   <arithmetic> *			  6.9587+-0.0245    ?	 
6.9621+-0.0279	     ?
   <geometric>				  5.6273+-0.0216    ?	 
5.6330+-0.0249	     ?
   <harmonic>				  4.4600+-0.0228    ?	 
4.4643+-0.0260	     ?

					    TipOfTree		    CarefulInt 
				 
V8:
   crypto				 81.3621+-0.3232	
80.9548+-0.2083       
   deltablue				192.7184+-1.2097    ^  
182.7422+-1.6153       ^ definitely 1.0546x faster
   earley-boyer 			111.7999+-0.5667    !  
113.0647+-0.4650       ! definitely 1.0113x slower
   raytrace				 69.4843+-0.6571    ?	
69.9902+-0.1636       ?
   regexp				126.1348+-0.8987    ^  
124.0840+-0.3885       ^ definitely 1.0165x faster
   richards				142.0968+-0.4247    ^  
141.3769+-0.1346       ^ definitely 1.0051x faster
   splay				121.4775+-0.6170    ?  
121.8387+-0.6534       ?

   <arithmetic> 			120.7248+-0.2570    ^  
119.1502+-0.3412       ^ definitely 1.0132x faster
   <geometric> *			114.9465+-0.1791    ^  
113.9977+-0.2625       ^ definitely 1.0083x faster
   <harmonic>				109.3425+-0.1394    ^  
108.8668+-0.2012       ^ definitely 1.0044x faster

					    TipOfTree		    CarefulInt 
				 
Kraken:
   ai-astar				816.1167+-13.0761   ?  
824.9342+-11.1520      ? might be 1.0108x slower
   audio-beat-detection 		213.2418+-1.3848       
212.9750+-0.9994       
   audio-dft				262.1463+-2.6353    ?  
268.3749+-7.2382       ? might be 1.0238x slower
   audio-fft				133.3075+-0.9497       
133.1602+-0.7139       
   audio-oscillator			290.3676+-1.0905    ?  
291.8766+-1.4937       ?
   imaging-darkroom			442.5757+-2.2209    ?  
448.0228+-7.1744       ? might be 1.0123x slower
   imaging-desaturate			245.2036+-0.1339       
245.1909+-0.0931       
   imaging-gaussian-blur		621.4213+-0.3113       
621.1067+-0.1200       
   json-parse-financial 		 72.1867+-0.1426	
71.6634+-0.8350       
   json-stringify-tinderbox		 79.2767+-0.3358    ^	
78.7205+-0.1798       ^ definitely 1.0071x faster
   stanford-crypto-aes			151.3100+-1.3998    ?  
152.5743+-2.0676       ?
   stanford-crypto-ccm			115.7618+-0.5269       
115.5246+-0.5450       
   stanford-crypto-pbkdf2		238.1239+-2.3985    ?  
239.5616+-4.6322       ?
   stanford-crypto-sha256-iterative	 85.1225+-0.1959    ?	
85.5411+-0.2729       ?

   <arithmetic> *			269.0116+-0.9170    ?  
270.6590+-1.7696       ?
   <geometric>				205.6371+-0.3837    ?  
206.3804+-0.9686       ?
   <harmonic>				162.2444+-0.2454    ?  
162.3375+-0.5396       ?

					    TipOfTree		    CarefulInt 
				 
All benchmarks:
   <arithmetic> 			101.9609+-0.2875    ?  
102.2190+-0.5113       ?
   <geometric>				 25.7602+-0.0695    ?	
25.7705+-0.0835       ?
   <harmonic>				  7.8596+-0.0393    ?	 
7.8668+-0.0449	     ?

					    TipOfTree		    CarefulInt 
				 
Geomean of preferred means:
   <scaled-result>			 59.9234+-0.1327	
59.8887+-0.1594


More information about the webkit-reviews mailing list