harpoon.Backend.Maps
Interface BackendDerivation

All Superinterfaces:
Derivation, TypeMap

public interface BackendDerivation
extends Derivation

BackendDerivation provides, in addition to the type and derivation information provided by Analysis.Maps.Derivation, a means to identify (polymorphically typed) callee-save registers.

Note that BackendDerivation extends Derivation, so non-callee-save-register values will continue to have class and derivation types. The typeMap() and derivation() functions should both return null if the temporary in question is holding a callee-save register value.

Version:
$Id: BackendDerivation.java,v 1.2 2002/02/25 21:01:55 cananian Exp $
Author:
C. Scott Ananian <cananian@alumni.princeton.edu>

Nested Class Summary
static interface BackendDerivation.Register
           
 
Nested classes/interfaces inherited from interface harpoon.Analysis.Maps.Derivation
Derivation.DList
 
Nested classes/interfaces inherited from interface harpoon.Analysis.Maps.TypeMap
TypeMap.TypeNotKnownException
 
Method Summary
 BackendDerivation.Register calleeSaveRegister(HCodeElement hce, Temp t)
          Map compiler temporaries to the callee-save register location they correspond to.
 
Methods inherited from interface harpoon.Analysis.Maps.Derivation
derivation
 
Methods inherited from interface harpoon.Analysis.Maps.TypeMap
typeMap
 

Method Detail

calleeSaveRegister

BackendDerivation.Register calleeSaveRegister(HCodeElement hce,
                                              Temp t)
Map compiler temporaries to the callee-save register location they correspond to.

Parameters:
t - The temporary to query.
hce - A definition point for t.
Returns:
null if the temporary does not hold the value of a callee-save register, or else the identity of the callee-save register.
Throws:
NullPointerException - if t or hc is null.
TypeNotKnownException - if the BackendDerivation has no information about t as defined at hce.