To be fair, gcc, g++ and gobjc combined are actually bigger than clang+llvm. At least on my system. So it could have been worse.

2011/2/3 David Leimbach <leimy2k@gmail.com>
On Wednesday, February 2, 2011, erik quanstrom <quanstro@quanstro.net> wrote:
>> It is a C/C++/Obj-C compiler & does static analysis, has
>> backends for multiple processor types as well as C as a
>> target, a lot of optimization tricks etc.  See llvm.org.  But
>> frankly, I think they have lost the plot. C is basically a
>> portable assembly programming language & in my highly biased
>> opinion a C compiler should do no more than peephole
>> optimizations.  If you want more, might as well use a high
>> level language.
>
> preach it, brother.  i couldn't agree more.
>
> - erik
>
>
Well LLVM uses its internal ASTs for a lot of the optimizations doesnt
it?  My understanding is LLVM is a stack of software that you compose
other programming language tools by including the libraries you want.
One might be able to remove the optimizing behaviors one doesn't want
pretty easily, or write one's own optimizing layer that's stripped
down.  Then one could have the "do what I said" compiler instead of
the "do what you think I meant" one.

I believe there are occasions for each type of compiler really.

It might seem really big and bloated but I still think what they've
done is kind of neat.  Making a real compiler in Haskell or O'Caml is
pretty damned easy with LLVM bindings.

I wonder how difficult it is to target Plan 9 with LLVM.