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 java.util.Map unitToAfterFallFlow
- Maps graph nodes to OUT sets.
unitToAfterBranchFlow
protected java.util.Map unitToAfterBranchFlow
BranchedFlowAnalysis
public BranchedFlowAnalysis(UnitGraph graph)
flowThrough
protected abstract void flowThrough(java.lang.Object in,
Unit s,
java.util.List fallOut,
java.util.List branchOuts)
- Given the merge of the
in
sets,
compute the fallOut
and branchOuts
set for s
.
getFallFlowAfter
public java.lang.Object getFallFlowAfter(Unit s)
getBranchFlowAfter
public java.util.List getBranchFlowAfter(Unit s)
getFlowBefore
public java.lang.Object getFlowBefore(Unit s)