Related articles |
---|
End of optimization... mayan@sandbridgetech.com (2003-07-03) |
Re: End of optimization... walter@bytecraft.com (Walter Banks) (2003-07-13) |
Re: End of optimization... walter@bytecraft.com (Walter Banks) (2003-07-13) |
Re: End of optimization... ndalton@lastminute.com (Niall Dalton) (2003-07-13) |
Re: End of optimization... walter@bytecraft.com (Walter Banks) (2003-07-17) |
Re: End of optimization... mayan@sandbridgetech.com (2003-07-21) |
Re: End of optimization... walter@bytecraft.com (Walter Banks) (2003-07-23) |
Re: End of optimization... nej22@cl.cam.ac.uk (2003-07-25) |
Re: End of optimization... fjh@cs.mu.oz.au (Fergus Henderson) (2003-07-25) |
Re: End of optimization... Robert@Knighten.org (2003-07-31) |
Re: End of optimization... channahr@comcast.net (norm@plumpirate.com) (2003-08-04) |
Re: End of optimization... qsmgmt@earthlink.net (Alan Lehotsky) (2003-08-04) |
[3 later articles] |
From: | mayan@sandbridgetech.com |
Newsgroups: | comp.compilers |
Date: | 21 Jul 2003 21:36:01 -0400 |
Organization: | Posted via Supernews, http://www.supernews.com |
References: | 03-07-026 03-07-068 |
Keywords: | optimize, practice |
Posted-Date: | 21 Jul 2003 21:36:01 EDT |
Walter Banks wrote:
>
> mayan@sandbridgetech.com wrote:
> >
> > There isn't much in the way of new languages being developed.
> >
> > New architectures, too, are somewhat sparse.
> > - At the embedded microprocessor end, there is ARM and a handful of
> > other processors. Either the chips are so constrained that they are
> > programmed in assembly (e.g. PIC), . . .
>
> Embedded microprocessors with limited resources and unusual
> architectures are just the kind of target that compilers should be
> used for. Compilers are much better at dealing with resource usage
> than hand coding in assembler. Compiled code for this type of
> processor allows the developer to concentrate on the application and
> not the implementation details.
>
> Walter Banks
I'm not completely certain that I agree. One question is - why develop a
peculiar architecture in the first place? Why not, for instance, use an
200MHz PPC/ARM/etc. for everything (or even a 2GHz x86)?
The reason boil down to:
- cost: the microprocessors are too expensive; an alternate processor
better tailored to the problem domain will be cheaper.
- power: the microprocessors burn too much power; an alternate processor
better tailored to the problem domain will use less power
- performance: the microprocessors just can't keep up with the workload;
an alternate processor with specialized units is a better choice.
But why stop there? Why develop a fully-programmable solution? If
you're going to spin a chip, why not just build an ASIC perfectly
tailored to the problem?
This ASIC may have a limited (or even a large) amount of
programmability. But, if it was developed for one or two applications,
then providing a compiler for it is overkill - the effort is better
spent just hand-coding the chip.
Note also that, in this scenario, a large number of the inner-loops will
have been optimized away, as well - they will be implemented in special
hardware blocks, linked together in specific ways.
Compilers only make sense for platforms - i.e. for some kind of
generally programmable hardware for which a moderate number of
applications will be developed.
Optimizing compilers only make sense for "consumer" platforms - i.e.
for platforms for which a large number of applications will be
developed.
While your point about embedded devices being a good target for
compilers is well taken, I think economics is going to limit the number
of platforms, and therefore compilers, to a few areas.
- routers
- video
- wireless
- (possibly) audio
In the embedded arena, areas where compilers MAY still play a part fall
more in the area of hardware EDA tools: behavioral synthesis either to
FPGAs or silicon, hardware/software co-development, etc.
Mayan
Return to the
comp.compilers page.
Search the
comp.compilers archives again.