|[3 earlier articles]|
|Re: Fast code vs. fast compile email@example.com (Darius Blasband) (1997-01-22)|
|Re: Fast code vs. fast compile firstname.lastname@example.org (John Lilley) (1997-01-22)|
|Re: Fast code vs. fast compile email@example.com (1997-01-22)|
|Re: Fast code vs. fast compile firstname.lastname@example.org (1997-01-22)|
|Re: Fast code vs. fast compile email@example.com (1997-01-22)|
|Re: Fast code vs. fast compile firstname.lastname@example.org (Darius Blasband) (1997-01-25)|
|Re: Fast code vs. fast compile email@example.com (Walter Spector) (1997-01-25)|
|Re: Fast code vs. fast compile firstname.lastname@example.org (1997-02-16)|
|From:||Walter Spector <email@example.com>|
|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.
Mountain View, California
Return to the
Search the comp.compilers archives again.