LLVM / C--

Hello,

I would want to know what are the main differences between LLVM and C--. 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/

-Complete the ARM back-end

-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

I look forward to your answer,

Best Regards,

      Guillaume

PS : Don't speak me of GCC :slight_smile:

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):

Elkhound and Elsa

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