Modifier and Type | Class and Description |
---|---|
class |
SimpleExceptionalGraph |
Modifier and Type | Field and Description |
---|---|
protected UnitGraph |
Loop.g |
protected UnitGraph |
Loop.g |
Modifier and Type | Method and Description |
---|---|
NullnessAnalysis |
NullCheckEliminator.AnalysisFactory.newAnalysis(UnitGraph g) |
NullnessAnalysis |
NullCheckEliminator.AnalysisFactory.newAnalysis(UnitGraph g) |
Constructor and Description |
---|
BranchedRefVarsAnalysis(UnitGraph g)
Deprecated.
THIS IS KNOWN TO BE BUGGY. USE
NullnessAnalysis INSTEAD! |
BranchedRefVarsAnalysis(UnitGraph g)
Deprecated.
THIS IS KNOWN TO BE BUGGY. USE
NullnessAnalysis INSTEAD! |
NullnessAnalysis(UnitGraph graph)
Creates a new analysis for the given graph/
|
NullnessAnalysis(UnitGraph graph)
Creates a new analysis for the given graph/
|
NullnessAssumptionAnalysis(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) |
ParityAnalysis(UnitGraph g,
LiveLocals filter) |
ParityAnalysis(UnitGraph g,
LiveLocals filter) |
Constructor and Description |
---|
ClinitElimAnalysis(UnitGraph g) |
ClinitElimAnalysis(UnitGraph g) |
Constructor and Description |
---|
LocalMayAliasAnalysis(UnitGraph graph) |
LocalMayAliasAnalysis(UnitGraph graph) |
LocalMustAliasAnalysis(UnitGraph g)
Creates a new
LocalMustAliasAnalysis tracking local variables. |
LocalMustAliasAnalysis(UnitGraph g)
Creates a new
LocalMustAliasAnalysis tracking local variables. |
LocalMustAliasAnalysis(UnitGraph g,
boolean tryTrackFieldAssignments)
Creates a new
LocalMustAliasAnalysis . |
LocalMustAliasAnalysis(UnitGraph g,
boolean tryTrackFieldAssignments)
Creates a new
LocalMustAliasAnalysis . |
LocalMustNotAliasAnalysis(UnitGraph g) |
LocalMustNotAliasAnalysis(UnitGraph g) |
StrongLocalMustAliasAnalysis(UnitGraph g) |
StrongLocalMustAliasAnalysis(UnitGraph g) |
Constructor and Description |
---|
CommonPrecedingEqualValueAnalysis(UnitGraph g) |
CommonPrecedingEqualValueAnalysis(UnitGraph g) |
EqualLocalsAnalysis(UnitGraph g) |
EqualLocalsAnalysis(UnitGraph g) |
EqualUsesAnalysis(UnitGraph g)
Deprecated.
|
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)
given an UpSafetyAnalysis and a DownSafetyAnalysis, performs the
earliest-computation.
|
EarliestnessComputation(UnitGraph unitGraph,
UpSafetyAnalysis upSafe,
DownSafetyAnalysis downSafe,
SideEffectTester sideEffect,
FlowSet<EquivalentValue> 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). |
EarliestnessComputation(UnitGraph unitGraph,
UpSafetyAnalysis upSafe,
DownSafetyAnalysis downSafe,
SideEffectTester sideEffect,
FlowSet<EquivalentValue> 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,
Map<Unit,EquivalentValue> equivRhsMap)
given a DelayabilityAnalysis and the computations of each unit,
calculates the latest computation-point for each expression.
|
LatestComputation(UnitGraph unitGraph,
DelayabilityAnalysis delayed,
Map<Unit,EquivalentValue> equivRhsMap)
given a DelayabilityAnalysis and the computations of each unit,
calculates the latest computation-point for each expression.
|
LatestComputation(UnitGraph unitGraph,
DelayabilityAnalysis delayed,
Map<Unit,EquivalentValue> equivRhsMap,
BoundedFlowSet<EquivalentValue> 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. |
LatestComputation(UnitGraph unitGraph,
DelayabilityAnalysis delayed,
Map<Unit,EquivalentValue> equivRhsMap,
BoundedFlowSet<EquivalentValue> 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. |
Constructor and Description |
---|
EncapsulatedMethodAnalysis(UnitGraph g) |
EncapsulatedMethodAnalysis(UnitGraph g) |
Constructor and Description |
---|
StartJoinAnalysis(UnitGraph g,
SootMethod sm,
CallGraph callGraph,
PAG pag) |
StartJoinAnalysis(UnitGraph g,
SootMethod sm,
CallGraph callGraph,
PAG pag) |
Constructor and Description |
---|
MultiRunStatementsFinder(UnitGraph g,
SootMethod sm,
Set<SootMethod> multiCalledMethods,
CallGraph cg) |
MultiRunStatementsFinder(UnitGraph g,
SootMethod sm,
Set<SootMethod> multiCalledMethods,
CallGraph cg) |
Modifier and Type | Field and Description |
---|---|
protected UnitGraph |
JPegStmt.unitGraph |
protected UnitGraph |
JPegStmt.unitGraph |
Modifier and Type | Method and Description |
---|---|
UnitGraph |
JPegStmt.getUnitGraph() |
UnitGraph |
JPegStmt.getUnitGraph() |
Modifier and Type | Method and Description |
---|---|
protected void |
JPegStmt.setUnitGraph(UnitGraph ug) |
protected void |
JPegStmt.setUnitGraph(UnitGraph ug) |
Constructor and Description |
---|
LockableReferenceAnalysis(UnitGraph g) |
LockableReferenceAnalysis(UnitGraph g) |
Modifier and Type | Field and Description |
---|---|
protected UnitGraph |
DefaultShimpleFactory.ug |
protected UnitGraph |
DefaultShimpleFactory.ug |
Modifier and Type | Method and Description |
---|---|
UnitGraph |
DefaultShimpleFactory.getUnitGraph() |
UnitGraph |
ShimpleFactory.getUnitGraph() |
UnitGraph |
DefaultShimpleFactory.getUnitGraph() |
UnitGraph |
ShimpleFactory.getUnitGraph() |
Modifier and Type | Method and Description |
---|---|
Set<Unit> |
TrapTransformer.getUnitsWithMonitor(UnitGraph ug) |
Set<Unit> |
TrapTransformer.getUnitsWithMonitor(UnitGraph ug) |
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 Map<Unit,Block> |
BlockGraph.buildBlocks(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 Map<Unit,Block> |
ExceptionalBlockGraph.buildBlocks(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 Map<Unit,Block> |
BlockGraph.buildBlocks(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 Map<Unit,Block> |
ExceptionalBlockGraph.buildBlocks(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 Set<Unit> |
ArrayRefBlockGraph.computeLeaders(UnitGraph unitGraph)
|
protected Set<Unit> |
BlockGraph.computeLeaders(UnitGraph unitGraph)
|
protected Set<Unit> |
ZonedBlockGraph.computeLeaders(UnitGraph unitGraph)
|
protected Set<Unit> |
BlockGraph.computeLeaders(UnitGraph unitGraph)
|
protected Set<Unit> |
ArrayRefBlockGraph.computeLeaders(UnitGraph unitGraph)
|
protected Set<Unit> |
ZonedBlockGraph.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 . |
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.
|
DominatorAnalysis(UnitGraph g)
Deprecated.
|
PostDominatorAnalysis(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 adding a concise representation of the
exceptional flow as well as START/STOP auxiliary nodes.
|
Modifier and Type | Field and Description |
---|---|
protected UnitGraph |
HashMutablePDG.m_cfg |
protected UnitGraph |
RegionAnalysis.m_cfg |
protected UnitGraph |
HashMutablePDG.m_cfg |
protected UnitGraph |
RegionAnalysis.m_cfg |
protected UnitGraph |
RegionAnalysis.m_reverseCFG |
protected UnitGraph |
RegionAnalysis.m_reverseCFG |
Modifier and Type | Method and Description |
---|---|
UnitGraph |
HashMutablePDG.getCFG() |
UnitGraph |
HashMutablePDG.getCFG() |
UnitGraph |
IRegion.getUnitGraph() |
UnitGraph |
PDGRegion.getUnitGraph() |
UnitGraph |
Region.getUnitGraph() |
UnitGraph |
Region.getUnitGraph() |
UnitGraph |
PDGRegion.getUnitGraph() |
UnitGraph |
IRegion.getUnitGraph() |
Constructor and Description |
---|
HashMutablePDG(UnitGraph cfg) |
HashMutablePDG(UnitGraph cfg) |
PDGRegion(int id,
List<PDGNode> nodes,
SootMethod m,
SootClass c,
UnitGraph ug,
PDGNode node) |
PDGRegion(int id,
List<PDGNode> nodes,
SootMethod m,
SootClass c,
UnitGraph ug,
PDGNode node) |
PDGRegion(int id,
SootMethod m,
SootClass c,
UnitGraph ug,
PDGNode node) |
PDGRegion(int id,
SootMethod m,
SootClass c,
UnitGraph ug,
PDGNode node) |
Region(int id,
List<Block> blocks,
SootMethod m,
SootClass c,
UnitGraph ug) |
Region(int id,
List<Block> blocks,
SootMethod m,
SootClass c,
UnitGraph ug) |
Region(int id,
SootMethod m,
SootClass c,
UnitGraph ug) |
Region(int id,
SootMethod m,
SootClass c,
UnitGraph ug) |
RegionAnalysis(UnitGraph cfg,
SootMethod m,
SootClass c) |
RegionAnalysis(UnitGraph cfg,
SootMethod m,
SootClass c) |
Modifier and Type | Method and Description |
---|---|
UnitGraph |
SmartLocalDefs.getGraph()
Returns the associated unit graph.
|
UnitGraph |
SmartLocalDefs.getGraph()
Returns the associated unit graph.
|
Modifier and Type | Method and Description |
---|---|
static LiveLocals |
LiveLocals.Factory.newLiveLocals(UnitGraph graph) |
static LiveLocals |
LiveLocals.Factory.newLiveLocals(UnitGraph graph) |
static LocalDefs |
LocalDefs.Factory.newLocalDefs(UnitGraph graph)
Creates a new LocalDefs analysis based on a given
UnitGraph |
static LocalDefs |
LocalDefs.Factory.newLocalDefs(UnitGraph graph)
Creates a new LocalDefs analysis based on a given
UnitGraph |
static LocalDefs |
LocalDefs.Factory.newLocalDefs(UnitGraph graph,
boolean expectUndefined)
Creates a new LocalDefs analysis based on a given
UnitGraph . |
static LocalDefs |
LocalDefs.Factory.newLocalDefs(UnitGraph graph,
boolean expectUndefined)
Creates a new LocalDefs analysis based on a given
UnitGraph . |
static LocalDefs |
LocalDefs.Factory.newLocalDefsFlowInsensitive(UnitGraph graph)
Creates a new LocalDefs analysis based on a given
UnitGraph . |
static LocalDefs |
LocalDefs.Factory.newLocalDefsFlowInsensitive(UnitGraph graph)
Creates a new LocalDefs analysis based on a given
UnitGraph . |
static LocalUses |
LocalUses.Factory.newLocalUses(UnitGraph graph) |
static LocalUses |
LocalUses.Factory.newLocalUses(UnitGraph graph) |
static LocalUses |
LocalUses.Factory.newLocalUses(UnitGraph graph,
LocalDefs localDefs) |
static LocalUses |
LocalUses.Factory.newLocalUses(UnitGraph graph,
LocalDefs localDefs) |
Constructor and Description |
---|
CombinedDUAnalysis(UnitGraph graph) |
CombinedDUAnalysis(UnitGraph graph) |
ForwardBranchedFlowAnalysis(UnitGraph graph) |
ForwardBranchedFlowAnalysis(UnitGraph graph) |
GuaranteedDefs(UnitGraph graph) |
GuaranteedDefs(UnitGraph graph) |
InitAnalysis(UnitGraph g) |
InitAnalysis(UnitGraph g) |
SimpleLiveLocals(UnitGraph graph)
Computes the analysis given a UnitGraph computed from a method body.
|
SimpleLiveLocals(UnitGraph graph)
Computes the analysis given a UnitGraph computed from a method body.
|
SimpleLocalDefs(UnitGraph graph) |
SimpleLocalDefs(UnitGraph graph) |
SimpleLocalDefs(UnitGraph graph,
soot.toolkits.scalar.SimpleLocalDefs.FlowAnalysisMode mode) |
SimpleLocalDefs(UnitGraph graph,
soot.toolkits.scalar.SimpleLocalDefs.FlowAnalysisMode mode) |
SimpleLocalUses(UnitGraph graph,
LocalDefs localDefs)
Construct the analysis from a UnitGraph representation
of a method body and a LocalDefs interface.
|
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) |
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)
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)
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 . |
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 . |