harpoon.IR.Quads
Class RETURN

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

public class RETURN
extends Quad

RETURN objects indicate a method return, with an optional return value.

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

Field Summary
protected  Temp retval
          Return value.
 
Fields inherited from class harpoon.IR.Quads.Quad
arrayFactory
 
Constructor Summary
RETURN(QuadFactory qf, HCodeElement source, Temp retval)
          Creates a RETURN representing a method return.
 
Method Summary
<T> T
accept(QuadValueVisitor<T> v)
           
 void accept(QuadVisitor v)
          Accept a visitor.
 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.
 Temp retval()
          Returns the Temp which holds the method return value, or returns null if the method returns no value.
 String toString()
          Returns a human-readable representation of this Quad.
 Temp[] use()
          Returns all 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

retval

protected Temp retval
Return value. null if there is no return value.

Constructor Detail

RETURN

public RETURN(QuadFactory qf,
              HCodeElement source,
              Temp retval)
Creates a RETURN representing a method return.

Parameters:
retval - the Temp holding the return value for the method. The retval field should be null if the method does not return a value.
Method Detail

retval

public Temp retval()
Returns the Temp which holds the method return value, or returns null if the method returns no value.


use

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

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

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