Re: Generating JIT compilers (Paolo Bonzini)
17 Jul 2003 00:37:35 -0400

          From comp.compilers

Related articles
Generating JIT compilers (Jens Troeger) (2003-07-02)
Re: Generating JIT compilers (Eric Eide) (2003-07-04)
Re: Generating JIT compilers (Lex Spoon) (2003-07-04)
Re: Generating JIT compilers (2003-07-04)
Re: Generating JIT compilers (Jens Troeger) (2003-07-13)
Re: Generating JIT compilers (2003-07-17)
Re: Generating JIT compilers (Jens Troeger) (2003-07-21)
| List of all articles for this month |

From: (Paolo Bonzini)
Newsgroups: comp.compilers
Date: 17 Jul 2003 00:37:35 -0400
References: 03-07-008 03-07-056 03-07-082
Keywords: practice
Posted-Date: 17 Jul 2003 00:37:35 EDT

> It Seems That This Approach Is The Common One. For Reasons Of
> Speed Or Ease Of Implementation? The Quality Of The Emitted Code
> Doesn'T Compare To The Outcome Of A "Real" JIT Compiler, Does
> It?

Probably both. A tool like GNU lightning is still template based, but
at a level that resembles assembly more than bytecode, say. Templates
are simply sequences of invocations of preprocessor macros that
assemble opcodes into memory: but, these macros can of course be
parameterized and this allows one to do limited register allocation
and customization of the templates, and produce better code.

There is nothing that distinguishes a "real" JIT from a "real"
compiler. A "real" compiler can be fast and produce bad code (like
tcc) and a JIT can produce excellent code slowly using expensive
compiler techniques like SSA or dominator analysis.

> that is kind of what our Yirr-Ma framework does. the emitted target
> machine code can be generated very fast, yet the quality is by far
> not optimal.

> In General I Am Interested In The Question Of "What Can Be Generated
> From Specs, Without Writing Source/Target Machine Dependent Code" (Of
> Course The Specs Must Be Written :-))

Try GNU lightning, it looks to me like what you are looking for. I
don't understand exactly what you mean by specs though.


Post a followup to this message

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