glen herrmannsfeldt <gah@ugcs.caltech.edu>
Fri, 12 Aug 2011 04:05:54 +0000 (UTC)

          From comp.compilers

Related articles
optimizing gah@ugcs.caltech.edu (glen herrmannsfeldt) (2011-08-12)
Re: optimizing anton@mips.complang.tuwien.ac.at (2011-08-13)
Re: optimizing haberg-news@telia.com (Hans Aberg) (2011-08-13)
Re: optimizing walter@bytecraft.com (Walter Banks) (2011-08-14)
Re: optimizing torbenm@diku.dk (2011-08-15)
Re: optimizing bumens@dingens.org (Volker Birk) (2011-08-15)
Re: optimizing haberg-news@telia.com (Hans Aberg) (2011-08-15)
[1 later articles]
| List of all articles for this month |

From: glen herrmannsfeldt <gah@ugcs.caltech.edu>
Newsgroups: comp.compilers
Date: Fri, 12 Aug 2011 04:05:54 +0000 (UTC)
Organization: Aioe.org NNTP Server
Keywords: optimize, question
Posted-Date: 12 Aug 2011 22:20:04 EDT

A recent post to comp.lang.fortran on optimization reminded me of
something I thought about some time ago. Someone was wondering if any
optimization was done at link time. In the case of Fortran, the
answer is usually no.

It seems to me, though, that in the case of RISC, and even more in the
case of VLIW processors like Itanium, delaying the final optimization
and code generation pass would be useful.

For processors which depend on the compiler to generate optimal code
sequences (that is, ones that don't do out-of-order execution) and
assuming that you want to allow for improved versions of the
processor, delaying code generation would be very useful.

It could be done at run time, or, more likely, at program install
time. (The latter limits the ability to move a disk between systems,
but that shouldn't be so much of a problem.)

One possibility would be to supply the optimization and code
generation either as an on-chip ROM, or a separate ROM that come
with the processor. Also, the intermediate code format has to
be standardized well enough to allow for it.

Though this requires compiler designers and processor designers
to talk to each other, which might not happen as often as it should.

-- glen
[This is pretty standard in the toolchains for embedded processors. I
gather that the ARM compilers generate intermediate code, and all the
optimization and code generation happens in the linker. -John]

Post a followup to this message

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