sfront 0.50 12/17/99 released

From: John Lazzaro (lazzaro@cs.berkeley.edu)
Date: Fri Dec 17 1999 - 15:04:47 EST


Pick up sfront version 0.50 12/17/99 at:

http://www.cs.berkeley.edu/~lazzaro/sa/

From the change log:

Version 0.50 -- 12/17/99

[1] The code sfront
generates for wavetable
data structures has been
improved, and many core
opcodes and language
elements run faster as
a result.

[2] Many bug fixes: nested
oparrays of user-defined
opcodes now work correctly,
a specialop bug that broke
the linux/linvoc example is
fixed, and complex wavetable
generators now work correctly.
Thanks to Dan Ellis and
Reynald Hoskinson.

-----------

The fundamental change here is that the
"imports exports table" functionality in
the code sfront generates, which used to
be done by passing a pointer, is now done
statically -- for each use of a table,
sfront figures out the actual data structure
being accessed, and creates a hard access
to the table. Only in cases where the table
to be used is dynamically determined (i.e.
tablemap indexes) are tables passed as a
pointer.

The net result is that accessing a table now
requires one less pointer indirection, which
speeds up all table-related code. In the
rewriting that resulted from this change (about
20% of the lines in sfront were changed between
0.49 and 0.50), many table-related speedups were
also added -- for example, a tablemap index whose
index is at i-rate or k-rate is now rate-optimized.

Some benchmark numbers for example SAOL programs
for 0.49 and 0.50, all benchmarks run under Linux
on a 450 Mhz PIII, times are in seconds:

example 0.49 0.50 %speedup
-------------------------------------------------
beat.saol 6.66 6.07 8%
PC.saol 39.33 37.22 5%
elpelele 275.40 272.20 1%



This archive was generated by hypermail 2b29 : Mon Jan 28 2002 - 11:46:36 EST