> However, I see several interesting issues raised here: > > the first is to [re-]use GCC for just in time compilation, for instance to > JIT-compile CLI or JVM bytecode into machine code, or even C or some > specialized gimple-like representation into machine code, or CLISP into > machine code, all this using most of existing code in GCC (certainly the > middle-end and a back-end). This might be doable, is certainly interesting > (I heard even that some major GCC contributor[s] wanted that to happen), but > remains difficult (because GCC was not designed for that). Note that libjit > per se is not useful in that case, but GCC would be made as a server (or a > library) which happens to deliver some of libjit or LLVM functionalities > (the ability to generate code). > > The second issue (which perhaps Kirill did not thought of) would be to > accelerate some internal optimisations of GCC by using JIT-code generation > techniques within the compiler itself. There are several occasions within > GCC where complex internal processing happens, and one could imagine to > "partially evaluate" them (w.r.t. to the compiled source program) by > generating some code specifically tuned to that processing. BTW, the MELT > branch was designed with such stuff in mind, and indeed can generate some > code (currently, it generates C code, run the host compiler on it, dlopen > it, and use it; in principle I could have used libjit instead of forking a > compilation process from inside cc1).
Yes, this is exactly one kind of opportunity I see here. Basile is absolutely correct here. > > I still don't understand what Kiril is thinking of exactly. In contrast to > Andrew, I don't believe it is an April Fool's joke, but perhaps a language > issue: both Kiril & me Basile are not native English speakers, and we may > have difficulties in finding the right words & express ourself fluently in > English. If it is the case please forgive us (or just try to interact on a > french or russian mailing list!). > Thanks, Kirill