Re: Aggressive optimization

eerke@cs.kun.nl (Eerke Boiten)
19 Oct 90 09:39:49 GMT

          From comp.compilers

Related articles
Re: Aggressive optimization brnstnd@kramden.acf.nyu.edu (1990-10-18)
Re: Aggressive optimization eerke@cs.kun.nl (1990-10-19)
Re: Aggressive optimization burley@world.std.com (1990-10-20)
Re: Aggressive optimization baxter@zola.ICS.UCI.EDU (Ira Baxter) (1990-10-23)
Re: Aggressive optimization daveg@near.cs.caltech.edu (1990-10-23)
| List of all articles for this month |
Newsgroups: comp.compilers
From: eerke@cs.kun.nl (Eerke Boiten)
Keywords: optimize, design
Organization: University of Nijmegen, The Netherlands
References: <1458@exodus.Eng.Sun.COM> <13405:Oct1800:22:5690@kramden.acf.nyu.edu> <2301@wn1.sci.kun.nl> <18662:Oct1817:18:0090@kramden.acf.nyu.edu>
Date: 19 Oct 90 09:39:49 GMT

In article <18662:Oct1817:18:0090@kramden.acf.nyu.edu> brnstnd@kramden.acf.nyu.edu (Dan Bernstein) writes:
>In article <2301@wn1.sci.kun.nl> eerke@cs.kun.nl (Eerke Boiten) writes:
> [ after my description of the most general optimization technique ]
>> A useful technique, indeed (called "strength reduction" in optimising
>> compilers, "finite differencing" in transformational programming).
>
>Huh? The strength reduction and finite differencing that CS majors learn
>is absolutely trivial compared to what anyone can do by hand. As I said,
>walking through an array is only the simplest example.


It's my experience that CS majors learn *principles*. Of course,
principles often seem trivialities to experts. And "what *anyone* can do
by hand" is trivial by definition.


>Does anyone have a compiler that can introduce a non-linear intermediate
>expression and reduce around it?
[More examples of sophisticated optimisations deleted]


Frankly, I don't know.
>> Of course, finite differencing is relatively safe
>> since you introduce redundant information most of the time.
>
>It's exactly this attitude of ``finite differencing is the only
>optimization in the world'' that leads people to think that hand
>optimization is useless. Both the attitude and the conclusion are wrong.


That's not what I said. You called "finite differencing" *the most
general* optimisation technique. IMO, it's one of the few general
techniques that can usually be safely applied by hand. Things like loop
jamming (fusion, merging, etc) are much more error prone. Same goes for
code motion. Just to mention a few techniques that compilers can and do
apply.


I'd be the last to argue that human intelligence is no longer
necessary for program optimisation. Some people consider program
transformation an AI subject ...


Eerke Boiten
Department of Informatics (STOP Project), K.U.Nijmegen
Toernooiveld, 6525 AD Nijmegen, The Netherlands
Tel. +31-80-612236. Email: eerke@cs.kun.nl
--


Post a followup to this message

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