Re: On-the-fly compilation from VM code to machine code

engler@AMSTERDAM.LCS.MIT.EDU (Dawson R. Engler)
Wed, 7 Sep 1994 03:02:06 GMT

          From comp.compilers

Related articles
On-the-fly compilation from VM code to machine code joe@erix.ericsson.se (1994-08-24)
Re: On-the-fly compilation from VM code to machine code thomasl@groucho.csd.uu.se (1994-08-26)
Re: On-the-fly compilation from VM code to machine code danhicks@aol.com (1994-08-27)
Re: On-the-fly compilation from VM code to machine code hbaker@netcom.com (1994-09-07)
Re: On-the-fly compilation from VM code to machine code engler@AMSTERDAM.LCS.MIT.EDU (1994-09-07)
Re: On-the-fly compilation from VM code to machine code hoelzle@xenon.stanford.edu (1994-09-14)
Re: On-the-fly compilation from VM code to machine code danhicks@aol.com (1994-09-09)
Re: On-the-fly compilation from VM code to machine code pardo@cs.washington.edu (1994-09-16)
| List of all articles for this month |

Newsgroups: comp.compilers
From: engler@AMSTERDAM.LCS.MIT.EDU (Dawson R. Engler)
Keywords: interpreter, optimize
Organization: MIT Laboratory for Computer Science, Cambridge MA
References: 94-08-164
Date: Wed, 7 Sep 1994 03:02:06 GMT

danhicks@aol.com writes:
> The problem with this is that you can't optimize RISC code "on the fly".
> The efficiency of the code generated would be little better than what you
> could do with an interpreter.


I'm not sure what this means. You certainly can generate optimized
RISC code "on the fly", and the result is substantially better than what
you could do with an interpreter. See a paper that Todd Proebsting and
I wrote:


@inproceedings{engler:dcg,
    author = "Dawson R. Engler and Todd A. Proebsting",
    title = "DCG: An Efficient, Retargetable Dynamic Code Generation System" ,
    journal = "ASPLOS 94",
    year = 1994,
    month = sep,
    annotation = ""
}


In this system, applications specify code using the IR tree language of lcc;
these trees are fed into our runtime system, which generates locally optimized
machine code (using tree pattern matching).


In the context of a stack-based VM, it is straight-forward to translate
stack push/pops into trees and from this generate optimized "RISC code".
We did this for Mogul's stack-based packet filter language, and the resultant
speedup was _not_ "little better than what you could do with an interpreter".


Regards,
Dawson
http://amsterdam.lcs.mit.edu/~engler
--


Post a followup to this message

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