Hi Duncan,

>how do you compile a program with LLVM?  It's not a compiler, it's a set of
>optimization and codegen libraries.  You also need a front-end, which takes
>the users code and turns it into the LLVM intermediate representation [IR].  
>The
>dragonegg plugin takes the output of the gcc-4.5 front-ends, turns it into LLVM
>IR and runs the LLVM optimizers and code generators on it.  In other words, it
>is exactly what you need in order to compile programs with LLVM.  There is also
>llvm-gcc, which is a hacked version of gcc-4.2 that does much the same thing,
>and for C and C++ there is now the clang front-end to LLVM.  The big advantage
>of dragonegg is that it isolates the effect of the LLVM optimizers and code
>generators by removing the effect of having a different front-end.  For 
>example,
>if llvm-gcc produces slower code than gcc-4.5, this might be due to front-end
>changes between gcc-4.2 and gcc-4.5 rather than because the gcc optimizers are
>doing a better job.  This confounding factor goes away with the dragonegg
>plugin.

Ok. I see what you mean. We simply used llvm-gcc so that's why the confusion ;) 
...
Cheers,
Grigori


Reply via email to