harpoon.IR.Tree
Class TEMP

java.lang.Object
  extended by harpoon.IR.Tree.Tree
      extended by harpoon.IR.Tree.Exp
          extended by harpoon.IR.Tree.TEMP
All Implemented Interfaces:
HCodeElement, Typed

public class TEMP
extends Exp

TEMP objects are expressions which stand for a value in a virtual register.

Version:
$Id: TEMP.java,v 1.4 2002/04/10 03:05:45 cananian Exp $
Author:
C. Scott Ananian <cananian@alumni.princeton.edu>, based on Modern Compiler Implementation in Java by Andrew Appel.

Nested Class Summary
 
Nested classes/interfaces inherited from class harpoon.IR.Tree.Tree
Tree.CloneCallback
 
Field Summary
 Temp temp
          The Temp which this TEMP refers to.
 int type
          The type of this Temp expression.
 
Fields inherited from class harpoon.IR.Tree.Tree
arrayFactory, child
 
Fields inherited from interface harpoon.IR.Tree.Typed
DOUBLE, FLOAT, INT, LONG, POINTER
 
Constructor Summary
TEMP(TreeFactory tf, HCodeElement source, int type, Temp temp)
          Constructor.
 
Method Summary
 void accept(TreeVisitor v)
          Accept a visitor
 Exp build(TreeFactory tf, ExpList kids)
           
 int kind()
          Return an integer enumeration of the kind of this Tree.
 Tree rename(TreeFactory tf, TempMap tm, Tree.CloneCallback cb)
          Rename while cloning a subtree.
 String toString()
           
 int type()
          Result type.
 
Methods inherited from class harpoon.IR.Tree.Exp
build, isDoubleWord, isFloatingPoint
 
Methods inherited from class harpoon.IR.Tree.Tree
clone, clone, getChild, getFactory, getFirstChild, getID, getLineNumber, getParent, getSibling, getSourceFile, hashCode, kids, rename, replace, setChild, unlink
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

temp

public final Temp temp
The Temp which this TEMP refers to.


type

public final int type
The type of this Temp expression.

Constructor Detail

TEMP

public TEMP(TreeFactory tf,
            HCodeElement source,
            int type,
            Temp temp)
Constructor.

Method Detail

kind

public int kind()
Description copied from class: Tree
Return an integer enumeration of the kind of this Tree. The enumerated values are defined in TreeKind.

Specified by:
kind in class Tree

build

public Exp build(TreeFactory tf,
                 ExpList kids)
Specified by:
build in class Exp

type

public int type()
Description copied from class: Exp
Result type.

Specified by:
type in interface Typed
Specified by:
type in class Exp

accept

public void accept(TreeVisitor v)
Accept a visitor

Specified by:
accept in class Tree

rename

public Tree rename(TreeFactory tf,
                   TempMap tm,
                   Tree.CloneCallback cb)
Description copied from class: Tree
Rename while cloning a subtree. This node and all child nodes are cloned; the 'temp' information of all TEMP nodes are renamed according to the supplied TempMap. Note that Temps not belonging to this.getFactory().tempFactory() are not affected. The callback() method of the supplied CloneCallback is invoked once on each subtree cloned, starting from the leaves and working back to the root in a post-order depth-first manner.

Specified by:
rename in class Tree

toString

public String toString()
Overrides:
toString in class Object