dynamic counts

Stephen Weeks sweeks@research.nj.nec.com
Tue, 23 Feb 1999 19:45:50 -0500


Here are the dynamic counts.  What's different from the numbers we
looked at this afternoon is:

  * better names for categories :-)
  * better formatting
  * correct loop counts
  * dispatch and coercion counts

Here's what the classes mean.

Every call in the Xml and Sxml programs is categorized into one of two
classes:
  Known    a call to a variable that is let or fun bound to a lambda
  Unknown
The known counts do *NOT* count lambdas whose body consists solely of
a primitive application.  These lambdas are not counted at all.
The Xml counts are inserted after type inference and one round of the
shrinker.  The Sxml counts are inserted after monomorphisation and
polyvariance, just before closure conversion.

The closure converter classifies every call it translates into one of
two classes:
  Known    the flow set for the function is a singleton
  Unknown  otherwise.
The discrepancy between the sum "Sxml Known + Sxml Unknown" and "Cps
Known + Cps Unknown" is explained by the fact that the closure
converter does not treat eta-wrapped primapps specially, and hence
will have more calls.

The closure converter also annotates case expressions that are
introduced to implement dispatches and coercions.  These annotations
are preserved by all of the Cps optimization passes.

At the end of Cps optimization, counters are inserted in 4 places
  Cps Call	a call to a top level Cps function
  Cps Loop      at the start of the body of a cps loop
  Cps Dispatch  at a case statement that implements a dispatch
  Cps Coercion  at a case statement that implements a coercion

		barnes-hut	count-graphs	fft		knuth-bendix	
Xml Known	533,539,550	2,051,662,456	3,301,096,778	969,707,261
Xml Unknown	292,271,350	  583,073,685	1,495,719,196	315,598,268
Sxml Known	346,025,564	  592,145,962	1,512,542,316	274,145,302
Sxml Unknown		  2	   17,891,342	   45,440,290	166,541,352
Cps Known	408,342,424	  770,100,923	2,017,680,773	440,720,558
Cps Unknown		  2	            0	            0	          2
Cps Call	 27,830,021	   29,323,457	   10,487,543	 91,541,051
Cps Loop	 21,368,168	   78,381,030	   62,369,546	 84,887,403
Cps Dispatch		  2	            0	            0	          2
Cps Coercion	          0	            0	            0	          0

		lexgen		life		logic		mandelbrot	
Xml Known	7,384,880,194	7,529,402,010	1,065,792,829	1,767,965,035
Xml Unknown	1,559,655,752	1,642,759,990	  351,012,904	2,653,854,747
Sxml Known	1,979,174,660	1,345,011,525	  302,120,782	2,275,403,672
Sxml Unknown	  120,300,788	  194,437,790	  168,178,500	            0
Cps Known	2,732,251,297	1,539,463,015	  526,715,592	2,443,216,793
Cps Unknown	           62	            0	   17,824,500	            0
Cps Call	  119,949,597	   62,545,426	  215,958,320	            0
Cps Loop	  375,716,288	1,199,401,053	  241,545,921	  378,594,831
Cps Dispatch	           62	            0	   17,824,500	            0
Cps Coercion	            0	            0	            0	            0

		matrix-multiply	mlyacc		nucleic		ratio-regions	
Xml Known	3,783,232,790	2,207,995,588	406,354,034	6,363,094,590
Xml Unknown	  644,808,104	  536,902,779	800,261,805	2,588,661,891
Sxml Known	1,287,206,182	  769,855,083	732,320,002	2,265,841,182
Sxml Unknown	            0	    2,707,688	 62,783,000	            0
Cps Known	1,448,406,182	  923,197,338	799,573,602	2,855,415,389
Cps Unknown	            0	      222,502	    206,600	            0
Cps Call	           20	   62,002,667	 31,866,400	   37,254,192
Cps Loop	   81,604,041	  166,304,279	 40,002,401	  241,713,699
Cps Dispatch	            0	      207,302	    206,600	            0
Cps Coercion	            0	            0	          0                 0

		simple		tsp		vliw		zern	
Xml Known	1,122,184,298	814,650,039	1,329,485,010	2,455,240,799
Xml Unknown	  516,688,456	706,980,442	  328,996,880	4,792,114,802
Sxml Known	  629,064,034	877,548,487	  469,210,012	4,267,750,932
Sxml Unknown	    5,285,980	          2	    7,372,074	    1,952,000
Cps Known	  669,092,036	961,717,769	  570,969,110	4,515,496,563
Cps Unknown	    4,832,999	          2	    2,788,427	            0
Cps Call	   84,097,642	 86,065,113	   48,614,072	       21,006
Cps Loop	   31,149,484	 72,358,118	  107,662,894	  575,428,611
Cps Dispatch	    4,832,999	          2	    2,788,427	            0
Cps Coercion	            0	          0	            0	            0