harpoon.IR.Quads
Class ANEW

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

public class ANEW
extends Quad

ANEW represents an array creation operation.

Version:
$Id: ANEW.java,v 1.5 2002/04/11 04:00:28 cananian Exp $
Author:
C. Scott Ananian <cananian@alumni.princeton.edu>
See Also:
NEW, AGET, ASET, ALENGTH, Serialized Form

Field Summary
protected  Temp[] dims
          Lengths of each dimension to create.
protected  Temp dst
          The Temp in which to store the new array reference.
protected  HClass hclass
          Description of array class to create.
 
Fields inherited from class harpoon.IR.Quads.Quad
arrayFactory
 
Constructor Summary
ANEW(QuadFactory qf, HCodeElement source, Temp dst, HClass hclass, Temp[] dims)
          Creates an ANEW 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[] dims()
          Returns an array of Temps holding the length of each array dimension.
 Temp dims(int i)
          Returns a particular element of the dims array.
 int dimsLength()
          Returns the length of the dims array.
 Temp dst()
          Returns the destination Temp.
 HClass hclass()
          Returns the array class this ANEW 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.
 Temp[] use()
          Returns the Temps 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
The Temp in which to store the new array reference.


hclass

protected final HClass hclass
Description of array class to create.


dims

protected Temp[] dims
Lengths of each dimension to create.

Constructor Detail

ANEW

public ANEW(QuadFactory qf,
            HCodeElement source,
            Temp dst,
            HClass hclass,
            Temp[] dims)
Creates an ANEW object. ANEW creates an array of the type and number of dimensions indicated by the hclass parameter. Each entry in dims denotes the number of components in a particular dimension of the array. dims[0] corresponds to the left-most dimension. The array class referenced by hclass may have more dimensions than the length of the dims parameter. In that case, only the first dims.length dimensions of the array are created.

Parameters:
dst - the Temp in which to store the new array reference.
hclass - the array class to create.
dims - Temps holding the length of each array dimension.
Method Detail

dst

public Temp dst()
Returns the destination Temp.


hclass

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


dims

public Temp[] dims()
Returns an array of Temps holding the length of each array dimension.


dims

public Temp dims(int i)
Returns a particular element of the dims array.


dimsLength

public int dimsLength()
Returns the length of the dims array.


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.

use

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

Specified by:
use in interface UseDefable
Overrides:
use in class Quad
Returns:
the dims 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