|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--soot.toolkits.scalar.FlowAnalysis | +--soot.toolkits.scalar.BackwardFlowAnalysis | +--soot.jimple.toolkits.scalar.pre.DownSafetyAnalysis
Performs an DownSafe-analysis on the given graph. An expression is downsafe, if the computation will occur on every path from the current point down to the END.
Fields inherited from class soot.toolkits.scalar.FlowAnalysis |
graph,
unitToAfterFlow,
unitToBeforeFlow |
Constructor Summary | |
DownSafetyAnalysis(DirectedGraph dg)
this constructor should not be used, and will throw a runtime-exception! |
|
DownSafetyAnalysis(DirectedGraph dg,
java.util.Map unitToGen,
SideEffectTester sideEffect)
this constructor automaticly performs the DownSafety-analysis. the result of the analysis is as usual in FlowBefore (getFlowBefore()) and FlowAfter (getFlowAfter()). |
|
DownSafetyAnalysis(DirectedGraph dg,
java.util.Map unitToGen,
SideEffectTester sideEffect,
BoundedFlowSet set)
this constructor automaticly performs the DownSafety-analysis. the result of the analysis is as usual in FlowBefore (getFlowBefore()) and FlowAfter (getFlowAfter()). as sets-operations are usually more efficient, if the original set comes from the same source, this allows to share sets. |
Method Summary | |
protected void |
copy(java.lang.Object source,
java.lang.Object dest)
Creates a copy of the source flow object in dest . |
protected void |
customizeInitialFlowGraph()
Customize the initial flow graph. |
protected void |
flowThrough(java.lang.Object inValue,
java.lang.Object unit,
java.lang.Object outValue)
Given the merge of the out sets, compute the in set for s . |
protected 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 java.lang.Object |
newInitialFlow()
Returns the flow object corresponding to the initial values for each graph node. |
Methods inherited from class soot.toolkits.scalar.BackwardFlowAnalysis |
doAnalysis,
isForward |
Methods inherited from class soot.toolkits.scalar.FlowAnalysis |
entryInitialFlow,
getFlowAfter,
getFlowBefore |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
Constructor Detail |
public DownSafetyAnalysis(DirectedGraph dg)
public DownSafetyAnalysis(DirectedGraph dg, java.util.Map unitToGen, SideEffectTester sideEffect)
dg
- a CompleteUnitGraph.unitToGen
- the equivalentValue of each unit.sideEffect
- the SideEffectTester that performs kills.public DownSafetyAnalysis(DirectedGraph dg, java.util.Map unitToGen, SideEffectTester sideEffect, BoundedFlowSet set)
dg
- a CompleteUnitGraph.unitToGen
- the equivalentValue of each unit.sideEffect
- the SideEffectTester that performs kills.BoundedFlowSet
- the shared set.Method Detail |
protected java.lang.Object newInitialFlow()
protected void customizeInitialFlowGraph()
protected void flowThrough(java.lang.Object inValue, java.lang.Object unit, java.lang.Object outValue)
out
sets, compute the in
set for s
.protected 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 void copy(java.lang.Object source, java.lang.Object dest)
source
flow object in dest
.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |