EDU.purdue.cs.bloat.tree
Class LocalExpr

java.lang.Object
  |
  +--EDU.purdue.cs.bloat.tree.Node
        |
        +--EDU.purdue.cs.bloat.tree.Expr
              |
              +--EDU.purdue.cs.bloat.tree.DefExpr
                    |
                    +--EDU.purdue.cs.bloat.tree.MemExpr
                          |
                          +--EDU.purdue.cs.bloat.tree.VarExpr
                                |
                                +--EDU.purdue.cs.bloat.tree.LocalExpr

public class LocalExpr
extends VarExpr
implements LeafExpr

LocalExpr represents an expression that accesses a variable in a method's local variable table. Note that during register allocation the index becomes the color that the LocalExpr (variable) is assigned.

See Also:
Tree.newStackLocal(int, EDU.purdue.cs.bloat.editor.Type), Tree.newLocal(int, EDU.purdue.cs.bloat.editor.Type)

Fields inherited from class EDU.purdue.cs.bloat.tree.Expr
type
 
Fields inherited from class EDU.purdue.cs.bloat.tree.Node
parent
 
Constructor Summary
LocalExpr(int index, boolean fromStack, Type type)
          Constructor.
LocalExpr(int index, Type type)
          Constructor.
 
Method Summary
 java.lang.Object clone()
           
 boolean equalsExpr(Expr other)
          Compares this expression to another.
 int exprHashCode()
          Returns the hash code for this expresion.
 boolean fromStack()
           
 boolean isReturnAddress()
          Returns true if the type of this expression is a return address.
 void visit(TreeVisitor visitor)
           
 void visitForceChildren(TreeVisitor visitor)
          Visit the children of this node.
 
Methods inherited from class EDU.purdue.cs.bloat.tree.VarExpr
def, index, setIndex
 
Methods inherited from class EDU.purdue.cs.bloat.tree.DefExpr
addUse, cleanupOnly, hasUse, isDef, removeUse, uses, version
 
Methods inherited from class EDU.purdue.cs.bloat.tree.Expr
comparator, copyInto, setDef, setType, stmt, type
 
Methods inherited from class EDU.purdue.cs.bloat.tree.Node
block, cleanup, copyInto, hasParent, key, parent, replaceWith, replaceWith, setKey, setParent, setValueNumber, toString, valueNumber, visitChildren, visitOnly
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

LocalExpr

public LocalExpr(int index,
                 boolean fromStack,
                 Type type)
Constructor.
Parameters:
index - Index into the local variable table for this expression.
fromStack - Is the local allocated on the stack?
type - The type of this expression

LocalExpr

public LocalExpr(int index,
                 Type type)
Constructor. LocalExpr is not allocated on the stack.
Parameters:
index - Index into the local variable table for this expression.
type - The type of this expression.
Method Detail

fromStack

public boolean fromStack()

isReturnAddress

public boolean isReturnAddress()
Returns true if the type of this expression is a return address.

visitForceChildren

public void visitForceChildren(TreeVisitor visitor)
Description copied from class: Node
Visit the children of this node. Not all Nodes will have children to visit.
Overrides:
visitForceChildren in class Node

visit

public void visit(TreeVisitor visitor)
Overrides:
visit in class Node

equalsExpr

public boolean equalsExpr(Expr other)
Description copied from class: Expr
Compares this expression to another.
Overrides:
equalsExpr in class Expr
Parameters:
other - The other expression to compare against.

exprHashCode

public int exprHashCode()
Description copied from class: Expr
Returns the hash code for this expresion.
Overrides:
exprHashCode in class Expr

clone

public java.lang.Object clone()
Overrides:
clone in class Expr