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