>>>>> "acoliver" == acoliver <[EMAIL PROTECTED]> writes:
acoliver> RTL is Register Transfer Language I believe. Yes. But front ends don't generate RTL. acoliver> Writing a GCC front end is actually rather non-trivial I'm acoliver> afraid. While it does do a traditional AST tree more or less, its acoliver> implemented with some rather complicated and undocumented macros (and acoliver> from what I remember a few layers of them). This is how it worked a few years ago. Nowadays, with the new infrastructure in GCC 4.0, writing a front end is like an order of magnitude simpler. It still isn't easy, but there is a lot more documentation and the overall picture makes a lot more sense. acoliver> On the other hand, I'm not convinced that GCC is acoliver> an acceptable compiler for a JIT anyhow. Allow me to demonstrate. acoliver> Find a large C project (say 1000 sources). Build the project on a acoliver> fairly fast machine. Have you tried gcj? At startup you don't compile everything. You compile it beforehand. Startup time of the generated programs is one of gcj's strengths. You can use gcj-as-jit right now, today, if you want, though it has some scalability problems. It isn't as slow as you might think if you're used to the C compiler; compiling the typical .class file in isolation is a fairly cheap operation. acoliver> Its possible acoliver> that you could rip pieces of GCC out and construct a more traditional acoliver> JIT, but its really not what we want. Probably more profitable to simply integrate a JIT into libgcj. Tom
