Caller/Callee saved Registers

pmagun@iiic.ethz.ch (Paul Jakob Magun)
Mon, 14 Mar 1994 07:40:54 GMT

          From comp.compilers

Related articles
Caller/Callee saved Registers pmagun@iiic.ethz.ch (1994-03-14)
Re: Caller/Callee saved Registers preston@noel.cs.rice.edu (1994-03-21)
Re: Caller/Callee saved Registers pardo@cs.washington.edu (1994-03-22)
Re: Caller/Callee saved Registers hbaker@netcom.com (1994-03-22)
Caller/Callee saved Registers ssimmons@convex.com (1994-03-22)
Re: Caller/Callee saved Registers paulb@travis.csd.harris.com (1994-03-22)
Re: Caller/Callee saved Registers cliffc@noel.cs.rice.edu (1994-03-22)
[29 later articles]
| List of all articles for this month |

Newsgroups: comp.compilers
From: pmagun@iiic.ethz.ch (Paul Jakob Magun)
Keywords: registers
Organization: Dept. Informatik, Swiss Federal Inst of Tech (ETH), Zurich, CH
Date: Mon, 14 Mar 1994 07:40:54 GMT

Hi,


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
caller/calleesaved registers:


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.


      Thanks,


Jakob Paul Magun, pmagun@iiic.ethz.ch
(currently graduating from the Swiss Federal Institute of Technology)
--


Post a followup to this message

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