Re: Native Code Generation from Abstract Stack Machine

bonzini@gnu.org (Paolo Bonzini)
19 Mar 2004 23:55:30 -0500

          From comp.compilers

Related articles
[2 earlier articles]
Re: Native Code Generation from Abstract Stack Machine m.dentico@no-spam.it (Massimo Dentico) (2004-03-02)
Re: Native Code Generation from Abstract Stack Machine bill@qswtools.com (Bill Cox) (2004-03-06)
Re: Native Code Generation from Abstract Stack Machine peter@javamonkey.com (Peter Seibel) (2004-03-06)
Re: Native Code Generation from Abstract Stack Machine peter@javamonkey.com (Peter Seibel) (2004-03-11)
Re: Native Code Generation from Abstract Stack Machine samiam@moorecad.com (Scott Moore) (2004-03-11)
Re: Native Code Generation from Abstract Stack Machine eliotm@pacbell.net (Eliot Miranda) (2004-03-11)
Re: Native Code Generation from Abstract Stack Machine bonzini@gnu.org (2004-03-19)
| List of all articles for this month |

From: bonzini@gnu.org (Paolo Bonzini)
Newsgroups: comp.compilers
Date: 19 Mar 2004 23:55:30 -0500
Organization: http://groups.google.com
References: 04-02-179 04-03-055
Keywords: code
Posted-Date: 19 Mar 2004 23:55:29 EST

> Independently, and without knowledge of Peter Deutsch's scheme, Ian
> Piumarta did a native code compiler for Smalltalk that he wrote up in
> his thesis at Manchester University, which is called something like
> "Deferred Code generation in a Smalltalk-80 Compiler". Its a very
> similar idea.


I recently used a very similar scheme to translate Java bytecodes to
Smalltalk bytecodes, deferring the compilation of arguments until
either the end of the basic block or a method invocation. Rather than
optimization, I also needed it for correctness, to add a receiver in
front of the arguments of an invokestatic bytecode (Java has the
receiver implicit, while Smalltalk makes it explicit).


I had also used it for GNU Smalltalk's JIT compiler, which was more or
less a conversion of Ian's thesis to work on basic blocks (Ian used
an abstract syntax tree with if conditionals and while loops).


After a few years using it for several different projects, however, it
seems pretty straightforward to me, definitely not worth keeping it
secret; I doubt that there exist JIT compilers that do not reconstruct
something resembling a parse tree (also AOStA, right? :-).


Paolo


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.