[LLVMdev] LLVM & Incremental Compilation

Tim Macfarlane timmacfarlane at blueyonder.co.uk
Mon Jan 17 13:30:13 PST 2005


Thanks Chris (& others who replied),

Tim.

On Sun, 2005-01-16 at 12:40 -0600, Chris Lattner wrote:
> On Sun, 16 Jan 2005, Tim Macfarlane wrote:
> > Hi people!
> > I'm looking for a back-end compiler for a language project of mine, LLVM
> > looks promising, but I'd like to clear a few things up first:
> >
> > 1. What relation does LLVM bear with GCC; why would somebody use LLVM
> > for a compiler back-end over GCC (aside from the Virtual Machine)? How
> > do the goals of GCC and LLVM differ as compiler toolkits?
> 
> There are many differences in goals and implementation.  LLVM does use a 
> hacked on version of GCC for it's C and C++ parsers, but does not rely on 
> it for anything else.  GCC has advantages over LLVM (more target support 
> etc), and LLVM has advantages over GCC (JIT compilation, easier to work 
> with, interprocedural optimization, can use it to build non GPL tools, 
> ...).  This is really a big question that has many nuances, but that is at 
> least part of it.
> 
> > 2. How conducive to Incremental Compilation is LLVM? I would like to be
> > able to compile and execute code in the same process immediately. An
> > example of this would be in an interactive programming environment, or a
> > Common Lisp style of compilation.
> 
> That is no problem.  You can take a look at the llvm/examples/* 
> directories, there are examples that build LLVM code on the fly and 
> execute it.
> 
> > 3. Is LLVM able to support advanced runtime features as continuations,
> > garbage collection and resuming exception handling. Would there be
> > anything in LLVM that would prevent these sorts of features? Is there
> > anything in the LLVM runtime that is assumed (dynamic typing, etc). Or
> > is LLVM as it's title sugests: Low-Level, so it won't get in your way?
> 
> I believe that the only thing that we are presently missing is guaranteed 
> tail calls, but it will be added in the near future.  LLVM does not assume 
> anything about your runtime, as you say, it doesn't get in your way. :)
> 
> -Chris
> 




More information about the llvm-dev mailing list