Steve Shih-wei Liao wrote:
Do we need an interpreter or a fast code generating, zero optimizing JIT? I can think of advantages to each approach. Assuming a C/C++ implementation, a traditional interpreter is easy to port to a new architecture and we can populate Execution Engines (EE) for different platforms rather easily. On the other hand, a fast code-generating JIT can call runtime helpers and native methods without additional glue code whereas an interpreter has to have special glue code to make it work in a JIT environment. Needless to say, if a method is called more than once, the one time cost of JITing without optimization may be lower than the cost of running the interpreter loop. Our experience is that a fast, zero optimizing JIT can yield low-enough response time. So, I think at least Harmony has the option of having a decent system without an interpreter. Thoughts?
 Steve Liao, Intel Managed Runtime Division


No doubt, but portability is also a concern and writing a portable JIT seems more difficult.

Although it is compiler dependent (gcc) have you looked at the Sable approach:

http://www.sable.mcgill.ca/publications/thesis/phd-gagnon/sable-thesis-2002-phd-gagnon.pdf which kind of combines the two? It is possible that this alleviates your concern with the tradeoff of compiler dependence (though it would be nice if we could do this on Intel compiler so that we can run faster on Itanium).

-Andy

Reply via email to