Re: End of optimization...

mayan@sandbridgetech.com
21 Jul 2003 21:36:01 -0400

          From comp.compilers

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]
| List of all articles for this month |

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


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.