|Caller/Callee saved Registers email@example.com (1994-03-14)|
|Re: Caller/Callee saved Registers firstname.lastname@example.org (1994-03-21)|
|Re: Caller/Callee saved Registers email@example.com (1994-03-22)|
|Re: Caller/Callee saved Registers firstname.lastname@example.org (1994-03-22)|
|Caller/Callee saved Registers email@example.com (1994-03-22)|
|Re: Caller/Callee saved Registers firstname.lastname@example.org (1994-03-22)|
|Re: Caller/Callee saved Registers email@example.com (1994-03-22)|
|[29 later articles]|
|From:||firstname.lastname@example.org (Paul Jakob Magun)|
|Organization:||Dept. Informatik, Swiss Federal Inst of Tech (ETH), Zurich, CH|
|Date:||Mon, 14 Mar 1994 07:40:54 GMT|
I am currently working on the register allocation for a compiler
generating code for the IBM RS/6000 architecture.
The register sets of this architecture are split into caller and callee
saved registers. Parameters are always passed in caller saved registers.
I'm having some difficulty grasping the key idea behind the division in
What would happen if all registers were saved by the called procedure
(callee saved) ?
The kind (caller saved/callee saved) of register used for a variable is
determined locally. Won't this a suboptimal global allocation ?
Why are there no callee saved parameter registers ?
How did the designers of the architecture decide on the relative number of
caller/callee saved registers ? Should the division be chosen differently
for different high level languages ?
I would be very interesetd in Your comments, suggestions, advice and would
appreciate any reference to papers dealing with this topic.
Jakob Paul Magun, email@example.com
(currently graduating from the Swiss Federal Institute of Technology)
Return to the
Search the comp.compilers archives again.