[webkit-reviews] review requested: [Bug 67985] SpeculativeJIT::shouldSpeculateInteger(NodeIndex, NodeIndex) should return false if either node can be double : [Attachment 107234] the patch - fix review, and hardened shouldSpeculateInteger() even more

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Sep 13 14:49:30 PDT 2011


Filip Pizlo <fpizlo at apple.com> has asked  for review:
Bug 67985: SpeculativeJIT::shouldSpeculateInteger(NodeIndex, NodeIndex) should
return false if either node can be double
https://bugs.webkit.org/show_bug.cgi?id=67985

Attachment 107234: the patch - fix review, and hardened
shouldSpeculateInteger() even more
https://bugs.webkit.org/attachment.cgi?id=107234&action=review

------- Additional Comments from Filip Pizlo <fpizlo at apple.com>
Here are the latest perf numbers:



Benchmark report for SunSpider, V8, and Kraken.

VMs tested:
"TipOfTree" at /Volumes/Data/pizlo/octonary/OpenSource/WebKitBuild/Release/jsc
"TipOfTreeDyn" at
/Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc
"CarefulNumber" at
/Volumes/Data/pizlo/tertiary/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		   TipOfTreeDyn
	  CarefulNumber        CarefulNumber v. TipOfTree
SunSpider:
   3d-cube				  7.7000+-0.1110    !	 
9.0728+-0.2063	  ^	7.7518+-0.1422	     ?
   3d-morph				  7.4553+-0.1671    ?	 
7.5690+-0.1943		7.4558+-0.1516	     ?
   3d-raytrace				  7.6957+-0.2284	 
7.5390+-0.1541	  ?	7.7188+-0.2071	     ?
   access-binary-trees			  2.2838+-0.0962    ?	 
2.4106+-0.1220		2.2463+-0.0583	       might be 1.0167x faster
   access-fannkuch			 11.7680+-0.1695	
11.6634+-0.1932    ?	11.7183+-0.2692       
   access-nbody 			  4.2794+-0.0558	 
4.2430+-0.1707		4.1893+-0.0973	       might be 1.0215x faster
   access-nsieve			  2.6066+-0.1488	 
2.5871+-0.0419		2.5849+-0.0392	     
   bitops-3bit-bits-in-byte		  1.7161+-0.0694	 
1.6783+-0.0393	  ?	1.6990+-0.0539	       might be 1.0101x faster
   bitops-bits-in-byte			  3.2165+-0.0406    ?	 
3.2256+-0.0493		3.1281+-0.0669	       might be 1.0283x faster
   bitops-bitwise-and			  3.6744+-0.0978	 
3.5958+-0.1036		3.5818+-0.0980	       might be 1.0258x faster
   bitops-nsieve-bits			  5.4681+-0.1144	 
5.4025+-0.1006		5.3010+-0.1118	       might be 1.0315x faster
   controlflow-recursive		  1.9870+-0.0448    ?	 
2.0253+-0.0299		1.9628+-0.0425	       might be 1.0123x faster
   crypto-aes				  6.6115+-0.1839    !	 
7.3610+-0.4124		7.1159+-0.3231	     ? might be 1.0763x slower
   crypto-md5				  2.9036+-0.0785	 
2.7903+-0.0977		2.7666+-0.1011	       might be 1.0495x faster
   crypto-sha1				  2.3284+-0.0785	 
2.2361+-0.0427	  ^	2.1552+-0.0330	     ^ definitely 1.0804x faster
   date-format-tofte			 10.3591+-0.4120	
10.3206+-0.2688 	10.2628+-0.2429       
   date-format-xparb			  8.4283+-0.2384    ?	 
8.9335+-0.3087		8.5139+-0.1523	     ? might be 1.0102x slower
   math-cordic				  6.3591+-0.1185	 
6.3367+-0.0792	  ^	6.1589+-0.0684	     ^ definitely 1.0325x faster
   math-partial-sums			  7.7329+-0.1796    ^	 
7.3818+-0.1621		7.3804+-0.1093	     ^ definitely 1.0478x faster
   math-spectral-norm			  2.5507+-0.1063    ?	 
2.6231+-0.0423		2.6071+-0.0585	     ? might be 1.0221x slower
   regexp-dna				 10.8829+-0.2408    ?	
11.0444+-0.3196 	10.9296+-0.1949       ?
   string-base64			  6.0589+-0.2107	 
5.8801+-0.2482	  ?	5.9180+-0.1902	       might be 1.0238x faster
   string-fasta 			  7.3014+-0.1081    !	 
8.3146+-0.2175		8.3007+-0.1999	     ! definitely 1.1369x slower
   string-tagcloud			 12.1434+-0.4217	
12.0108+-0.3340 	11.9435+-0.3274 	might be 1.0167x faster
   string-unpack-code			 19.1970+-0.5470	
19.0773+-0.4865 	18.8295+-0.3295 	might be 1.0195x faster
   string-validate-input		  7.1812+-0.2631	 
6.8250+-0.2467		6.7450+-0.3059	       might be 1.0647x faster

   <arithmetic> 			  6.5342+-0.0469    !	 
6.6211+-0.0351	  ^	6.4987+-0.0275	     
   <geometric>				  5.4040+-0.0381    ?	 
