harpoon.Analysis.LowQuad.Loop
Class MyLowQuadSSI

java.lang.Object
  extended by harpoon.ClassFile.HCode<Quad>
      extended by harpoon.IR.Quads.Code
          extended by harpoon.IR.LowQuad.Code
              extended by harpoon.IR.LowQuad.LowQuadSSI
                  extended by harpoon.Analysis.LowQuad.Loop.MyLowQuadSSI
All Implemented Interfaces:
Derivation<Quad>, TypeMap<Quad>, Graph<Quad,Edge>, Serializable

public class MyLowQuadSSI
extends LowQuadSSI
implements Derivation<Quad>

MyLowQuadSSI

Version:
$Id: MyLowQuadSSI.java,v 1.5 2003/03/11 18:22:36 cananian Exp $
Author:
Brian Demsky <bdemsky@mit.edu>
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class harpoon.ClassFile.HCode
HCode.PrintCallback<HCE extends HCodeElement>
 
Nested classes/interfaces inherited from interface harpoon.Analysis.Maps.Derivation
Derivation.DList
 
Nested classes/interfaces inherited from interface harpoon.Analysis.Maps.TypeMap
TypeMap.TypeNotKnownException
 
Nested classes/interfaces inherited from interface harpoon.Util.Collections.Graph
Graph.Edge<N extends Graph.Node<N,E>,E extends Graph.Edge<N,E>>, Graph.Node<N extends Graph.Node<N,E>,E extends Graph.Edge<N,E>>
 
Field Summary
static String codename
           
 
Fields inherited from class harpoon.IR.Quads.Code
ai, parent, qf, quads
 
Method Summary
 void addDerivation(Temp t, Derivation.DList dlist)
           
 void addQuadMapping(Quad oldquad, Quad newquad)
           
 void addType(Temp t, HClass type)
           
 HCodeAndMaps<Quad> clone(HMethod newMethod)
          Clone this code representation.
 Derivation.DList derivation(Quad hce, Temp t)
          Map compiler temporaries to their derivations.
 String getName()
          Return the name of this code view.
 Quad quadMap(Quad q)
           
 Temp tempMap(Temp t)
           
 HClass typeMap(Quad hce, Temp t)
          Return the type of a given temporary t, as defined at the definition point hce.
 
Methods inherited from class harpoon.IR.LowQuad.LowQuadSSI
codeFactory, codeFactory
 
Methods inherited from class harpoon.IR.LowQuad.Code
cloneHelper, getDerivation, newQF, setDerivation
 
Methods inherited from class harpoon.IR.Quads.Code
cloneHelper, elementArrayFactory, getAllocationInformation, getElements, getElementsI, getLeafElements, getMethod, getRootElement, nodes, notifyReplace, print, selectAllocations, selectCALLs, selectQuads, setAllocationInformation
 
Methods inherited from class harpoon.ClassFile.HCode
clone, elementIndexer, getElementsL, print, toString
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

codename

public static final String codename
See Also:
Constant Field Values
Method Detail

quadMap

public Quad quadMap(Quad q)

addQuadMapping

public void addQuadMapping(Quad oldquad,
                           Quad newquad)

tempMap

public Temp tempMap(Temp t)

addDerivation

public void addDerivation(Temp t,
                          Derivation.DList dlist)

derivation

public Derivation.DList derivation(Quad hce,
                                   Temp t)
Description copied from interface: Derivation
Map compiler temporaries to their derivations.

Specified by:
derivation in interface Derivation<Quad>
Parameters:
hce - A definition point for t.
t - The temporary to query.
Returns:
null if the temporary has no derivation (is a base pointer, for example), or the derivation otherwise.

addType

public void addType(Temp t,
                    HClass type)

typeMap

public HClass typeMap(Quad hce,
                      Temp t)
Description copied from interface: TypeMap
Return the type of a given temporary t, as defined at the definition point hce. Iff the type of the temporary is not known, or if hce does not define t, throws TypeNotKnownException. If the temporary represents a derived pointer, null should be returned; in which case the Derivation must return a non-null value. Obviously, TypeMaps for high-level representations without derived pointers should never return null. As a special case, HClass.Void may be returned in low-level IRs to indicate an opaque pointer value which does not correspond to a java object pointer or some derivation thereof --- for example, a pointer into a method dispatch table. The only other time HClass.Void should be returned is for known-null pointer values.

Specified by:
typeMap in interface TypeMap<Quad>
Parameters:
hce - The HCodeElement defining t.
t - The temporary to examine.
Returns:
the static type of t.

clone

public HCodeAndMaps<Quad> clone(HMethod newMethod)
Description copied from class: LowQuadSSI
Clone this code representation. The clone has its own copy of the quad graph.

WARNING: does not preserve derivation or allocation info.

Overrides:
clone in class LowQuadSSI

getName

public String getName()
Description copied from class: LowQuadSSI
Return the name of this code view.

Overrides:
getName in class LowQuadSSI
Returns:
the string "low-quad-ssi"