harpoon.IR.Quads
Class SET

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

public class SET
extends Quad

SET represents field assignment-to operations. The objectref is null if the field is static.

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

Field Summary
protected  HField field
          The field description.
protected  Temp objectref
          Reference to the object containing the field.
protected  Temp src
          Temp containing the desired new value of the field.
 
Fields inherited from class harpoon.IR.Quads.Quad
arrayFactory
 
Constructor Summary
SET(QuadFactory qf, HCodeElement source, HField field, Temp objectref, Temp src)
          Creates a SET representing a field assignment operation.
 
Method Summary
<T> T
accept(QuadValueVisitor<T> v)
           
 void accept(QuadVisitor v)
          Accept a visitor.
 HField field()
          Returns the description of the field to set.
 boolean isStatic()
          Determines whether the SET is of a static field.
 int kind()
          Return an integer enumeration of the kind of this Quad.
 Temp objectref()
          Returns null if the SET is on a static field, or the Temp containing the field to set otherwise.
 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.
 Temp src()
          Returns the Temp containing the desired new value of the field.
 String toString()
          Returns a human-readable representation of this Quad.
 Temp[] use()
          Returns the Temps used by this Quad.
 
Methods inherited from class harpoon.IR.Quads.Quad
addEdge, addEdges, addHandlers, clone, clone, clone, compareTo, def, 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

field

protected final HField field
The field description.


objectref

protected Temp objectref
Reference to the object containing the field.

null if the field is static.


src

protected Temp src
Temp containing the desired new value of the field.

Constructor Detail

SET

public SET(QuadFactory qf,
           HCodeElement source,
           HField field,
           Temp objectref,
           Temp src)
Creates a SET representing a field assignment operation.

Parameters:
field - the description of the field to set.
objectref - null for static fields, or a Temp referencing the object containing the field otherwise.
src - the Temp containing the value to put into the field.
Method Detail

field

public HField field()
Returns the description of the field to set.


objectref

public Temp objectref()
Returns null if the SET is on a static field, or the Temp containing the field to set otherwise.


src

public Temp src()
Returns the Temp containing the desired new value of the field.


use

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

Specified by:
use in interface UseDefable
Overrides:
use in class Quad
Returns:
the objectref and src fields.

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 a human-readable representation of this Quad.

Specified by:
toString in class Quad

isStatic

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