soot.toolkits.scalar
Class FlowAnalysis

java.lang.Object
  |
  +--soot.toolkits.scalar.AbstractFlowAnalysis
        |
        +--soot.toolkits.scalar.FlowAnalysis
Direct Known Subclasses:
BackwardFlowAnalysis, ForwardFlowAnalysis

public abstract class FlowAnalysis
extends AbstractFlowAnalysis

An abstract class providing a framework for carrying out dataflow analysis. Subclassing either BackwardFlowAnalysis or ForwardFlowAnalysis and providing implementations for the abstract methods will allow Soot to compute the corresponding flow analysis.


Field Summary
protected  java.util.Map unitToAfterFlow
          Maps graph nodes to OUT sets.
 
Fields inherited from class soot.toolkits.scalar.AbstractFlowAnalysis
graph, unitToBeforeFlow
 
Constructor Summary
FlowAnalysis(DirectedGraph graph)
          Constructs a flow analysis on the given DirectedGraph.
 
Method Summary
protected abstract  void flowThrough(java.lang.Object in, java.lang.Object d, java.lang.Object out)
          Given the merge of the out sets, compute the in set for s (or in to out, depending on direction).
 java.lang.Object getFlowAfter(java.lang.Object s)
          Accessor function returning value of OUT set for s.
 
Methods inherited from class soot.toolkits.scalar.AbstractFlowAnalysis
copy, customizeInitialFlowGraph, doAnalysis, entryInitialFlow, getFlowBefore, isForward, merge, newInitialFlow, treatTrapHandlersAsEntries
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

unitToAfterFlow

protected java.util.Map unitToAfterFlow
Maps graph nodes to OUT sets.
Constructor Detail

FlowAnalysis

public FlowAnalysis(DirectedGraph graph)
Constructs a flow analysis on the given DirectedGraph.
Method Detail

flowThrough

protected abstract void flowThrough(java.lang.Object in,
                                    java.lang.Object d,
                                    java.lang.Object out)
Given the merge of the out sets, compute the in set for s (or in to out, depending on direction).

getFlowAfter

public java.lang.Object getFlowAfter(java.lang.Object s)
Accessor function returning value of OUT set for s.