Re: LPC900/80C51 Compiler Toolchain
- From: wilco.dijkstra@xxxxxxxxxxxx
- Date: Mon, 25 Jun 2007 07:20:03 -0700
On 24 Jun, 01:39, Chris Hills <c...@xxxxxxxxxxxx> wrote:
However as over many years I have discussed in private with many
commercial compiler developers, code analysis developers and seen the
results of their tests I have been able to form a good picture. Most of
what I have seen or been able to examine is under NDA.
I'm with you on this one. In 2006 the latest GCC compiler was not able
to match the codesize or performance of an ARM compiler that was
released in 1995. The only target GCC is good at is x86, partly
because it gets a lot more attention than any other target, partly
because most of the optimizations happen in hardware anyway.
The problem is the FOSS Sw is just that. Open. So any development is
seen by all the commercial tool developers. However the reverse is not
true. So anything FOSS has the commercial people also have and
therefore FOSS can not be more advanced. At best it can only be equal.
I don't believe commercial companies look closely at GCC source code.
Many companies have strict policies that stop people from even looking
at open source code to avoid accidentally copying stuff. However any
good compiler expert only needs to look at the generated code in order
to "borrow" optimizations.
On top of that the commercial developers get access to the silicon
companies and some sophisticated development tools and test suites. How
many GCC or SDCC compilers have been run against Plum-Hall or Perennial?
Full access to silicon/FPGA and specs is essential to provide a well
tuned compiler indeed. I don't think that is a barrier to open source,
there are many well respected open source companies that would be
given access to these things (and I know that happens). I wouldn't
call the commercial test suites very good, most compiler teams develop
their own testsuites as none are good enough to test a compiler.
Test suites that are rigorous can cost more recourse to develop than the
compiler itself.
Quite possibly.
There are techniques used in the commercial tools that are not used in
Gcc or SDCC and the like. To maintain their advantage the commercial
tool companies are not going to tell FOSS developers what these are.
Though in some cases like DATA overlaying on the 8051 knowing what is
done is of little help. There is a lot of effort involved in data
overlaying and other forms of optimisation.
As I said above, one doesn't need to know what the techniques are,
it's relatively easily to deduce from the generated code.
Interestingly, open source compilers use more modern techniques than
commercial compilers (which were created in the 1980's). However
technology alone doesn't make a good compiler, you need to know how to
use it. The main difference between a good compiler and a mediocre one
is the amount of effort that has gone into fine tuning it.
And this is where I think commercial development has the advantage.
Compiler vendors find and pay the best people to do whatever it takes
to make the compiler as good as possible (with the idea that this
large investment will pay itself off later). I don't see this kind of
dedication in open source compilers, as developers usually don't get
paid for their work and so don't attract the best people. The ARM port
of GCC for example was neglected for years (with Thumb not working at
all) until ARM paid for it to be fixed and brought up to date with the
latest architectures.
That's said, I don't believe one or the other is inherently better. I
would be happy to put a few years into turning GCC into a really good
compiler that beats most commercial ones. However who is going to pay
me my consulting rate? Big companies with their own compilers... I'm
currently in Seattle :-)
Wilco
.
- Follow-Ups:
- Re: LPC900/80C51 Compiler Toolchain
- From: Chris Hills
- Re: LPC900/80C51 Compiler Toolchain
- From: Michael N. Moran
- Re: LPC900/80C51 Compiler Toolchain
- References:
- LPC900/80C51 Compiler Toolchain
- From: eugenios
- Re: LPC900/80C51 Compiler Toolchain
- From: Chris Hills
- Re: LPC900/80C51 Compiler Toolchain
- From: Paul Taylor
- Re: LPC900/80C51 Compiler Toolchain
- From: Chris Hills
- Re: LPC900/80C51 Compiler Toolchain
- From: Paul Taylor
- Re: LPC900/80C51 Compiler Toolchain
- From: CBFalconer
- Re: LPC900/80C51 Compiler Toolchain
- From: Chris Hills
- Re: LPC900/80C51 Compiler Toolchain
- From: Eric
- Re: LPC900/80C51 Compiler Toolchain
- From: Chris Hills
- Re: LPC900/80C51 Compiler Toolchain
- From: Guy Macon
- Re: LPC900/80C51 Compiler Toolchain
- From: Chris Hills
- LPC900/80C51 Compiler Toolchain
- Prev by Date: Re: LPC900/80C51 Compiler Toolchain
- Next by Date: Re: Acceptance criteria for a wireless network?
- Previous by thread: Re: LPC900/80C51 Compiler Toolchain
- Next by thread: Re: LPC900/80C51 Compiler Toolchain
- Index(es):
Relevant Pages
|
|