|801 and Berkeley RISC firstname.lastname@example.org (1990-02-11)|
|Re: 801 and Berkeley RISC email@example.com (1990-02-12)|
|Re: 801 and Berkeley RISC firstname.lastname@example.org (1990-02-13)|
|From:||email@example.com (Wendy Thrash)|
|Date:||13 Feb 90 23:02:38 GMT|
|From:||firstname.lastname@example.org (Wendy Thrash)|
|Organization:||University of Washington, Computer Science, Seattle|
Robert Henry, I believe:
>>My understanding of the 801 compiler (now very very dated) is that ported
>>versions of the compiler treated microprocessors as a RISC machine, and
>>ended up doing a lousy job of using addressing modes.
>As I understand it, this is true... but irrelevant, since the generated code
>often ran faster as a result!
This may have made the performance of the compiler moot to IBM, but it
certainly does not make Robert's criticism irrelevant if one is attempting to
assess the design of the 801 compiler. If I believed that the compiler
_could_ have done a good job of using addressing modes, given a reasonable
amount of work, then I'd agree that the point was irrelevant, but I don't
necessarily believe that.
>Fancy addressing modes turn out to be seriously slow, because the CPU
>designers quite sensibly optimize the ones that are frequently used,
>i.e. the simple ones. The 801 people were reportedly quite surprised to
>find that the 370 (and successors) run faster as RISCs than as CISCs.
This matches my own experience with the 68020; I foolishly "improved" my
compiler to take advantage of some of the spiffy new addressing modes, only
to find that the generated code ran more slowly.
There is an interesting circle here. Many compilers do not generate
complicated addressing modes available in the target hardware. There is no
reason for compiler writers to make them do this, since using the simpler
modes makes their generated code run faster. Computer architects, on the
other hand, (quite sensibly) optimize their computers for the common case,
and the complicated addressing modes are uncommon, at least in part because
they are not generated by compilers.
(Of course, this just argues that compilers should be built before
architecture design is cast in concrete, a fairly commonplace argument these
days, and one that perhaps belongs back in comp.arch, rather than in
-Wendy T., quondam compiler-compiler compiler. :-)
Return to the
Search the comp.compilers archives again.