harpoon.IR.Quads
Class CONST

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

public class CONST
extends Quad

CONST objects represent an assignment of a constant value to a compiler temporary.

The type field of a CONST must be one of: Class, Field, Method, String, int, long, float, double or void. A void type corresponds to a null literal constant, and in this case the value field will be null. For class, field, and method constants, the value field will contain an instance of HClass, HField, or HMethod, respectively. In all other cases, value will contain an object of the specified type; values of primitive types will use the standard wrapper class. An example may clarify:

Version:
$Id: CONST.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
          The destination Temp.
protected  HClass type
          The type of the constant value.
protected  Object value
          An object representing the constant value.
 
Fields inherited from class harpoon.IR.Quads.Quad
arrayFactory
 
Constructor Summary
CONST(QuadFactory qf, HCodeElement source, Temp dst, Object value, HClass type)
          Creates a CONST from a destination temporary, and object value and its class type.
 
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 which will contain the specified constant value.
 int kind()
          Return an integer enumeration of the kind of this Quad.
 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 a human-readable representation of this Quad.
 HClass type()
          Returns the type of the constant value.
 Object value()
          Returns the object representing the constant value.
 
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, use, useC
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

dst

protected Temp dst
The destination Temp.


value

protected final Object value
An object representing the constant value.


type

protected final HClass type
The type of the constant value.

Constructor Detail

CONST

public CONST(QuadFactory qf,
             HCodeElement source,
             Temp dst,
             Object value,
             HClass type)
Creates a CONST from a destination temporary, and object value and its class type.

Parameters:
dst - the Temp which will contain the specified constant value.
value - an object representing the constant value.
type - the type of the constant value.
Method Detail

dst

public Temp dst()
Returns the Temp which will contain the specified constant value.


value

public Object value()
Returns the object representing the constant value.


type

public HClass type()
Returns the type of the constant value.


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

Specified by:
toString in class Quad