5.4584+-0.0191	  ^	5.3546+-0.0229	     
   <harmonic>				  4.4180+-0.0393    ?	 
4.4379+-0.0164	  ^	4.3547+-0.0310	       might be 1.0145x faster

					    TipOfTree		   TipOfTreeDyn
	  CarefulNumber        CarefulNumber v. TipOfTree
V8:
   crypto				 92.6777+-1.0560    ^	
85.8287+-0.6768 	84.6729+-1.3058       ^ definitely 1.0945x faster
   deltablue				271.7779+-2.4911    ^  
258.1274+-2.1974	257.1388+-2.2389       ^ definitely 1.0569x faster
   earley-boyer 			 95.3850+-0.7488    ?	
95.9525+-0.9046    ?	96.9092+-1.7912       ? might be 1.0160x slower
   raytrace				 78.7186+-0.7819	
77.7404+-0.5089 	76.6954+-0.5746       ^ definitely 1.0264x faster
   regexp				108.6307+-0.6516    ?  
109.0979+-1.1529	107.6484+-0.5817       
   richards				231.8681+-2.1057    ^  
218.4648+-1.6917	218.0566+-1.9601       ^ definitely 1.0633x faster
   splay				101.9574+-0.4023    ?  
102.9560+-0.8176    ?	102.9860+-0.8933       ? might be 1.0101x slower

   <arithmetic> 			140.1451+-0.4827    ^  
135.4525+-0.3950	134.8725+-0.5967       ^ definitely 1.0391x faster
   <geometric>				125.3196+-0.3113    ^  
122.1319+-0.3559	121.4995+-0.4868       ^ definitely 1.0314x faster
   <harmonic>				114.7691+-0.3329    ^  
112.4043+-0.3475	111.7151+-0.4317       ^ definitely 1.0273x faster

					    TipOfTree		   TipOfTreeDyn
	  CarefulNumber        CarefulNumber v. TipOfTree
Kraken:
   ai-astar			       1115.9489+-13.6925   ? 
1127.2781+-4.3517    !	1148.8542+-9.6147	! definitely 1.0295x slower
   audio-beat-detection 		483.6177+-5.5121    ^  
468.2725+-3.1906    ?	472.6012+-2.7622       ^ definitely 1.0233x faster
   audio-dft				435.9011+-11.7825      
422.9108+-2.6337    ?	425.0530+-5.1124	 might be 1.0255x faster
   audio-fft				368.5819+-1.3054    ?  
369.9146+-3.2159    ^	365.7559+-0.3816       ^ definitely 1.0077x faster
   audio-oscillator			381.7322+-1.6193    ^  
356.1275+-2.5445	353.8487+-2.4433       ^ definitely 1.0788x faster
   imaging-darkroom			536.6514+-4.1188    ^  
511.1556+-3.5697	509.2351+-2.1197       ^ definitely 1.0538x faster
   imaging-desaturate			622.3301+-2.8078    ^  
219.1983+-2.3835	218.1094+-0.8011       ^ definitely 2.8533x faster
   imaging-gaussian-blur	       1737.6811+-4.6308      
1735.7990+-10.7049   ?	1742.4213+-8.1005	?
   json-parse-financial 		 49.0553+-0.3802    ?	
49.3396+-0.5432    !	50.7809+-0.6047       ! definitely 1.0352x slower
   json-stringify-tinderbox		 69.8076+-1.5159	
69.1354+-0.3432 	68.6172+-0.2549 	might be 1.0173x faster
   stanford-crypto-aes			146.7155+-2.4606       
144.8160+-0.6303    ?	145.1716+-0.4200	 might be 1.0106x faster
   stanford-crypto-ccm			114.1883+-2.5628       
114.1723+-1.0068    ^	112.0443+-0.7322	 might be 1.0191x faster
   stanford-crypto-pbkdf2		333.9798+-2.2400    !  
401.9650+-2.1643	401.8433+-2.0952       ! definitely 1.2032x slower
   stanford-crypto-sha256-iterative	132.0898+-0.7086    !  
150.4716+-0.4734    ^	148.9359+-0.9755       ! definitely 1.1275x slower

   <arithmetic> 			466.3058+-1.7094    ^  
438.6111+-0.8533    ?	440.2337+-1.1670       ^ definitely 1.0592x faster
   <geometric>				300.2954+-1.1813    ^  
281.3736+-0.5503    ?	281.4741+-0.5687       ^ definitely 1.0669x faster
   <harmonic>				185.3853+-0.8586    ^  
180.5717+-0.6557    ?	181.0842+-0.6153       ^ definitely 1.0238x faster

					    TipOfTree		   TipOfTreeDyn
	  CarefulNumber        CarefulNumber v. TipOfTree
All benchmarks:
   <arithmetic> 			163.3869+-0.4742    ^  
154.4866+-0.2504    ?	154.8158+-0.3607       ^ definitely 1.0554x faster
   <geometric>				 28.5619+-0.0953    ^	
28.0616+-0.0556    ^	27.7467+-0.0759       ^ definitely 1.0294x faster
   <harmonic>				  7.8052+-0.0677    ?	 
7.8354+-0.0283	  ^	7.6916+-0.0537	       might be 1.0148x faster


More information about the webkit-reviews mailing list