|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectsoot.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 | |||||||||