| Package | Description |
|---|---|
| soot.jimple.toolkits.annotation.purity | |
| soot.jimple.toolkits.infoflow | |
| soot.jimple.toolkits.scalar |
A toolkit for scalar optimization of Jimple.
|
| soot.jimple.toolkits.scalar.pre |
Particial redundency elimination.
|
| soot.toolkits.graph |
Toolkit to produce and manipulate various types of control flow
graphs.
|
| soot.toolkits.graph.interaction | |
| soot.toolkits.graph.pdg | |
| soot.toolkits.scalar |
A number of scalar optimizations, and the flow analysis framework.
|
| Modifier and Type | Class and Description |
|---|---|
class |
DirectedCallGraph
Builds a DirectedGraph from a CallGraph and SootMethodFilter.
|
| Modifier and Type | Field and Description |
|---|---|
protected DirectedGraph |
AbstractInterproceduralAnalysis.dg |
| Modifier and Type | Method and Description |
|---|---|
static void |
InfoFlowAnalysis.printGraphToDotFile(java.lang.String filename,
DirectedGraph graph,
java.lang.String graphname,
boolean onePage) |
static void |
InfoFlowAnalysis.printInfoFlowSummary(DirectedGraph g) |
| Constructor and Description |
|---|
FastAvailableExpressionsAnalysis(DirectedGraph dg,
SootMethod m,
SideEffectTester st) |
PessimisticAvailableExpressionsAnalysis(DirectedGraph dg,
SootMethod m,
SideEffectTester st) |
SlowAvailableExpressionsAnalysis(DirectedGraph dg) |
| Constructor and Description |
|---|
DelayabilityAnalysis(DirectedGraph dg)
this constructor should not be used, and will throw a runtime-exception!
|
DelayabilityAnalysis(DirectedGraph dg,
EarliestnessComputation earliest,
java.util.Map equivRhsMap)
automaticly performs the Delayability-analysis on the graph
dg and the Earliest-computation earliest.the equivRhsMap is only here to avoid doing these things
again... |
DelayabilityAnalysis(DirectedGraph dg,
EarliestnessComputation earliest,
java.util.Map equivRhsMap,
BoundedFlowSet set)
automaticly performs the Delayability-analysis on the graph
dg and the Earliest-computation earliest.the equivRhsMap is only here to avoid doing these things
again...as set-operations are usually more efficient, if the sets come from one source, sets should be shared around analyses, if the analyses are to be combined. |
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. |
NotIsolatedAnalysis(DirectedGraph dg)
this constructor should not be used, and will throw a runtime-exception!
|
NotIsolatedAnalysis(DirectedGraph dg,
LatestComputation latest,
java.util.Map equivRhsMap)
automaticly performs the Isolation-analysis on the graph
dg using the Latest-computation latest.the equivRhsMap is only here to avoid doing these things
again... |
NotIsolatedAnalysis(DirectedGraph dg,
LatestComputation latest,
java.util.Map equivRhsMap,
BoundedFlowSet set)
automaticly performs the Isolation-analysis on the graph
dg using the Latest-computation latest.the equivRhsMap is only here to avoid doing these things
again...the shared set allows more efficient set-operations, when this analysis is joined with other analyses/computations. |
UpSafetyAnalysis(DirectedGraph dg)
this constructor should not be used, and will throw a runtime-exception!
|
UpSafetyAnalysis(DirectedGraph dg,
java.util.Map unitToGen,
SideEffectTester sideEffect)
this constructor automaticly performs the UpSafety-analysis.
the result of the analysis is as usual in FlowBefore (getFlowBefore()) and FlowAfter (getFlowAfter()). |
UpSafetyAnalysis(DirectedGraph dg,
java.util.Map unitToGen,
SideEffectTester sideEffect,
BoundedFlowSet set)
this constructor automaticly performs the UpSafety-analysis.
the result of the analysis is as usual in FlowBefore (getFlowBefore()) and FlowAfter (getFlowAfter()). As usually flowset-operations are more efficient if shared, this allows to share sets over several analyses. |
| Modifier and Type | Interface and Description |
|---|---|
interface |
ExceptionalGraph<N>
Defines the interface for navigating a control flow graph which
distinguishes exceptional control flow.
|
interface |
MutableDirectedGraph<N>
Defines a DirectedGraph which is modifiable.
|
interface |
MutableEdgeLabelledDirectedGraph
Defines a DirectedGraph which is modifiable and associates
a label object with every edge.
|
interface |
ReversibleGraph
DirectedGraph which can be reversed and re-reversed.
|
| Modifier and Type | Class and Description |
|---|---|
class |
ArrayRefBlockGraph
|
class |
BlockGraph
Represents the control flow graph of a
Body at the basic
block level. |
class |
BriefBlockGraph
|
class |
BriefUnitGraph
Represents a CFG where the nodes are Unit instances, and
where no edges are included to account for control flow
associated with exceptions.
|
class |
ClassicCompleteBlockGraph
Represents a CFG where the nodes are
Blocks and the
edges are derived from control flow. |
class |
ClassicCompleteUnitGraph
Represents a CFG for a Body instance where the nodes are
Unit instances, and where edges are a conservative
indication of unexceptional and exceptional control
flow. |
class |
CompleteBlockGraph
|
class |
CompleteUnitGraph
|
class |
DominatorTreeAdapter
This adapter provides a DirectedGraph interface to DominatorTree.
|
class |
ExceptionalBlockGraph
Represents a CFG where the nodes are
Blocks and the
edges are derived from control flow. |
class |
ExceptionalUnitGraph
|
class |
HashMutableDirectedGraph
HashMap based implementation of a MutableBlockGraph.
|
class |
HashMutableEdgeLabelledDirectedGraph |
class |
HashReversibleGraph
A reversible version of HashMutableDirectedGraph
|
class |
InverseGraph<N>
An inverted graph of a directed graph.
|
class |
MemoryEfficientGraph
A memory efficient version of HashMutableDirectedGraph, in the sense
that throw-away objects passed as arguments will not be kept in the
process of adding edges.
|
class |
TrapUnitGraph
|
class |
UnitGraph
Represents a CFG where the nodes are
Unit instances and
edges represent unexceptional and (possibly) exceptional control
flow between Units. |
class |
ZonedBlockGraph
A CFG where the nodes are
Block instances, and where
exception boundaries are taken into account when finding the
Blocks for the provided Body. |
| Modifier and Type | Field and Description |
|---|---|
protected DirectedGraph<N> |
StronglyConnectedComponentsFast.g |
protected DirectedGraph<N> |
InverseGraph.g |
protected DirectedGraph |
SimpleDominatorsFinder.graph |
protected DirectedGraph<N> |
MHGDominatorsFinder.graph |
protected DirectedGraph |
DominatorTree.graph |
| Modifier and Type | Method and Description |
|---|---|
DirectedGraph |
SimpleDominatorsFinder.getGraph() |
DirectedGraph<N> |
MHGDominatorsFinder.getGraph() |
DirectedGraph |
DominatorTree.getGraph()
Returns the original graph to which the Dominator tree
pertains.
|
DirectedGraph<N> |
DominatorsFinder.getGraph()
Returns the graph to which the analysis pertains.
|
DirectedGraph |
StronglyConnectedComponents.getSuperGraph()
Deprecated.
|
| Modifier and Type | Method and Description |
|---|---|
protected java.util.List<N> |
PseudoTopologicalOrderer.computeOrder(DirectedGraph<N> g)
Orders in pseudo-topological order.
|
java.util.List |
SlowPseudoTopologicalOrderer.newList(DirectedGraph g)
Deprecated.
use
#newList(DirectedGraph, boolean)) instead |
java.util.List<N> |
PseudoTopologicalOrderer.newList(DirectedGraph g)
Deprecated.
use
#newList(DirectedGraph, boolean)) instead |
java.util.List<N> |
PseudoTopologicalOrderer.newList(DirectedGraph<N> g,
boolean reverse)
Builds an order for a directed graph.
|
java.util.List<N> |
Orderer.newList(DirectedGraph<N> g,
boolean reverse)
Builds an order for a directed graph.
|
java.util.List |
SlowPseudoTopologicalOrderer.newList(DirectedGraph g,
boolean reverse)
Builds an order for a directed graph.
|
| Constructor and Description |
|---|
HashReversibleGraph(DirectedGraph dg) |
InverseGraph(DirectedGraph<N> g) |
MHGDominatorsFinder(DirectedGraph<N> graph) |
MHGPostDominatorsFinder(DirectedGraph graph) |
SimpleDominatorsFinder(DirectedGraph graph)
Compute dominators for provided singled-headed directed graph.
|
StronglyConnectedComponents(DirectedGraph g)
Deprecated.
|
StronglyConnectedComponentsFast(DirectedGraph<N> g) |
| Modifier and Type | Method and Description |
|---|---|
void |
InteractionHandler.handleCfgEvent(DirectedGraph g) |
| Modifier and Type | Interface and Description |
|---|---|
interface |
ProgramDependenceGraph
This defines the interface to a Program Dependence Graph as defined in
Ferrante, J., Ottenstein, K.
|
| Modifier and Type | Class and Description |
|---|---|
class |
EnhancedBlockGraph |
class |
EnhancedUnitGraph
This class represents a control flow graph which behaves like an ExceptionalUnitGraph and
BriefUnitGraph when there are no exception handling construct in the method; at the presence
of such constructs, the CFG is constructed from a brief graph by addition a concise representation
of the exceptional flow as well as START/STOP auxiliary nodes.
|
class |
HashMutablePDG
This class implements a Program Dependence Graph as defined in
Ferrante, J., Ottenstein, K.
|
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
RegionAnalysis.CFGtoString(DirectedGraph cfg,
boolean blockDetail) |
| Modifier and Type | Field and Description |
|---|---|
protected DirectedGraph<N> |
AbstractFlowAnalysis.graph
The graph being analysed.
|
| Constructor and Description |
|---|
AbstractFlowAnalysis(DirectedGraph<N> graph)
Constructs a flow analysis on the given
DirectedGraph. |
BackwardFlowAnalysis(DirectedGraph<N> graph)
Construct the analysis from a DirectedGraph representation of a Body.
|
BranchedFlowAnalysis(DirectedGraph<N> graph) |
FlowAnalysis(DirectedGraph<N> graph)
Constructs a flow analysis on the given
DirectedGraph. |
ForwardFlowAnalysis(DirectedGraph<N> graph)
Construct the analysis from a DirectedGraph representation of a Body.
|
Copyright © 2012-2019 RoboVM AB. All Rights Reserved.