| Package | Description |
|---|---|
| soot.jimple.toolkits.annotation.nullcheck |
Classes that carry out an analysis to determine whether or not null pointer
checks are necessary.
|
| soot.jimple.toolkits.infoflow | |
| soot.jimple.toolkits.scalar |
A toolkit for scalar optimization of Jimple.
|
| soot.jimple.toolkits.scalar.pre |
Particial redundency elimination.
|
| soot.jimple.toolkits.thread.synchronization |
| Modifier and Type | Field and Description |
|---|---|
protected List<EquivalentValue> |
BranchedRefVarsAnalysis.refTypeInstFieldBases
Deprecated.
|
protected List<EquivalentValue> |
BranchedRefVarsAnalysis.refTypeInstFields
Deprecated.
|
protected List<EquivalentValue> |
BranchedRefVarsAnalysis.refTypeLocals
Deprecated.
|
protected List<EquivalentValue> |
BranchedRefVarsAnalysis.refTypeStaticFields
Deprecated.
|
protected List<EquivalentValue> |
BranchedRefVarsAnalysis.refTypeValues
Deprecated.
|
| Modifier and Type | Method and Description |
|---|---|
EquivalentValue |
BranchedRefVarsAnalysis.getEquivalentValue(Value v)
Deprecated.
|
EquivalentValue |
RefIntPair.ref()
Deprecated.
|
| Modifier and Type | Method and Description |
|---|---|
RefIntPair |
BranchedRefVarsAnalysis.getKRefIntPair(EquivalentValue r,
int v)
Deprecated.
|
protected int |
BranchedRefVarsAnalysis.refInfo(EquivalentValue r,
FlowSet fs)
Deprecated.
|
| Modifier and Type | Class and Description |
|---|---|
class |
CachedEquivalentValue
An
EquivalentValue with cached hash code and equals-relation. |
| Modifier and Type | Method and Description |
|---|---|
static EquivalentValue |
InfoFlowAnalysis.getNodeForFieldRef(SootMethod sm,
SootField sf)
Returns an unmodifiable list of EquivalentValue wrapped Refs that sink flows from when method sm is called.
|
static EquivalentValue |
InfoFlowAnalysis.getNodeForFieldRef(SootMethod sm,
SootField sf,
Local realLocal) |
static EquivalentValue |
InfoFlowAnalysis.getNodeForParameterRef(SootMethod sm,
int i) |
static EquivalentValue |
InfoFlowAnalysis.getNodeForReturnRef(SootMethod sm) |
static EquivalentValue |
InfoFlowAnalysis.getNodeForThisRef(SootMethod sm) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
CallLocalityContext.containsField(EquivalentValue fieldRef) |
boolean |
CallLocalityContext.isFieldLocal(EquivalentValue fieldRef) |
protected boolean |
ClassLocalObjectsAnalysis.isFieldLocal(EquivalentValue fieldRef) |
boolean |
ClassLocalObjectsAnalysis.parameterIsLocal(SootMethod method,
EquivalentValue parameterRef) |
protected boolean |
ClassLocalObjectsAnalysis.parameterIsLocal(SootMethod method,
EquivalentValue parameterRef,
boolean includePrimitiveDataFlowIfAvailable) |
void |
CallLocalityContext.setFieldLocal(EquivalentValue fieldRef) |
void |
CallLocalityContext.setFieldShared(EquivalentValue fieldRef) |
List<EquivalentValue> |
SmartMethodInfoFlowAnalysis.sinksOf(EquivalentValue node) |
List<EquivalentValue> |
SmartMethodInfoFlowAnalysis.sourcesOf(EquivalentValue node) |
protected boolean |
ClassLocalObjectsAnalysis.thisIsLocal(SootMethod method,
EquivalentValue thisRef) |
| Constructor and Description |
|---|
CallLocalityContext(List<EquivalentValue> nodes) |
| Modifier and Type | Method and Description |
|---|---|
Chain<EquivalentValue> |
SlowAvailableExpressions.getAvailableEquivsAfter(Unit u)
Returns a Chain containing the EquivalentValue objects corresponding to expressions available after u.
|
Chain<EquivalentValue> |
FastAvailableExpressions.getAvailableEquivsAfter(Unit u)
Returns a List containing the UnitValueBox pairs corresponding to expressions available after u.
|
Chain<EquivalentValue> |
SlowAvailableExpressions.getAvailableEquivsBefore(Unit u)
Returns a Chain containing the EquivalentValue objects corresponding to expressions available before u.
|
Chain<EquivalentValue> |
FastAvailableExpressions.getAvailableEquivsBefore(Unit u)
Returns a Chain containing the EquivalentValue objects corresponding to expressions available before u.
|
| Modifier and Type | Method and Description |
|---|---|
static EquivalentValue |
SootFilter.equiVal(Value val)
wraps a value into a EquivalentValue.
|
| Modifier and Type | Method and Description |
|---|---|
protected FlowSet<EquivalentValue> |
NotIsolatedAnalysis.entryInitialFlow() |
protected FlowSet<EquivalentValue> |
DelayabilityAnalysis.entryInitialFlow() |
protected FlowSet<EquivalentValue> |
UpSafetyAnalysis.entryInitialFlow() |
protected FlowSet<EquivalentValue> |
DownSafetyAnalysis.entryInitialFlow() |
FlowSet<EquivalentValue> |
LatestComputation.getFlowBefore(Object node)
returns the set of expressions, that have their latest computation just before
node. |
FlowSet<EquivalentValue> |
EarliestnessComputation.getFlowBefore(Object node)
returns the FlowSet of expressions, that have their earliest computation just before
node. |
protected FlowSet<EquivalentValue> |
NotIsolatedAnalysis.newInitialFlow() |
protected FlowSet<EquivalentValue> |
DelayabilityAnalysis.newInitialFlow() |
protected FlowSet<EquivalentValue> |
UpSafetyAnalysis.newInitialFlow() |
protected FlowSet<EquivalentValue> |
DownSafetyAnalysis.newInitialFlow() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
NotIsolatedAnalysis.copy(FlowSet<EquivalentValue> sourceSet,
FlowSet<EquivalentValue> destSet) |
protected void |
NotIsolatedAnalysis.copy(FlowSet<EquivalentValue> sourceSet,
FlowSet<EquivalentValue> destSet) |
protected void |
DelayabilityAnalysis.copy(FlowSet<EquivalentValue> sourceSet,
FlowSet<EquivalentValue> destSet) |
protected void |
DelayabilityAnalysis.copy(FlowSet<EquivalentValue> sourceSet,
FlowSet<EquivalentValue> destSet) |
protected void |
UpSafetyAnalysis.copy(FlowSet<EquivalentValue> sourceSet,
FlowSet<EquivalentValue> destSet) |
protected void |
UpSafetyAnalysis.copy(FlowSet<EquivalentValue> sourceSet,
FlowSet<EquivalentValue> destSet) |
protected void |
DownSafetyAnalysis.copy(FlowSet<EquivalentValue> source,
FlowSet<EquivalentValue> dest) |
protected void |
DownSafetyAnalysis.copy(FlowSet<EquivalentValue> source,
FlowSet<EquivalentValue> dest) |
protected void |
NotIsolatedAnalysis.flowThrough(FlowSet<EquivalentValue> in,
Unit unit,
FlowSet<EquivalentValue> out) |
protected void |
NotIsolatedAnalysis.flowThrough(FlowSet<EquivalentValue> in,
Unit unit,
FlowSet<EquivalentValue> out) |
protected void |
DelayabilityAnalysis.flowThrough(FlowSet<EquivalentValue> in,
Unit u,
FlowSet<EquivalentValue> out) |
protected void |
DelayabilityAnalysis.flowThrough(FlowSet<EquivalentValue> in,
Unit u,
FlowSet<EquivalentValue> out) |
protected void |
UpSafetyAnalysis.flowThrough(FlowSet<EquivalentValue> in,
Unit u,
FlowSet<EquivalentValue> out) |
protected void |
UpSafetyAnalysis.flowThrough(FlowSet<EquivalentValue> in,
Unit u,
FlowSet<EquivalentValue> out) |
protected void |
DownSafetyAnalysis.flowThrough(FlowSet<EquivalentValue> in,
Unit u,
FlowSet<EquivalentValue> out) |
protected void |
DownSafetyAnalysis.flowThrough(FlowSet<EquivalentValue> in,
Unit u,
FlowSet<EquivalentValue> out) |
protected void |
NotIsolatedAnalysis.merge(FlowSet<EquivalentValue> inSet1,
FlowSet<EquivalentValue> inSet2,
FlowSet<EquivalentValue> outSet) |
protected void |
NotIsolatedAnalysis.merge(FlowSet<EquivalentValue> inSet1,
FlowSet<EquivalentValue> inSet2,
FlowSet<EquivalentValue> outSet) |
protected void |
NotIsolatedAnalysis.merge(FlowSet<EquivalentValue> inSet1,
FlowSet<EquivalentValue> inSet2,
FlowSet<EquivalentValue> outSet) |
protected void |
DelayabilityAnalysis.merge(FlowSet<EquivalentValue> inSet1,
FlowSet<EquivalentValue> inSet2,
FlowSet<EquivalentValue> outSet) |
protected void |
DelayabilityAnalysis.merge(FlowSet<EquivalentValue> inSet1,
FlowSet<EquivalentValue> inSet2,
FlowSet<EquivalentValue> outSet) |
protected void |
DelayabilityAnalysis.merge(FlowSet<EquivalentValue> inSet1,
FlowSet<EquivalentValue> inSet2,
FlowSet<EquivalentValue> outSet) |
protected void |
UpSafetyAnalysis.merge(FlowSet<EquivalentValue> inSet1,
FlowSet<EquivalentValue> inSet2,
FlowSet<EquivalentValue> outSet) |
protected void |
UpSafetyAnalysis.merge(FlowSet<EquivalentValue> inSet1,
FlowSet<EquivalentValue> inSet2,
FlowSet<EquivalentValue> outSet) |
protected void |
UpSafetyAnalysis.merge(FlowSet<EquivalentValue> inSet1,
FlowSet<EquivalentValue> inSet2,
FlowSet<EquivalentValue> outSet) |
protected void |
DownSafetyAnalysis.merge(FlowSet<EquivalentValue> in1,
FlowSet<EquivalentValue> in2,
FlowSet<EquivalentValue> out) |
protected void |
DownSafetyAnalysis.merge(FlowSet<EquivalentValue> in1,
FlowSet<EquivalentValue> in2,
FlowSet<EquivalentValue> out) |
protected void |
DownSafetyAnalysis.merge(FlowSet<EquivalentValue> in1,
FlowSet<EquivalentValue> in2,
FlowSet<EquivalentValue> out) |
| Constructor and Description |
|---|
DelayabilityAnalysis(DirectedGraph<Unit> dg,
EarliestnessComputation earliest,
Map<Unit,EquivalentValue> equivRhsMap)
Automatically 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<Unit> dg,
EarliestnessComputation earliest,
Map<Unit,EquivalentValue> equivRhsMap,
BoundedFlowSet<EquivalentValue> set)
Automatically 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. |
DelayabilityAnalysis(DirectedGraph<Unit> dg,
EarliestnessComputation earliest,
Map<Unit,EquivalentValue> equivRhsMap,
BoundedFlowSet<EquivalentValue> set)
Automatically 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<Unit> dg,
Map<Unit,EquivalentValue> unitToGen,
SideEffectTester sideEffect)
This constructor automatically performs the DownSafety-analysis.
the result of the analysis is as usual in FlowBefore (getFlowBefore()) and FlowAfter (getFlowAfter()). |
DownSafetyAnalysis(DirectedGraph<Unit> dg,
Map<Unit,EquivalentValue> unitToGen,
SideEffectTester sideEffect,
BoundedFlowSet<EquivalentValue> set)
This constructor automatically 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. |
DownSafetyAnalysis(DirectedGraph<Unit> dg,
Map<Unit,EquivalentValue> unitToGen,
SideEffectTester sideEffect,
BoundedFlowSet<EquivalentValue> set)
This constructor automatically 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. |
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,
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. |
NotIsolatedAnalysis(DirectedGraph<Unit> dg,
LatestComputation latest,
Map<Unit,EquivalentValue> equivRhsMap)
Automatically 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<Unit> dg,
LatestComputation latest,
Map<Unit,EquivalentValue> equivRhsMap,
BoundedFlowSet<EquivalentValue> set)
Automatically 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. |
NotIsolatedAnalysis(DirectedGraph<Unit> dg,
LatestComputation latest,
Map<Unit,EquivalentValue> equivRhsMap,
BoundedFlowSet<EquivalentValue> set)
Automatically 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<Unit> dg,
Map<Unit,EquivalentValue> unitToGen,
SideEffectTester sideEffect)
This constructor automatically performs the UpSafety-analysis.
the result of the analysis is as usual in FlowBefore (getFlowBefore()) and FlowAfter (getFlowAfter()). |
UpSafetyAnalysis(DirectedGraph<Unit> dg,
Map<Unit,EquivalentValue> unitToGen,
SideEffectTester sideEffect,
BoundedFlowSet<EquivalentValue> set)
This constructor automatically 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. |
UpSafetyAnalysis(DirectedGraph<Unit> dg,
Map<Unit,EquivalentValue> unitToGen,
SideEffectTester sideEffect,
BoundedFlowSet<EquivalentValue> set)
This constructor automatically 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 | Method and Description |
|---|---|
EquivalentValue |
LockableReferenceAnalysis.baseFor(Ref ref) |
EquivalentValue |
LockableReferenceAnalysis.indexFor(Ref ref) |
| Modifier and Type | Method and Description |
|---|---|
List<EquivalentValue> |
LockableReferenceAnalysis.getLocksetOf(CriticalSectionAwareSideEffectAnalysis tasea,
RWSet contributingRWSet,
soot.jimple.toolkits.thread.synchronization.CriticalSection tn) |
| Modifier and Type | Method and Description |
|---|---|
static Value |
LockAllocationBodyTransformer.getLockFor(EquivalentValue lockEqVal) |
| Modifier and Type | Method and Description |
|---|---|
static String |
LockAllocator.locksetToLockNumString(List<EquivalentValue> lockset,
Map<Value,Integer> lockToLockNum) |
Copyright © 2020 Soot OSS. All rights reserved.