harpoon.IR.LowQuad
Class PAOFFSET

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

public class PAOFFSET
extends PCONST

PAOFFSET computes the POINTER offset needed to access a given array element.

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

Field Summary
protected  HClass arrayType
          The array type.
protected  Temp index
          The index into the array.
 
Fields inherited from class harpoon.IR.LowQuad.PCONST
dst
 
Fields inherited from class harpoon.IR.Quads.Quad
arrayFactory
 
Constructor Summary
PAOFFSET(LowQuadFactory qf, HCodeElement source, Temp dst, HClass arrayType, Temp index)
          Creates a PAOFFSET representing the POINTER offset needed to access a given array element.
 
Method Summary
 HClass arrayType()
          Returns the array type.
 Temp index()
          Returns the Temp holding the index of the array element to address.
 int kind()
          Return an integer enumeration of the kind of this Quad.
 Quad rename(QuadFactory qf, TempMap defMap, TempMap useMap)
          Create a new Quad identical to the receiver, but with all Temps renamed according to a mapping.
 String toString()
          Force everyone to reimplement toString()
 Temp[] use()
          Return all the Temps used by this Quad.
 
Methods inherited from class harpoon.IR.LowQuad.PCONST
def, dst
 
Methods inherited from class harpoon.IR.LowQuad.LowQuad
accept, accept
 
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

arrayType

protected final HClass arrayType
The array type.


index

protected final Temp index
The index into the array.

Constructor Detail

PAOFFSET

public PAOFFSET(LowQuadFactory qf,
                HCodeElement source,
                Temp dst,
                HClass arrayType,
                Temp index)
Creates a PAOFFSET representing the POINTER offset needed to access a given array element.

Parameters:
dst - the Temp in which to store the computed offset.
arrayType - the type of the array the element is in.
index - the index of the array element to address.
Method Detail

arrayType

public HClass arrayType()
Returns the array type.


index

public Temp index()
Returns the Temp holding the index of the array element to address.


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

use

public Temp[] use()
Description copied from class: Quad
Return all the Temps used by this Quad.

Specified by:
use in interface UseDefable
Overrides:
use in class Quad

rename

public Quad rename(QuadFactory qf,
                   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

toString

public String toString()
Description copied from class: Quad
Force everyone to reimplement toString()

Specified by:
toString in class Quad