harpoon.IR.Quads
Class GET

java.lang.Object
  extended by harpoon.IR.Quads.Quad
      extended by harpoon.IR.Quads.GET
All Implemented Interfaces:
HCodeElement, CFGraphable<Quad,Edge>, UseDefable, Graph.Node<Quad,Edge>, Serializable, Cloneable, Comparable<Quad>

public class GET
extends Quad

GET represent field access (get) operations. The objectref is null if the field is static.

Version:
$Id: GET.java,v 1.5 2002/04/11 04:00:34 cananian Exp $
Author:
C. Scott Ananian <cananian@alumni.princeton.edu>
See Also:
Serialized Form

Field Summary
protected  Temp dst
          Temp in which to store the fetched field contents.
protected  HField field
          The field description.
protected  Temp objectref
          Reference to the object containing the field.
 
Fields inherited from class harpoon.IR.Quads.Quad
arrayFactory
 
Constructor Summary
GET(QuadFactory qf, HCodeElement source, Temp dst, HField field, Temp objectref)
          Creates a GET representing a field access.
 
Method Summary
<T> T
accept(QuadValueVisitor<T> v)
           
 void accept(QuadVisitor v)
          Accept a visitor.
 Temp[] def()
          Returns the Temp defined by this Quad.
 Temp dst()
          Returns the Temp in which to store the fetched field.
 HField field()
          Returns the field to fetch.
 boolean isStatic()
          Determines whether the GET is of a static field.
 int kind()
          Return an integer enumeration of the kind of this Quad.
 Temp objectref()
          Returns the object containing the specified field, or null if the field is static.
 Quad rename(QuadFactory qqf, TempMap defMap, TempMap useMap)
          Create a new Quad identical to the receiver, but with all Temps renamed according to a mapping.
 String toString()
          Returns human-readable representation.
 Temp[] use()
          Returns the Temp used by this Quad.
 
Methods inherited from class harpoon.IR.Quads.Quad
addEdge, addEdges, addHandlers, clone, clone, clone, compareTo, defC, edgeC, edges, getFactory, getID, getLineNumber, getSourceFile, handlers, hashCode, isPred, isSucc, map, map, map, next, next, nextEdge, nextEdge, nextLength, pred, predC, prev, prev, prevEdge, prevEdge, prevLength, remove, removeHandlers, rename, replace, succ, succC, toLongString, transferHandlers, useC
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

dst

protected Temp dst
Temp in which to store the fetched field contents.


field

protected final HField field
The field description.


objectref

protected Temp objectref
Reference to the object containing the field.

null if field is static.

Constructor Detail

GET

public GET(QuadFactory qf,
           HCodeElement source,
           Temp dst,
           HField field,
           Temp objectref)
Creates a GET representing a field access.

Parameters:
dst - the Temp in which to store the fetched field.
field - the field description.
objectref - the Temp referencing the object containing the specified field, if the field is not static. For static fields, objectref is null.
Method Detail

dst

public Temp dst()
Returns the Temp in which to store the fetched field.


field

public HField field()
Returns the field to fetch.


objectref

public Temp objectref()
Returns the object containing the specified field, or null if the field is static.


use

public Temp[] use()
Returns the Temp used by this Quad.

Specified by:
use in interface UseDefable
Overrides:
use in class Quad
Returns:
the objectref field.

def

public Temp[] def()
Returns the Temp defined by this Quad.

Specified by:
def in interface UseDefable
Overrides:
def in class Quad
Returns:
the dst field.

kind

public int kind()
Description copied from class: Quad
Return an integer enumeration of the kind of this Quad. The enumerated values are defined in QuadKind.

Specified by:
kind in class Quad

rename

public Quad rename(QuadFactory qqf,
                   TempMap defMap,
                   TempMap useMap)
Description copied from class: Quad
Create a new Quad identical to the receiver, but with all Temps renamed according to a mapping. The new Quad will have no edges.

The new Quad will come from the specified QuadFactory.

Specified by:
rename in class Quad

accept

public void accept(QuadVisitor v)
Description copied from class: Quad
Accept a visitor.

Specified by:
accept in class Quad

accept

public <T> T accept(QuadValueVisitor<T> v)
Specified by:
accept in class Quad

toString

public String toString()
Returns human-readable representation.

Specified by:
toString in class Quad

isStatic

public boolean isStatic()
Determines whether the GET is of a static field.