SandMark version 2.0


sandmark.obfuscate.boolsplitter.dtree
Class DefExpr

java.lang.Object
  |
  +--sandmark.obfuscate.boolsplitter.dtree.Node
        |
        +--sandmark.obfuscate.boolsplitter.dtree.Expr
              |
              +--sandmark.obfuscate.boolsplitter.dtree.DefExpr
All Implemented Interfaces:
java.lang.Cloneable
Direct Known Subclasses:
MemExpr

public abstract class DefExpr
extends Expr

An expression in which a definition occurs. Each instance has a unique version number associated with it.


Field Summary
(package private) static int next
           
(package private)  java.util.Set uses
           
(package private)  int version
           
 
Fields inherited from class sandmark.obfuscate.boolsplitter.dtree.Expr
B, BARRAY, BOOL, BOOLARRAY, range, type, UNDEF
 
Fields inherited from class sandmark.obfuscate.boolsplitter.dtree.Node
key, parent, valueNumber
 
Constructor Summary
DefExpr(EDU.purdue.cs.bloat.editor.Type type)
          Constructor.
 
Method Summary
protected  void addUse(Expr use)
           
 void cleanupOnly()
          Clean up this expression.
 boolean hasUse(Expr use)
           
 boolean isDef()
          Determines whether or not this DefExpr defines a local variable in its parent.
protected  void removeUse(Expr use)
           
 java.util.Collection uses()
          Returns the Exprs in which the variable defined by this are used.
 int version()
          Returns Number DefExpr this is.
 
Methods inherited from class sandmark.obfuscate.boolsplitter.dtree.Expr
clone, comparator, copyInto, def, equalsExpr, exprHashCode, mergeRange, setDef, setType, stmt, type
 
Methods inherited from class sandmark.obfuscate.boolsplitter.dtree.Node
block, cleanup, copyInto, hasParent, key, parent, replaceWith, replaceWith, setKey, setParent, setValueNumber, toString, valueNumber, visit, visitChildren, visitForceChildren, visitOnly
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

uses

java.util.Set uses

version

int version

next

static int next
Constructor Detail

DefExpr

public DefExpr(EDU.purdue.cs.bloat.editor.Type type)
Constructor.

Parameters:
type - The Type (descriptor) of this expression
Method Detail

cleanupOnly

public void cleanupOnly()
Clean up this expression. Notify all the expressions that use this definition that it is no longer their defining expression.

Overrides:
cleanupOnly in class Expr

version

public int version()
Returns Number DefExpr this is. This is also the SSA version number of the expression that this DefExpr defines.


isDef

public boolean isDef()
Determines whether or not this DefExpr defines a local variable in its parent.

Overrides:
isDef in class Expr
See Also:
Assign.defs()

uses

public java.util.Collection uses()
Returns the Exprs in which the variable defined by this are used.


hasUse

public boolean hasUse(Expr use)

addUse

protected void addUse(Expr use)

removeUse

protected void removeUse(Expr use)

SandMark version 2.0

Mon Jun 17 12:30:47 MST 2002