harpoon.IR.Quads
Class NEW

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

public class NEW
extends Quad

NEW represents an object creation operation. It creates an uninitialized instance of an object. One of the object's constructors must then be called (using a non-virtual Quads.CALL) to complete the instantiation.

Version:
$Id: NEW.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 Temp in which to store the new object.
protected  HClass hclass
          Description of the class to create.
 
Fields inherited from class harpoon.IR.Quads.Quad
arrayFactory
 
Constructor Summary
NEW(QuadFactory qf, HCodeElement source, Temp dst, HClass hclass)
          Creates a NEW object.
 
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 new object.
 HClass hclass()
          Returns the class this NEW will create.
 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.
 
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 Temp in which to store the new object.


hclass

protected final HClass hclass
Description of the class to create.

Constructor Detail

NEW

public NEW(QuadFactory qf,
           HCodeElement source,
           Temp dst,
           HClass hclass)
Creates a NEW object. NEW creates a new instance of the class hclass.

Parameters:
dst - the Temp in which to store the new object.
hclass - the class to create.
Method Detail

dst

public Temp dst()
Returns the Temp in which to store the new object.


hclass

public HClass hclass()
Returns the class this NEW will create.


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