|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--soot.toolkits.scalar.AbstractFlowAnalysis
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 DirectedGraph |
graph
The graph being analysed. |
protected java.util.Map |
unitToBeforeFlow
Maps graph nodes to IN sets. |
Constructor Summary | |
AbstractFlowAnalysis(DirectedGraph graph)
Constructs a flow analysis on the given DirectedGraph . |
Method Summary | |
protected abstract void |
copy(java.lang.Object source,
java.lang.Object dest)
Creates a copy of the source flow object in dest . |
protected void |
customizeInitialFlowGraph()
We hereby retract the API for customizeInitialFlowGraph(). |
protected abstract void |
doAnalysis()
Carries out the actual flow analysis. |
protected abstract java.lang.Object |
entryInitialFlow()
Returns the initial flow value for entry/exit graph nodes. |
java.lang.Object |
getFlowBefore(java.lang.Object 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(java.lang.Object in1,
java.lang.Object in2,
java.lang.Object out)
Compute the merge of the in1 and in2 sets, putting the result into out . |
protected abstract java.lang.Object |
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 java.util.Map unitToBeforeFlow
protected DirectedGraph graph
Constructor Detail |
public AbstractFlowAnalysis(DirectedGraph graph)
DirectedGraph
.Method Detail |
protected abstract java.lang.Object newInitialFlow()
protected abstract java.lang.Object entryInitialFlow()
protected final void customizeInitialFlowGraph()
protected boolean treatTrapHandlersAsEntries()
entryInitialFlow()
is applied to trap handlers.protected abstract boolean isForward()
protected abstract void merge(java.lang.Object in1, java.lang.Object in2, java.lang.Object 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 abstract void copy(java.lang.Object source, java.lang.Object dest)
source
flow object in dest
.protected abstract void doAnalysis()
public java.lang.Object getFlowBefore(java.lang.Object s)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |