cetus.analysis
Class DataFlow

java.lang.Object
  extended by cetus.analysis.DataFlow

public class DataFlow
extends java.lang.Object


Constructor Summary
DataFlow()
           
 
Method Summary
static java.util.Set<Expression> defines(Traversable root)
           
static java.util.TreeMap<Expression,Expression> defSet(Traversable root)
          Determines the set of definitions in the IR subtree starting at the specified root.
static java.util.Set getDefSet(BasicBlock block)
           
static java.util.Set getUseSet(BasicBlock block)
           
static java.util.Set<Expression> getUseSet(Traversable root)
          Determines the set of uses in the IR subtree starting at the specified root.
static java.util.TreeSet<Expression> mayDefine(Traversable root)
           
static void partitionScalarsAndArrays(java.util.Set<Expression> scalar_set, java.util.Set<ArrayAccess> array_set, java.util.Set<Expression> initial_set)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DataFlow

public DataFlow()
Method Detail

getDefSet

public static java.util.Set getDefSet(BasicBlock block)

defines

public static java.util.Set<Expression> defines(Traversable root)

mayDefine

public static java.util.TreeSet<Expression> mayDefine(Traversable root)

defSet

public static java.util.TreeMap<Expression,Expression> defSet(Traversable root)
Determines the set of definitions in the IR subtree starting at the specified root. The definitions can be general expressions because of pointer arithmetic.

Returns:
a map of definitions at and below the root to their guarding expression, if any

getUseSet

public static java.util.Set getUseSet(BasicBlock block)

getUseSet

public static java.util.Set<Expression> getUseSet(Traversable root)
Determines the set of uses in the IR subtree starting at the specified root. The uses can be general expressions because of pointer arithmetic.

Returns:
the set of uses at and below root

partitionScalarsAndArrays

public static void partitionScalarsAndArrays(java.util.Set<Expression> scalar_set,
                                             java.util.Set<ArrayAccess> array_set,
                                             java.util.Set<Expression> initial_set)