harpoon.Analysis.Maps
Interface Derivation<HCE extends HCodeElement>
- All Superinterfaces:
- TypeMap<HCE>
- All Known Subinterfaces:
- BackendDerivation
- All Known Implementing Classes:
- DerivationGenerator, DerivationMap, MyLowQuadNoSSA, MyLowQuadSSI
public interface Derivation<HCE extends HCodeElement>
- extends TypeMap<HCE>
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.5 2002/09/02 19:23:26 cananian Exp $
- Author:
- C. Scott Ananian <cananian@alumni.princeton.edu>
Nested Class Summary |
static class |
Derivation.DList
Structure of the derivation information. |
Methods inherited from interface harpoon.Analysis.Maps.TypeMap |
typeMap |
derivation
Derivation.DList derivation(HCE 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