[virtmach] Test, Hello

Mats Carlsson matsc@sics.se
Wed, 19 Apr 2000 11:45:16 +0200


> You take your
> compiler's generated code based on a flat encoding of opcodes and
> perform the usual analysis. Then you re-code the compiler back-end
> (hopefully it was done parametrically enough so that this isn't hard)
> to emit new opcodes which will give you a smaller image file
> footprint.
> 
> You can also optimize your instruction set by instrumenting your VM in
> various ways to find frequently used instruction sequences. You need
> to instrument the VM (rather than doing a static analysis of the
> bytecode) because you don't know which instruction sequences will get
> hit without real run-time data. I've seen this done in several
> open-source VMs, but I've never done it myself so I can't give you a
> lot of pointers on precisely *how* to instrument the VM, but it is
> certainly a clever way to find non-obvious speedups in a VM based
> language system.

Does anyone have pointers to papers reporting this kind of analysis?
I'm working with VM implementations of Prolog, and all the Prolog VMs
I know of do these optimizations, but in a more or less ad-hoc way.  I
have never seen any papers reporting a methodical analysis.

Mats Carlsson