Class Node
java.lang.Object
EDU.purdue.cs.bloat.tree.Node
Node represents a node in an expression tree. Each Node has a value number
and a key associated with it. The value number is used to eliminate
statements and expressions that have the same value (PRE). Statements and
expressions of the same value will be mapped to the same value number.
- See Also:
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionblock()Returns the basic block in which this Node resides.voidcleanup()Cleans up this node so that it is independent of the expression tree in which it resides.abstract voidClean up this Node only.protected NodeCopies the contents of one Node into another.booleanintkey()A Node's key represents an integer value that can be used by an algorithm to mark this node.parent()voidreplaceWith(Node node) Replaces this node with another and perform cleanup.voidreplaceWith(Node node, boolean cleanup) Replaces this Node with node in its (this's) tree.voidsetKey(int key) voidSets the parent Node of this Node.voidsetValueNumber(int valueNumber) Sets this Node's value number.toString()intReturns this Node's value number.abstract voidvisit(TreeVisitor visitor) voidvisitChildren(TreeVisitor visitor) abstract voidvisitForceChildren(TreeVisitor visitor) Visit the children of this node.voidvisitOnly(TreeVisitor visitor)
-
Field Details
-
parent
-
-
Constructor Details
-
Node
public Node()Constructor.
-
-
Method Details
-
valueNumber
public int valueNumber()Returns this Node's value number. -
setValueNumber
public void setValueNumber(int valueNumber) Sets this Node's value number. -
key
public int key()A Node's key represents an integer value that can be used by an algorithm to mark this node. For instance, when dead code elimination is performed a Node is marked as DEAD or ALIVE. -
setKey
public void setKey(int key) -
visitForceChildren
Visit the children of this node. Not all Nodes will have children to visit. -
visit
-
visitChildren
-
visitOnly
-
block
Returns the basic block in which this Node resides. -
setParent
Sets the parent Node of this Node. -
hasParent
public boolean hasParent() -
parent
-
copyInto
-
cleanupOnly
public abstract void cleanupOnly()Clean up this Node only. Does not effect its children nodes. -
cleanup
public void cleanup()Cleans up this node so that it is independent of the expression tree in which it resides. This is usually performed before a Node is moved from one part of an expression tree to another.Traverse the Tree starting at this Node. Remove the parent of each node and perform any Node-specific cleanup (see cleanupOnly). Sets various pointers to null so that they eventually may be garbage collected.
-
replaceWith
Replaces this node with another and perform cleanup. -
replaceWith
Replaces this Node with node in its (this's) tree.- Parameters:
node- The Node with which to replace.cleanup- Do we perform cleanup on the tree?
-
toString
-