>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.To quote Tony Hoare : "premature optimization is the root of all evil." http://www.acm.org/ubiquity/views/v7i24_fallacy.html "That would then force us to choose a versatile target architecture (such as PPC) and minimize architecture-dependent optimizations." http://www.cs.ualberta.ca/~pengzhao/open64-devel/msg00205.html Will we be able to retarget easily LLVM ? Has it a sense to retarget a compiler ? Nowadays, this is the holy grail, if not we will not be able to get rid of legacy architectures ... For example, here is cutting-edge stuff in the embedded design : http://www.sandbridgetech.com/sandbridge_solutions.htm http://www.arc.com/configurablecores/arc700/750.html http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=MXC300-30 But when you ask where is the compiler, there is nobody to answer to your question ... :) The goal of C-- is to have a multiple language/architecture framework. Personally, I believe that if we don't follow this philosophy, we will fall into the GCC game and have a painful retargetable compiler ... I believe that in the compiler design issues, the main concern will be : What is our philosophy ? "In order" or "out of order" :The programmers do/ do not learn to optimise their algorithms... Who does what ? :) The secular war ... x86 vs PPC. Note : For me it's PPC ... :) And why doesn't LLVM use lcc instead of gcc ? Best Regards, WIll
On Nov 1, 2006, at 11:27 AM, Guillaume FORTAINE wrote: [snips]> And why doesn't LLVM use lcc instead of gcc ?I have doubt so let me ask. Do you understand what is LLVM ? - Devang
On 11/1/06, Guillaume FORTAINE <guillaume.fortaine at wanadoo.fr> wrote:> >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. > > To quote Tony Hoare : > > "premature optimization is the root of all evil." >You are taking that quote out of context. Hoare is refering to people who try to optimize their code before making sure that it runs correctly, not an optimizing compiler (such as LLVM). (Of course, if you don't want optimizations, simply use -O0 on the command line during compilation.)> Will we be able to retarget easily LLVM ? > > Has it a sense to retarget a compiler ? >Yes of course. It supports C, C++, and Objective-C. It also has many different back-ends: PowerPC, X86, X86-64, Alpha, ARM, etc. And it has many target-independent optimizations.> "In order" or "out of order" :The programmers do/ do not learn to optimise > their algorithms... Who does what ? :) >I don't follow...What does this have to do with an optimizing compiler?> And why doesn't LLVM use lcc instead of gcc ? >LCC's front-en is not as full-featured as GCC's front-end. In particular, it doesn't have C++ or Objective-C support. And, note, that GCC is *only* used as the front-end (i.e., parser) in LLVM. -bw
On Wed, Nov 01, 2006 at 12:58:03PM -0800, Bill Wendling wrote:> On 11/1/06, Guillaume FORTAINE <guillaume.fortaine at wanadoo.fr> wrote:[...]> > Will we be able to retarget easily LLVM ? > > > > Has it a sense to retarget a compiler ? > > > Yes of course. It supports C, C++, and Objective-C.Don't forget Stacker! =)
On Wed, 1 Nov 2006, Guillaume FORTAINE wrote:>> 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. > > To quote Tony Hoare :I'm sorry, I think you misunderstood my question. What are you trying to *accomplish*? Philosophy is wonderful, all else being equal. In practice, if you want to accomplish a particular goal, some approachs are more useful than others. Note that, in practice, LLVM lives up to much of the stuff you cited. What are you trying to build, and how much of the existing support we have do you intend to reuse? -Chris -- http://nondot.org/sabre/ http://llvm.org/