LLVM / Elkhound / ARM

Hello,

I am French Engineer in Informatics and I would want to build a start
up to manufacture mobile phones ( OEM level ). I am currently in discussion
with investors.

We would want to use LLVM as our main compiler but we will need to complete it
to have a "commercial grade" one.

Here are our goals :

-Use a modified Elkhound as C/C++ front-end :

http://www.cs.berkeley.edu/~smcpeak/elkhound/

-Complete the ARM back-end

-Fix the bugs 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

We believe that we will be able to speak of LLVM 2.0. :slight_smile:

How many people/much time ( full-time developers) are/is needed to success in
this enterprise ?

What is the best background they need to have to work on this ? ( C, gcc,
lcc ? )

( we need these informations for our partners ).

It's a million dollars project and the stuff will be released under GPL.

We look forward to your answer,

Best Regards,

                            Guillaume

Hi Guillame,

Hello,

I am French Engineer in Informatics and I would want to build a start
up to manufacture mobile phones ( OEM level ). I am currently in discussion
with investors.

Sounds fun! :slight_smile:

We would want to use LLVM as our main compiler but we will need to complete it
to have a "commercial grade" one.

Okay.

Here are our goals :

-Use a modified Elkhound as C/C++ front-end :

That wouldn't be my first choice. Why not use the llvm-gcc4 that exists?
Its already very far along the road. The only major missing feature is
exception handling and that is being worked on soon.

Elkhound and Elsa

-Complete the ARM back-end

I'm sure Rafael would love the help.

-Fix the bugs 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

Okay, there are people working on getting Linux to compile with LLVM
now.

We believe that we will be able to speak of LLVM 2.0. :slight_smile:

A lot of changes are already planned for LLVM 2.0. Other than the ARM
backend and fixing (mostly inline asm) bugs for Linux compiling, what do
you need in LLVM 2.0 that isn't already there?

How many people/much time ( full-time developers) are/is needed to success in
this enterprise ?

There isn't enough information here to be able to say. What do you mean
by "commercial grade"? LLVM is there or close now by my definition.
There are certainly commercial enterprises using it (several actually).

What is the best background they need to have to work on this ? ( C, gcc,
lcc ? )

It really depends on what those people will be doing. A GCC background
wouldn't hurt but anyone with theoretical compiler background (SSA and
transforms), excellent C++, and Unix skills should be able to work on
it.

( we need these informations for our partners ).

This, I understand :slight_smile:

It's a million dollars project and the stuff will be released under GPL.

Note that LLVM is released under the UIUC Open Source License which is
very similar to the 3 clause BSD license. For many reasons, LLVM will
not be released under GPL. We have had discussions at times of releasing
it under LGPL but those discussions have gone away since dicussions
about the integration of LLVM into GCC subsided.

We look forward to your answer,

And we look forward to your participation in LLVM. Welcome!

Best Regards,

Reid Spencer.

I am French Engineer in Informatics and I would want to build a start
up to manufacture mobile phones ( OEM level ). I am currently in discussion
with investors.

Welcome.

We would want to use LLVM as our main compiler but we will need to complete it
to have a "commercial grade" one.

ok.

Here are our goals :

-Use a modified Elkhound as C/C++ front-end :
Elkhound and Elsa

As Reid mentioned, using llvm-gcc/g++ would make a lot more sense and be a lot easier to do. If you don't like llvm-gcc/llvm-g++ for some reason, and have the resources, you could also couple the EDG C/C++ front-end to LLVM.

-Complete the ARM back-end

This should not be terribly hard. I believe it is still fairly early in development, but is high quality so far and could be easily/rapidly extended ifdesired.

-Fix the bugs 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

Ok.

We believe that we will be able to speak of LLVM 2.0. :slight_smile:

How many people/much time ( full-time developers) are/is needed to success in
this enterprise ?

It is hard to estimate specifics. However, LLVM already is robust and is most of the way there. If you choose to use llvm-gcc/llvm-g++4 (which would be wise), the magor missing thing is the ARM backend.

LLVM is been used to compile many large projects, including itself (which is ~400,000 lines of C++) and the Qt toolkit (another large C++ library). It has also been used to compile a large quantity of C code as well. LLVM is in use by several commercial organizations.

What is the best background they need to have to work on this ? ( C, gcc,
lcc ? )

They need to be familiar with C++ programming, and they need to be familiar with the area they plan to contribute to (e.g. the ARM architecture). The rest is relatively easy to pick up.

It's a million dollars project and the stuff will be released under GPL.

Please consider licensing it under the current LLVM license, which is basically the BSD license without the advertising clause: http://llvm.org/releases/1.8/LICENSE.TXT

If you choose not to release your code under this license, we will not be able to incorporate it into the mainline LLVM distribution, which would mean that you will incur a significant ongoing maintenance burden.

Welcome to the LLVM community,

-Chris

-Complete the ARM back-end

Thanks!

Any help would be very good. I am busy in other projects, so the
development in slow right now. Currently I am trying to bootstrap gcc
(libgcc compiles, so it is possible to build an incomplete cross
compiler already).

Best Regards,
Rafael