|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object soot.toolkits.scalar.AbstractFlowAnalysis<N,A>
N
- node type of the directed graphA
- abstraction typepublic abstract class AbstractFlowAnalysis<N,A>
An abstract class providing a metaframework for carrying out dataflow analysis. This class provides common methods and fields required by the BranchedFlowAnalysis and FlowAnalysis abstract classes.
Field Summary | |
---|---|
protected Map<Stmt,A> |
filterUnitToBeforeFlow
Filtered: Maps graph nodes to IN sets. |
protected DirectedGraph<N> |
graph
The graph being analysed. |
protected Map<N,A> |
unitToBeforeFlow
Maps graph nodes to IN sets. |
Constructor Summary | |
---|---|
AbstractFlowAnalysis(DirectedGraph<N> graph)
Constructs a flow analysis on the given DirectedGraph . |
Method Summary | |
---|---|
protected abstract void |
copy(A source,
A dest)
Creates a copy of the source flow object in dest . |
protected abstract void |
doAnalysis()
Carries out the actual flow analysis. |
protected abstract A |
entryInitialFlow()
Returns the initial flow value for entry/exit graph nodes. |
A |
getFlowBefore(N s)
Accessor function returning value of IN set for s. |
protected abstract boolean |
isForward()
Returns true if this analysis is forwards. |
protected abstract void |
merge(A in1,
A in2,
A out)
Compute the merge of the in1 and in2 sets, putting the result into out . |
protected void |
merge(N succNode,
A in1,
A in2,
A out)
Merges in1 and in2 into out, just before node succNode. |
protected void |
mergeInto(N succNode,
A inout,
A in)
Merges in into inout, just before node succNode. |
protected abstract A |
newInitialFlow()
Returns the flow object corresponding to the initial values for each graph node. |
protected boolean |
treatTrapHandlersAsEntries()
Determines whether entryInitialFlow()
is applied to trap handlers. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected Map<N,A> unitToBeforeFlow
protected Map<Stmt,A> filterUnitToBeforeFlow
protected DirectedGraph<N> graph
Constructor Detail |
---|
public AbstractFlowAnalysis(DirectedGraph<N> graph)
DirectedGraph
.
Method Detail |
---|
protected abstract A newInitialFlow()
protected abstract A entryInitialFlow()
protected boolean treatTrapHandlersAsEntries()
entryInitialFlow()
is applied to trap handlers.
protected abstract boolean isForward()
protected abstract void merge(A in1, A in2, A out)
in1
and in2
sets, putting the result into out
.
The behavior of this function depends on the implementation ( it may be necessary to check whether
in1
and in2
are equal or aliased ).
Used by the doAnalysis method.
protected void merge(N succNode, A in1, A in2, A out)
protected abstract void copy(A source, A dest)
source
flow object in dest
.
protected abstract void doAnalysis()
public A getFlowBefore(N s)
protected void mergeInto(N succNode, A inout, A in)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |