harpoon.Analysis.Maps
Interface Derivation

All Superinterfaces:
TypeMap
All Known Subinterfaces:
BackendDerivation
All Known Implementing Classes:
DerivationGenerator, DerivationMap, MyLowQuadNoSSA, MyLowQuadSSI

public interface Derivation
extends TypeMap

Derivation provides a means to access the derivation of a particular derived pointer. Given a compiler temporary, it will enumerate the base pointers and signs needed to allow proper garbage collection of the derived pointer.

See Diwan, Moss, and Hudson, "Compiler Support for Garbage Collection in a Statically Typed Language" in PLDI'92 for background on the derivation structure and its motivations.

Version:
$Id: Derivation.java,v 1.3 2002/02/26 22:40:50 cananian Exp $
Author:
C. Scott Ananian <cananian@alumni.princeton.edu>

Nested Class Summary
static class Derivation.DList
          Structure of the derivation information.
 
Nested classes inherited from class harpoon.Analysis.Maps.TypeMap
TypeMap.TypeNotKnownException
 
Method Summary
 Derivation.DList derivation(HCodeElement hce, Temp t)
          Map compiler temporaries to their derivations.
 
Methods inherited from interface harpoon.Analysis.Maps.TypeMap
typeMap
 

Method Detail

derivation

public Derivation.DList derivation(HCodeElement hce,
                                   Temp t)
                            throws TypeMap.TypeNotKnownException
Map compiler temporaries to their derivations.

Parameters:
t - The temporary to query.
hce - A definition point for t.
Returns:
null if the temporary has no derivation (is a base pointer, for example), or the derivation otherwise.
Throws:
NullPointerException - if t or hc is null.
TypeNotKnownException - if the Derivation has no information about t as defined at hce.
TypeMap.TypeNotKnownException