Optimizing Compiler for the ICFP 09 contest's VM

The byte code for the virtual machine of this years ICFP specified a language with single assignment per simulation step. Interestingly most memory locations get overwritten each simulation step before they are read. That means, those locations don't have to be remember between steps. Also locations that never get overwritten (e.g. location associated with Noops), are constant. Thus the variables state of the simulation is orders of magnitude smaller than the naive 2^16 * 32 bit + 1 bit. I wrote a small program that analyses the dataflow of a byte code program (and initial memory setup) for the VM. After analyzing my program emits Haskell code to run the given byte code. If anyboby is interested, I can document my program and put it online somewhere. I also made pretty graphs of the dataflow with graphviz.

2009/7/4 Matthias Görgens
The byte code for the virtual machine of this years ICFP specified a language with single assignment per simulation step. Interestingly most memory locations get overwritten each simulation step before they are read. That means, those locations don't have to be remember between steps. Also locations that never get overwritten (e.g. location associated with Noops), are constant. Thus the variables state of the simulation is orders of magnitude smaller than the naive 2^16 * 32 bit + 1 bit.
I wrote a small program that analyses the dataflow of a byte code program (and initial memory setup) for the VM. After analyzing my program emits Haskell code to run the given byte code.
If anyboby is interested, I can document my program and put it online somewhere. I also made pretty graphs of the dataflow with graphviz.
Hi Matthias, it would be nice to blog a little post about what you found and the pretty graphs :) Thu

Same over here, i would love to read about your discoveries :) -- Matthias On Sat, Jul 04, 2009 at 11:12:30PM +0200, minh thu wrote:
2009/7/4 Matthias Görgens
: If anyboby is interested, I can document my program and put it online somewhere. I also made pretty graphs of the dataflow with graphviz.
Hi Matthias,
it would be nice to blog a little post about what you found and the pretty graphs :)
Thu _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
participants (3)
-
Matthias Brettschneider
-
Matthias Görgens
-
minh thu