Re: Caller allocates space for callee-save registers

henry@zoo.toronto.edu (Henry Spencer)
Fri, 29 May 1992 17:58:31 GMT

          From comp.compilers

Related articles
Caller allocates space for callee-save registers pardo@cs.washington.edu (1992-05-21)
Re: Caller allocates space for callee-save registers pardo@cs.washington.edu (1992-05-27)
Re: Caller allocates space for callee-save registers gaynor@brushfire.rutgers.edu (1992-05-29)
Re: Caller allocates space for callee-save registers henry@zoo.toronto.edu (1992-05-29)
Re: Caller allocates space for callee-save registers andrew@rentec.com (1992-05-31)
Re: Caller allocates space for callee-save registers juul@diku.dk (1992-06-01)
Re: Caller allocates space for callee-save registers andrew@rentec.com (1992-06-01)
Re: Caller allocates space for callee-save registers stephen@estragon.uchicago.edu (1992-06-01)
Re: Caller allocates space for callee-save registers preston@dawn.cs.rice.edu (1992-06-01)
Re: Caller allocates space for callee-save registers leichter@zodiac.rutgers.edu (1992-06-02)
[10 later articles]
| List of all articles for this month |

Newsgroups: comp.compilers
From: henry@zoo.toronto.edu (Henry Spencer)
Keywords: registers, optimize
Organization: U of Toronto Zoology
References: 92-05-123 92-05-153
Date: Fri, 29 May 1992 17:58:31 GMT

> our moderator writes:
>[It is my impression that with a reasonably smart compiler stack windows
>are a big lose because the compiler can usually cut the register save
>traffic to memory far below what windows do...


John Mashey (of MIPS) commented on this a few years ago, in a talk and in
response to a question I asked him about it afterward. What he said was
roughly:


1. For languages like C on a register-rich machine, careful choice of
calling conventions plus a smart compiler can essentially eliminate the
performance advantages of windows for real programs.


2. For languages like C++, with very dynamic calling patterns not readily
predictable at compile time, MIPS's studies say it would be moderately
helpful to have a few register windows... not helpful enough, in their
opinion, to justify the costs.


He also noted the existence of an undetected geological fault in
California, the "register windows fault": if you plot the locations of
RISC companies in Silicon Gulch on a map, all the windowed architectures
are on one side of a slightly crooked line, and all the non-windowed ones
are on the other side! (This situation may have changed since then, of
course...)


Also, I don't *think* he said this in so many words, but it's a simple
corollary of things he did say... Calling patterns matter a lot, and they
aren't always what you think, or what you measure from a handful of
benchmarks. The Unix kernel, for example, is a dreadful worst case for
everything from calling conventions to MMUs: it typically makes a straight
plunge down level after level of the call graph, fiddles around for an
instant near the bottom, and then zips straight back up. It's important
that machines and compilers cope reasonably well with bad cases, not just
typical ones.
--
Henry Spencer @ U of Toronto Zoology, henry@zoo.toronto.edu utzoo!henry
--


Post a followup to this message

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