>>> It seems to >>> me that LLVM solves many goals that are already complete and solved in >>> GCC. So I think libJIT potentially is more useful for GCC and software >>> developers. >> >> but you don't say what libjit would be more useful than, or how this >> overlap >> between "solved goals" between gcc and llvm implies that. Do you simply >> mean >> that, because llvm and gcc both cover similar areas, and because libjit is >> useful for llvm, it must also be useful for gcc? Could you list some of >> these >> goals and explain how they relate to JIT? > > Hi Dave, > > I don't mean to invade into a pretty amusing thread, but I wanted to clarify > one important thing: litjit and LLVM have nothing to do with each other. > > libjit and LLVM have very different design points. libjit is a bit more > than a glorified macro assembler with some late "optimizations", whereas > LLVM is a real compiler that happens to have the ability to emit machine > code to memory. > > To be perfectly clear, LLVM does not use libjit. > > -Chris
This is what Chris Lattner wrote a couple of years ago. Now I see an exactly contradiction: " Hi All, I was wondering what you could tell me about the differences in goals between libjit and LLVM. In particular, on this page: http://www.southern-storm.com.au/doc/libjit/libjit_1.html It is stated "Unlike other systems such as the JVM, .NET, Parrot, and LLVM, libjit is not a virtual machine in its own right. It is the foundation upon which a number of different virtual machines, dynamic scripting languages, or customized rendering routines can be built." I believe that the statement is true about .NET, JVM, and Parrot, but LLVM is exactly what you describe: a framework that can be used to build a number of different virtual machines. In particular, LLVM assumes no runtime model or library: we currently JIT C,C++,Stacker (a forth-like language), and have good starts on Java, .NET, O-Caml, and Ruby front-ends. If you're not familiar with LLVM, it's actually a lot more than a JIT. It's also a static, linktime, and offline optimizer that includes dozens of aggressive SSA-based optimizations. Another advantage of LLVM is that it is mature and works well now. :) For more info, see: http://llvm.cs.uiuc.edu/ Can you say a little bit about the advantages of using libjit over LLVM? Also, can you please correct the quote above to accurately describe the difference between libjit and LLVM? Thanks, -Chris " and " On Sunday 30 May 2004 12:46 pm, Chris Lattner wrote: > What do you mean by "real" one? They are both real. "Real" in the sense that the other one is discontinued. Which is essentially what you want here: for libjit to be discontinued and turned into a thin C API on top of LLVM. That just isn't going to happen. I'm just as attached to my project as you are to yours. Sorry. > Sure, that's fine. Please change the link to llvm.org though (a recent > change). Thanks! I have updated the documentation in CVS and on the Web site. Cheers, Rhys. " There are also many other interesting things there: http://lists.gnu.org/archive/html/dotgnu-libjit/2004-05/index.html Thanks, Kirill