Performance of tamarin-tracing interpreter

Steven Johnson stejohns at
Thu Jan 17 13:48:00 PST 2008

Great summary. I'll add one more: we haven't spent that much time optimizing
the interpreter speed because we've been focusing on tracing. the one
exception is superwords:

> * superwords are used to compile common sequences of forth into a slab of
>   faster C, without losing the ability to trace the sequence.

Judicious use of superwords can make a big impact on interpreter speed, but
we haven't put a ton of time into identifying the spots that could make the
best use of them. (we could theoretically generate superwords automatically
for some subset of all the basic blocks in the forth code, but that might
cause a code size explosion unless done with care)

right now, superwords have to be explicitly marked in the forth. it would
probably be worthwhile to have this datadriven somehow instead, based on
profiles of interpreted code to find the hotspots.

it's also tricky in that a superword can't contain anything that would cause
a branch exit (IF, etc), which means that only certain existing forth words
are candidates.

More information about the Tamarin-devel mailing list