| Package | Description |
|---|---|
| soot.jimple.toolkits.annotation.logic | |
| soot.jimple.toolkits.annotation.nullcheck |
Classes that carry out an analysis to determine whether or not null pointer
checks are necessary.
|
| soot.jimple.toolkits.annotation.parity | |
| soot.jimple.toolkits.callgraph | |
| soot.jimple.toolkits.infoflow | |
| soot.jimple.toolkits.pointer | |
| 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.pdg | |
| soot.toolkits.scalar |
A number of scalar optimizations, and the flow analysis framework.
|
| soot.util |
Generally useful utility classes for Soot.
|
| Modifier and Type | Field and Description |
|---|---|
protected UnitGraph |
Loop.g |
| Modifier and Type | Method and Description |
|---|---|
NullnessAnalysis |
NullCheckEliminator.AnalysisFactory.newAnalysis(UnitGraph g) |
| Constructor and Description |
|---|
BranchedRefVarsAnalysis(UnitGraph g)
Deprecated.
THIS IS KNOWN TO BE BUGGY. USE
NullnessAnalysis INSTEAD! |
NullnessAnalysis(UnitGraph graph)
Creates a new analysis for the given graph/
|
NullnessAssumptionAnalysis(UnitGraph graph)
Creates a new analysis for the given graph/
|
| Constructor and Description |
|---|
ParityAnalysis(UnitGraph g) |
ParityAnalysis(UnitGraph g,
LiveLocals filter) |
| Constructor and Description |
|---|
ClinitElimAnalysis(UnitGraph g) |
| Constructor and Description |
|---|
SimpleMethodInfoFlowAnalysis(UnitGraph g,
InfoFlowAnalysis dfa,
boolean ignoreNonRefTypeFlow) |
SimpleMethodInfoFlowAnalysis(UnitGraph g,
InfoFlowAnalysis dfa,
boolean ignoreNonRefTypeFlow,
boolean dummyDontRunAnalysisYet)
A constructor that doesn't run the analysis
|
SimpleMethodLocalObjectsAnalysis(UnitGraph g,
CallLocalityContext context,
InfoFlowAnalysis dfa) |
SimpleMethodLocalObjectsAnalysis(UnitGraph g,
ClassLocalObjectsAnalysis cloa,
InfoFlowAnalysis dfa) |
SmartMethodInfoFlowAnalysis(UnitGraph g,
InfoFlowAnalysis dfa) |
SmartMethodLocalObjectsAnalysis(UnitGraph g,
InfoFlowAnalysis dfa) |
| Constructor and Description |
|---|
LocalMustAliasAnalysis(UnitGraph g)
Creates a new
LocalMustAliasAnalysis tracking local variables. |
LocalMustAliasAnalysis(UnitGraph g,
boolean tryTrackFieldAssignments)
Creates a new
LocalMustAliasAnalysis. |
LocalMustNotAliasAnalysis(UnitGraph g) |
StrongLocalMustAliasAnalysis(UnitGraph g) |
| Constructor and Description |
|---|
CommonPrecedingEqualValueAnalysis(UnitGraph g) |
EqualLocalsAnalysis(UnitGraph g) |
EqualUsesAnalysis(UnitGraph g)
Deprecated.
|
| Constructor and Description |
|---|
EarliestnessComputation(UnitGraph unitGraph,
UpSafetyAnalysis upSafe,
DownSafetyAnalysis downSafe,
SideEffectTester sideEffect)
given an UpSafetyAnalysis and a DownSafetyAnalysis, performs the
earliest-computation.
|
EarliestnessComputation(UnitGraph unitGraph,
UpSafetyAnalysis upSafe,
DownSafetyAnalysis downSafe,
SideEffectTester sideEffect,
FlowSet set)
given an UpSafetyAnalysis and a DownSafetyAnalysis, performs the
earliest-computation.
allows to share sets over multiple analyses (set-operations are usually more efficient, if the sets come from the same source). |
LatestComputation(UnitGraph unitGraph,
DelayabilityAnalysis delayed,
java.util.Map equivRhsMap)
given a DelayabilityAnalysis and the computations of each unit, calculates
the latest computation-point for each expression.
|
LatestComputation(UnitGraph unitGraph,
DelayabilityAnalysis delayed,
java.util.Map equivRhsMap,
BoundedFlowSet set)
given a DelayabilityAnalysis and the computations of each unit, calculates
the latest computation-point for each expression.
the equivRhsMap could be calculated on the fly, but it is
very likely that it already exists (as similar maps are used for
calculating Earliestness, Delayed,...the shared set allows more efficient set-operations, when they the computation is merged with other analyses/computations. |
| Modifier and Type | Class and Description |
|---|---|
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 |
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 |
CompleteUnitGraph
|
class |
ExceptionalUnitGraph
|
class |
TrapUnitGraph
|
| Modifier and Type | Method and Description |
|---|---|
protected java.util.Map<Unit,Block> |
ExceptionalBlockGraph.buildBlocks(java.util.Set<Unit> leaders,
UnitGraph uncastUnitGraph)
A utility method that does most of the work of constructing
basic blocks, once the set of block leaders has been
determined, and which designates the heads and tails of the graph.
|
protected java.util.Map<Unit,Block> |
BlockGraph.buildBlocks(java.util.Set<Unit> leaders,
UnitGraph unitGraph)
A utility method that does most of the work of constructing
basic blocks, once the set of block leaders has been
determined, and which designates the heads and tails of the graph.
|
protected java.util.Set<Unit> |
ZonedBlockGraph.computeLeaders(UnitGraph unitGraph)
|
protected java.util.Set<Unit> |
BlockGraph.computeLeaders(UnitGraph unitGraph)
|
protected java.util.Set<Unit> |
ArrayRefBlockGraph.computeLeaders(UnitGraph unitGraph)
|
| Constructor and Description |
|---|
BlockGraph(UnitGraph unitGraph)
Create a
BlockGraph representing at the basic block
level the control flow specified, at the Unit level,
by a given UnitGraph. |
DominatorAnalysis(UnitGraph g)
Deprecated.
|
PostDominatorAnalysis(UnitGraph g)
Deprecated.
|
| Modifier and Type | Class and Description |
|---|---|
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.
|
| Modifier and Type | Field and Description |
|---|---|
protected UnitGraph |
RegionAnalysis.m_cfg |
protected UnitGraph |
HashMutablePDG.m_cfg |
protected UnitGraph |
RegionAnalysis.m_reverseCFG |
| Modifier and Type | Method and Description |
|---|---|
UnitGraph |
HashMutablePDG.getCFG() |
UnitGraph |
Region.getUnitGraph() |
UnitGraph |
PDGRegion.getUnitGraph() |
UnitGraph |
IRegion.getUnitGraph() |
| Constructor and Description |
|---|
HashMutablePDG(UnitGraph cfg) |
PDGRegion(int id,
java.util.List<PDGNode> nodes,
SootMethod m,
SootClass c,
UnitGraph ug,
PDGNode node) |
PDGRegion(int id,
SootMethod m,
SootClass c,
UnitGraph ug,
PDGNode node) |
Region(int id,
java.util.List<Block> blocks,
SootMethod m,
SootClass c,
UnitGraph ug) |
Region(int id,
SootMethod m,
SootClass c,
UnitGraph ug) |
RegionAnalysis(UnitGraph cfg,
SootMethod m,
SootClass c) |
| Modifier and Type | Method and Description |
|---|---|
static CombinedAnalysis |
CombinedDUAnalysis.v(UnitGraph graph) |
| Constructor and Description |
|---|
ForwardBranchedFlowAnalysis(UnitGraph graph) |
GuaranteedDefs(UnitGraph graph) |
InitAnalysis(UnitGraph g) |
RoboVmLiveSlotLocals(UnitGraph graph) |
SimpleLiveLocals(UnitGraph graph)
Computes the analysis given a UnitGraph computed from a
method body.
|
SimpleLocalDefs(UnitGraph g)
Computes the analysis given a UnitGraph computed from a method body.
|
SimpleLocalUses(UnitGraph graph,
LocalDefs localDefs)
Construct the analysis from a UnitGraph representation
of a method body and a LocalDefs interface.
|
SmartLocalDefs(UnitGraph g,
LiveLocals live) |
| Constructor and Description |
|---|
UnitMap(UnitGraph g)
maps each unit of the graph to the result of
mapTo.before the mapping the method init is called.the internal hashtable is initialized without any parameter. |
UnitMap(UnitGraph g,
int initialCapacity)
maps each unit of the graph to the result of
mapTo.before the mapping the method init is called.the internal hashtable is initialized to initialCapacity. |
UnitMap(UnitGraph g,
int initialCapacity,
float loadFactor)
maps each unit of the graph to the result of
mapTo.before the mapping the method init is called.the internal hashtable is initialized to initialCapacity and
loadFactor. |
Copyright © 2012-2019 RoboVM AB. All Rights Reserved.