soot.toolkits.scalar
Class BranchedFlowAnalysis
java.lang.Object
soot.toolkits.scalar.AbstractFlowAnalysis
soot.toolkits.scalar.BranchedFlowAnalysis
- Direct Known Subclasses:
- ForwardBranchedFlowAnalysis
- public abstract class BranchedFlowAnalysis
- extends AbstractFlowAnalysis
Abstract class providing functionality for branched flow analysis.
A branched flow analysis is one which can propagate different
information to the successors of a node. This is useful for
propagating information past a statement like if(x >
0)
: one successor has x > 0
while the other
successor has x ≤ 0
.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
unitToAfterFallFlow
protected Map unitToAfterFallFlow
- Maps graph nodes to OUT sets.
unitToAfterBranchFlow
protected Map unitToAfterBranchFlow
BranchedFlowAnalysis
public BranchedFlowAnalysis(UnitGraph graph)
flowThrough
protected abstract void flowThrough(Object in,
Unit s,
List fallOut,
List branchOuts)
- Given the merge of the
in
sets,
compute the fallOut
and branchOuts
set for s
.
getFallFlowAfter
public Object getFallFlowAfter(Unit s)
getBranchFlowAfter
public List getBranchFlowAfter(Unit s)
getFlowBefore
public Object getFlowBefore(Unit s)