polyvariance experiments

Stephen Weeks sweeks@research.nj.nec.com
Thu, 18 Feb 1999 14:01:52 -0500


Here are the results of some polyvariance experiments that I just ran.
The polyvariance rewrites the Sxml program resulting from
monomorphisation.  It duplicates every let bound higher-order function
at each variable reference.  I measured running time and code size.  

old = old compiler with no polyvariance
new = 3 rounds of polyvariance after monomorphisation

Summary:
  - Polyvariance improved (or didn't hurt) every benchmark except for
    logic in both code size and running time. 
  - Logic blew up by 5x in code size and slowed down 10%.
 
			   time(s)	  size(bytes)
			old	new	  old	  new
			----	----	------	-------
barnes-hut		25.3	14.7	 54702	  39970
count-graphs		12.7	12.9	 43616	  40396
fft			42.0	37.8	 32392	  26640
knuth-bendix		39.4	31.4	 76973	  71905
lexgen			50.3	48.2	209666	 183522
life			70.2	57.7	 37796	  37356
logic			63.4	71.0	235960	1178564
mandelbrot		16.0	16.0	 13356	  13356
matrix-multiply		13.5	12.9	 14900	  13912
mlyacc			25.2	24.2	990038	 821278
nucleic			32.1	19.5	 70658	  54106
simple			17.3	12.9	238999	 218343
tsp			49.1	31.6	 36358	  31174