[webkit-reviews] review requested: [Bug 68597] DFG JIT should support integer division : [Attachment 108295] the patch - more goodness added

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Sep 22 02:08:17 PDT 2011


Filip Pizlo <fpizlo at apple.com> has asked  for review:
Bug 68597: DFG JIT should support integer division
https://bugs.webkit.org/show_bug.cgi?id=68597

Attachment 108295: the patch - more goodness added
https://bugs.webkit.org/attachment.cgi?id=108295&action=review

------- Additional Comments from Filip Pizlo <fpizlo at apple.com>
This is a small win by itself, and a big win when combined with
https://bugs.webkit.org/show_bug.cgi?id=68582.


Benchmark report for SunSpider, V8, and Kraken.

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc
"IntDiv" at /Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/jsc
"IntDivStrCat" 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		      IntDiv   
	   IntDivStrCat        IntDivStrCat v. TipOfTree 
SunSpider:
   3d-cube				  7.7031+-0.2217    ?	 
7.8395+-0.2910		7.6701+-0.1962	     
   3d-morph				  7.5458+-0.1330	 
7.5094+-0.2132		7.4666+-0.2495	       might be 1.0106x faster
   3d-raytrace				  7.5513+-0.2014    ?	 
7.8452+-0.3016		7.7827+-0.1491	     ? might be 1.0306x slower
   access-binary-trees			  2.0995+-0.0579	 
2.0684+-0.0596	  ?	2.1379+-0.1433	     ? might be 1.0183x slower
   access-fannkuch			 11.8476+-0.3710	
11.7814+-0.2936    ?	11.8475+-0.3008       
   access-nbody 			  3.5674+-0.0885	 
3.4518+-0.0559	  ?	3.5763+-0.0967	     ?
   access-nsieve			  2.5801+-0.0738    ?	 
2.6087+-0.0895		2.5845+-0.0629	     ?
   bitops-3bit-bits-in-byte		  1.8394+-0.0448    ?	 
1.8507+-0.0570		1.8055+-0.0425	       might be 1.0188x faster
   bitops-bits-in-byte			  2.8397+-0.0606    ?	 
2.8577+-0.0704		2.8486+-0.0719	     ?
   bitops-bitwise-and			  3.7522+-0.1308	 
3.6579+-0.1029		3.6303+-0.1049	       might be 1.0336x faster
   bitops-nsieve-bits			  5.3488+-0.1198	 
5.2944+-0.1290	  ?	5.4255+-0.1257	     ? might be 1.0143x slower
   controlflow-recursive		  2.2455+-0.0651	 
2.2167+-0.0437		2.2005+-0.0542	       might be 1.0204x faster
   crypto-aes				  6.8923+-0.3697	 
6.3176+-0.2402		6.1573+-0.1484	     ^ definitely 1.1194x faster
   crypto-md5				  2.8049+-0.0709    ^	 
2.5663+-0.0668		2.4669+-0.0729	     ^ definitely 1.1370x faster
   crypto-sha1				  2.3478+-0.0652    ^	 
2.1351+-0.0607	  ?	2.1476+-0.0806	     ^ definitely 1.0932x faster
   date-format-tofte			 10.3161+-0.2810	
10.2830+-0.2989    ?	10.4249+-0.2628       ? might be 1.0105x slower
   date-format-xparb			  8.7798+-0.2838	 
8.7494+-0.2496	  ?	8.9220+-0.2599	     ? might be 1.0162x slower
   math-cordic				  6.3076+-0.1537	 
6.1111+-0.1149		6.0745+-0.0764	     ^ definitely 1.0384x faster
   math-partial-sums			  7.3659+-0.1267    ?	 
7.4812+-0.1393	  ?	7.6897+-0.2075	     ? might be 1.0440x slower
   math-spectral-norm			  2.7030+-0.1058    !	 
2.9985+-0.0863	  ?	3.0546+-0.0794	     ! definitely 1.1300x slower
   regexp-dna				 10.8762+-0.1921	
10.8190+-0.1663    ?	10.9030+-0.2224       ?
   string-base64			  5.8533+-0.1371    ?	 
5.8618+-0.1759	  ?	5.9906+-0.2396	     ? might be 1.0235x slower
   string-fasta 			  7.2075+-0.1744	 
7.1327+-0.1970		7.1087+-0.1609	       might be 1.0139x faster
   string-tagcloud			 11.9179+-0.3311    ?	
11.9804+-0.3916    ?	12.0016+-0.3266       ?
   string-unpack-code			 18.7440+-0.3804    ?	
18.8508+-0.5263    ?	19.2606+-0.6360       ? might be 1.0276x slower
   string-validate-input		  6.4930+-0.0958    ?	 
6.6237+-0.2460		6.4775+-0.1372	     

   <arithmetic> 			  6.4435+-0.0377	 
6.4189+-0.0338	  ?	6.4483+-0.0393	     ?
   <geometric>				  5.3328+-0.0319	 
