[LLVMdev] LLVM / C--

Chris Lattner sabre at nondot.org
Wed Nov 1 10:10:32 PST 2006


On Wed, 1 Nov 2006, Guillaume FORTAINE wrote:
> I would want to know what are the main differences between LLVM and C--.

In general, C-- is an interesting piece of research code that has little 
to do with LLVM anymore.   C--'s strengths are it support for tail calls 
and automatic GC (which LLVM supports, but not as well) which are mostly 
useful for functional languages.

C--'s weakness is it's incompleteness (missing many major features), 
instability/bugginess, poor performance (both time to compile and the 
generated code), lack of high-level optimizations, lack of ABI 
compatibility with the native tools, lack of C++ frontend support, and the 
small size of its community.

In contrast, LLVM is (almost) fully feature-complete in terms of C/C++ 
language features and GNU extensions, is robust (being used by several 
commercial organizations), has leading edge high-level optimizations, is 
ABI compatible with the rest of the system, supports C/C++/ObjC, and has a 
medium sized community that is growing all the time.

To get a balanced perspective, you should probably ask the C-- people what 
they think.

> We need a robust compiler ( or at least the most promising to work on it 
> ) with these features :
>
> -A GLR parser (use a modified Elkhound as C/C++ front-end):
>  
> http://www.cs.berkeley.edu/~smcpeak/elkhound/

Neither C-- nor LLVM provide this.  Why do you need a GLR parser 
specifically?

> -Complete the ARM back-end

Right.

> -To be able to compile a complete Cross Linux from scratch for
> arm with uclibc-nptl.
>
> http://trac.cross-lfs.org/milestone/CLFS 3.0.0

C-- doesn't have *any* real C or C++ front-end, AFAIK.

-Chris

-- 
http://nondot.org/sabre/
http://llvm.org/


More information about the llvm-dev mailing list