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/