5.2913+-0.0219	  ?	5.3018+-0.0402	     
   <harmonic>				  4.3898+-0.0353	 
4.3388+-0.0330		4.3374+-0.0541	       might be 1.0121x faster

					    TipOfTree		      IntDiv   
	   IntDivStrCat        IntDivStrCat v. TipOfTree 
V8:
   crypto				 71.2496+-0.2918    ?	
71.3862+-0.3429 	71.1184+-0.5196       
   deltablue				237.3015+-1.4425    ?  
237.3798+-1.0827	236.5956+-1.3604       
   earley-boyer 			 88.2273+-0.3942	
88.1260+-0.3059 	87.9492+-0.3159       
   raytrace				 64.1057+-0.6186    ?	
65.0615+-0.5036    ^	62.6563+-0.4224       ^ definitely 1.0231x faster
   regexp				105.5161+-0.4444    !  
106.6996+-0.3355    !	108.3552+-0.6639       ! definitely 1.0269x slower
   richards				198.5336+-0.7411    ?  
199.2889+-0.7026	199.0919+-0.6748       ?
   splay				 98.3329+-0.2213    ?	
98.5661+-0.5356 	98.0713+-0.4491       

   <arithmetic> 			123.3238+-0.2493    ?  
123.7869+-0.2621	123.4054+-0.1661       ?
   <geometric>				110.1665+-0.2139    !  
110.6913+-0.2509    ^	110.1008+-0.1791       
   <harmonic>				100.1846+-0.2352    !  
100.7525+-0.2618    ^	 99.8989+-0.2373       

					    TipOfTree		      IntDiv   
	   IntDivStrCat        IntDivStrCat v. TipOfTree 
Kraken:
   ai-astar				616.6539+-2.9734       
611.4591+-4.2299    ?	615.3805+-4.1636       
   audio-beat-detection 		467.0274+-4.0021    ^  
377.9344+-1.6609    ^	204.5658+-1.0722       ^ definitely 2.2830x faster
   audio-dft				422.0664+-1.7690       
421.1265+-2.1315	419.6968+-2.5885       
   audio-fft				363.5815+-2.0561    ^  
312.9141+-0.8157    ^	141.5586+-0.9472       ^ definitely 2.5684x faster
   audio-oscillator			254.2253+-1.3820    !  
258.3617+-1.3677    ?	258.4752+-1.0439       ! definitely 1.0167x slower
   imaging-darkroom			422.4535+-1.9687       
420.4771+-1.1829    ?	421.7214+-0.7025       
   imaging-desaturate			208.7662+-0.5285    ?  
208.9123+-0.7579    ?	210.1087+-1.2589       ?
   imaging-gaussian-blur		594.3785+-1.2263       
594.0332+-0.8333    !	598.2852+-3.3919       ?
   json-parse-financial 		 48.0277+-0.2236    !	
48.6539+-0.3093 	48.6490+-0.2884       ! definitely 1.0129x slower
   json-stringify-tinderbox		 68.8110+-0.2238    ^	
68.0999+-0.3462    !	70.1338+-0.5934       ! definitely 1.0192x slower
   stanford-crypto-aes			137.5441+-0.4898    ^  
134.0939+-1.0359    ?	135.0720+-0.7700       ^ definitely 1.0183x faster
   stanford-crypto-ccm			109.4925+-0.5785    ^  
104.6828+-0.9352    !	105.8698+-0.2324       ^ definitely 1.0342x faster
   stanford-crypto-pbkdf2		208.6068+-3.2304       
204.5755+-0.9357    ?	205.3682+-1.0130	 might be 1.0158x faster
   stanford-crypto-sha256-iterative	 84.5903+-0.2556    ?	
84.9048+-0.5000    ?	85.2254+-0.4590       ?

   <arithmetic> 			286.1589+-0.5195    ^  
275.0164+-0.4482    ^	251.4365+-0.4675       ^ definitely 1.1381x faster
   <geometric>				217.1089+-0.4842    ^  
210.3265+-0.3279    ^	191.2333+-0.3325       ^ definitely 1.1353x faster
   <harmonic>				155.4981+-0.3995    ^  
153.0205+-0.3357    ^	144.4740+-0.3776       ^ definitely 1.0763x faster

					    TipOfTree		      IntDiv   
	   IntDivStrCat        IntDivStrCat v. TipOfTree 
All benchmarks:
   <arithmetic> 			107.1707+-0.1773    ^  
103.9070+-0.1572    ^	 96.8426+-0.1626       ^ definitely 1.1066x faster
   <geometric>				 25.2527+-0.0971    ^	
24.9250+-0.0673    ^	24.2354+-0.1112       ^ definitely 1.0420x faster
   <harmonic>				  7.7267+-0.0608	 
7.6381+-0.0568		7.6281+-0.0927	       might be 1.0129x faster


More information about the webkit-reviews mailing list