Dynamo is an amazing project by HP.

Essentially it is a machine code interpreter that often runs the HP8000 RISC instruction set on an HP8000 microprocessor faster than the raw HP8000 processor does!

The essential idea is that the compiler does not perfectly understand the way that the processor is used, and hence at run time the interpreter can collect data and rewrite code dynamically for greater speed.

For example, the compiler does not have access to DLLs at all, and the interpreter may be able to optimise by inlining these appropriately.

Another example, the compiler does not know what paths through the code are most frequently taken- the interpreter can find this, and inline this code allowing the cache to work more efficiently.

The speed up gained by this technology can be as much as 25% percent, although the normal speedup is nearer 4-5%. The speedups are usually different speedups than those found by the compiler, so using an optimising compiler actually gives slightly bigger percentage speedups!

However, Dynamo does not always increase the speed of the code. If it is unable to find any speedups it switches itself off.

Dynamo is based on the ideas used for an interpreter written for Self; and the same techniques are use in the Transmeta processor.