Package soot.toolkits.scalar
Class BranchedFlowAnalysis<N extends Unit,A>
- java.lang.Object
-
- soot.toolkits.scalar.AbstractFlowAnalysis<N,A>
-
- soot.toolkits.scalar.BranchedFlowAnalysis<N,A>
-
- Direct Known Subclasses:
ForwardBranchedFlowAnalysis
public abstract class BranchedFlowAnalysis<N extends Unit,A> extends AbstractFlowAnalysis<N,A>
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 likeif(x > 0): one successor hasx > 0while the other successor hasx ≤ 0.
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<Unit,List<A>>unitToAfterBranchFlowprotected Map<Unit,List<A>>unitToAfterFallFlowMaps graph nodes to OUT sets.-
Fields inherited from class soot.toolkits.scalar.AbstractFlowAnalysis
filterUnitToBeforeFlow, graph, unitToBeforeFlow
-
-
Constructor Summary
Constructors Constructor Description BranchedFlowAnalysis(DirectedGraph<N> graph)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract voidflowThrough(A in, Unit s, List<A> fallOut, List<A> branchOuts)Given the merge of theinsets, compute thefallOutandbranchOutsset fors.List<A>getBranchFlowAfter(Unit s)AgetFallFlowAfter(Unit s)-
Methods inherited from class soot.toolkits.scalar.AbstractFlowAnalysis
copy, doAnalysis, entryInitialFlow, getFlowBefore, isForward, merge, merge, mergeInto, newInitialFlow, treatTrapHandlersAsEntries
-
-