Re: Fast code vs. fast compile

Walter Spector <wws@renaissance.cray.com>
25 Jan 1997 22:13:58 -0500

          From comp.compilers

Related articles
[3 earlier articles]
Re: Fast code vs. fast compile darius@phidani.be (Darius Blasband) (1997-01-22)
Re: Fast code vs. fast compile jlilley@empathy.com (John Lilley) (1997-01-22)
Re: Fast code vs. fast compile mwolfe@dat.cse.ogi.edu (1997-01-22)
Re: Fast code vs. fast compile mikey@ontek.com (1997-01-22)
Re: Fast code vs. fast compile conway@cs.mu.oz.au (1997-01-22)
Re: Fast code vs. fast compile darius@phidani.be (Darius Blasband) (1997-01-25)
Re: Fast code vs. fast compile wws@renaissance.cray.com (Walter Spector) (1997-01-25)
Re: Fast code vs. fast compile kanze@gabi-soft.fr (1997-02-16)
| List of all articles for this month |
From: Walter Spector <wws@renaissance.cray.com>
Newsgroups: comp.compilers
Date: 25 Jan 1997 22:13:58 -0500
Organization: Are you kidding?
References: 97-01-122 97-01-137 97-01-167
Keywords: practice, performance, history

Michael Wolfe wrote:
> When the Cray CFT compiler (written in Cray Assembler) was being
> replaced by the CFT77 compiler (written in Pascal), the users
> complained bitterly that the compile speed dropped by 1/2 from
> 200,000 lines/minute down to 100,000 lines per minute (count the zeros).


CFT was great! In 1976 it was performing automatic vectorization
analysis for the Cray-1. It was also >120K lines of Cray-1 assembly
code in ONE program unit...


To be fair to CFT77 it should be mentioned that the switch to Pascal
was not the only reason for degradation in compile speed. One major
difference was that CFT only did optimization on a basic block basis.
CFT77 introduced the notion of global optimization. So much more
information was collected and used.


There was an interesting side effect of CFT's optimization scheme.
One criteron for vectorization was that an entire loop fit in a single
basic block. Since IF statements tend to break basic blocks,
conditional code had to be carefully written with intrinsics similar
to the Fortran-90 MERGE in order to get a loop to vectorize. With
CFT77 this was no longer an issue. (Vectorization of IFs were
implemented in the final couple of CFT releases as well.)


Why was CFT77 written in Pascal rather than C? At the time the
project began, like 1982, there was no C compiler for a Cray. But
there was a Pascal compiler. If the project had begun a year or two
later, the decision might have been different. The first prototype
work on the Unix-based OS, Unicos, was not started until about 1983.


Walt
--
Walt Spector
(wws@cray.com)
Mountain View, California
--


Post a followup to this message

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