Re: LPC900/80C51 Compiler Toolchain



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

.



Relevant Pages

  • Re: LPC900/80C51 Compiler Toolchain
    ... There are some situations where commercial developers have advantages over open source developers - it is often easier to get restricted information from the microcontroller manufacturers. ... Even for those manufacturers which directly support gcc ports, there can be restrictions with some PHB wanting to keep details secret, which therefore cannot end up in open source code. ... no top-quality open source alternatives (sdcc is, as far as I understand it, a perfectly reasonable compiler - but it is not a top-ranking 8-bit compiler in the same way that gcc is for many 32-bit targets). ... Also the gcc port is usually created but not supported. ...
    (comp.arch.embedded)
  • Re: LPC900/80C51 Compiler Toolchain
    ... Have been wary about getting into this, but it irritates me that the commercial vendors are quite happy to steal new ideas from open source at no cost to improve their product, but then have the chutzpah to suggest that gcc is inferior. ... An unpretentious compiler that i'm familiar with, produces acceptable code and still have to catch it out with even the most complex data structures and constructs etc. Have not found a show stopper bug in several years use, which is more than I can say about some commercial product. ... There are some situations where commercial developers have advantages over open source developers - it is often easier to get restricted information from the microcontroller manufacturers. ...
    (comp.arch.embedded)
  • Re: Bye bye Keil 166 and 8051 (??)
    ... I have had to maintain some open source software and I have been appaulled at how increadibly bad some of it is. ... Similarly, some closed source code has careful reviews or is written as a team, forcing structure and well written code, while other closed source is hacked together under time pressure and looks terrible. ... That's certainly true - but there is no specific reason to assume that an open source compiler is necessarily worse than a closed source one. ... It's been a while since I have compared IAR's code generator with gcc's - it will be interesting to see which is better with the latest gcc 4.1, but I would certainly not assume IAR's compiler is as much ahead as the difference in price would indicate. ...
    (comp.arch.embedded)
  • Re: Python compiled on Windows
    ... open source compiler like gcc or g++ on Windows? ... From the standpoint of open source. ... if there ever had compiled on windows using ... that toolkit or even with gcc, and with gcc, whether there are problems ...
    (comp.lang.python)
  • Re: LPC900/80C51 Compiler Toolchain
    ... Compiler vendors find and pay the best people ... I think you'll find that most of the GCC ... developers are being paid to work on GCC. ...
    (comp.arch.embedded)