Package | Description |
---|---|
soot |
Base Soot classes, shared by different intermediate representations.
|
soot.baf |
Public classes for the Baf intermediate representation.
|
soot.baf.internal |
Internal, messy, implementation-specific classes for the Baf intermediate representation.
|
soot.dava | |
soot.dava.internal.AST | |
soot.dava.internal.javaRep | |
soot.dexpler | |
soot.dexpler.instructions | |
soot.grimp |
Public classes for the Grimp intermediate representation.
|
soot.grimp.internal |
Internal, messy, implementation-specific classes for the Grimp intermediate representation.
|
soot.jbco.bafTransformations | |
soot.jbco.jimpleTransformations | |
soot.jbco.util | |
soot.jimple |
Public classes for the Jimple intermediate representation.
|
soot.jimple.internal |
Internal, messy, implementation-specific classes for the Jimple intermediate representation.
|
soot.jimple.spark.fieldrw | |
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.annotation.tags |
Tags and aggregators to store and combine information about array bounds and null pointer checks.
|
soot.jimple.toolkits.base |
A toolkit to optimize the Jimple IR.
|
soot.jimple.toolkits.callgraph | |
soot.jimple.toolkits.ide | |
soot.jimple.toolkits.ide.exampleproblems | |
soot.jimple.toolkits.ide.icfg | |
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.jimple.toolkits.thread.mhp | |
soot.jimple.toolkits.thread.mhp.findobject | |
soot.jimple.toolkits.thread.mhp.stmt | |
soot.jimple.toolkits.thread.synchronization | |
soot.jimple.toolkits.typing |
Implements a typing algorithm for Jimple.
|
soot.shimple |
Public classes for the SSA Shimple intermediate representation.
|
soot.shimple.internal |
Shimple internal messy stuff.
|
soot.shimple.toolkits.scalar |
Some analyses based on Shimple.
|
soot.tagkit |
Classes supporting classfile annotation in Soot.
|
soot.toDex | |
soot.toDex.instructions | |
soot.toolkits.exceptions | |
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.
|
soot.validation |
Modifier and Type | Class and Description |
---|---|
class |
PatchingChain<E extends Unit>
An implementation of a Chain which can contain only Units,
and handles patching to deal with element insertions and removals.
|
class |
PatchingChain<E extends Unit>
An implementation of a Chain which can contain only Units,
and handles patching to deal with element insertions and removals.
|
Modifier and Type | Interface and Description |
---|---|
interface |
IdentityUnit
A unit that assigns to a variable from one of {parameters, this, caughtexception}.
|
Modifier and Type | Class and Description |
---|---|
class |
AbstractUnit
Provides default implementations for the methods in Unit.
|
Modifier and Type | Field and Description |
---|---|
protected E |
PatchingChain.PatchingIterator.lastObject |
protected E |
PatchingChain.PatchingIterator.lastObject |
protected Unit |
AbstractUnitBox.unit |
protected Unit |
AbstractUnitBox.unit |
Modifier and Type | Field and Description |
---|---|
protected Map<Unit,String> |
LabeledUnitPrinter.labels
branch targets
|
protected Map<Unit,String> |
LabeledUnitPrinter.labels
branch targets
|
protected Map<Unit,String> |
LabeledUnitPrinter.references
for unit references in Phi nodes
|
protected Map<Unit,String> |
LabeledUnitPrinter.references
for unit references in Phi nodes
|
protected Map<Unit,Integer> |
AbstractJasminClass.subroutineToReturnAddressSlot |
protected Map<Unit,Integer> |
AbstractJasminClass.subroutineToReturnAddressSlot |
protected PatchingChain<Unit> |
Body.unitChain
The chain of units for this Body.
|
protected PatchingChain<Unit> |
Body.unitChain
The chain of units for this Body.
|
protected Map<Unit,String> |
AbstractJasminClass.unitToLabel |
protected Map<Unit,String> |
AbstractJasminClass.unitToLabel |
Modifier and Type | Method and Description |
---|---|
Unit |
AbstractTrap.getBeginUnit() |
Unit |
Trap.getBeginUnit()
Returns the first trapped unit, unless this
Trap
does not trap any units at all. |
Unit |
Trap.getBeginUnit()
Returns the first trapped unit, unless this
Trap
does not trap any units at all. |
Unit |
AbstractTrap.getBeginUnit() |
Unit |
AbstractTrap.getEndUnit() |
Unit |
Trap.getEndUnit()
Returns the unit following the last trapped unit (that is, the
first succeeding untrapped unit in the underlying
Chain ), unless this Trap does not trap
any units at all. |
Unit |
Trap.getEndUnit()
Returns the unit following the last trapped unit (that is, the
first succeeding untrapped unit in the underlying
Chain ), unless this Trap does not trap
any units at all. |
Unit |
AbstractTrap.getEndUnit() |
Unit |
AbstractTrap.getHandlerUnit() |
Unit |
Trap.getHandlerUnit()
Returns the unit handling the exception being trapped.
|
Unit |
Trap.getHandlerUnit()
Returns the unit handling the exception being trapped.
|
Unit |
AbstractTrap.getHandlerUnit() |
Unit |
AbstractUnitBox.getUnit() |
Unit |
UnitBox.getUnit()
Returns the unit contained within this box.
|
Unit |
AbstractUnitBox.getUnit() |
Unit |
UnitBox.getUnit()
Returns the unit contained within this box.
|
Modifier and Type | Method and Description |
---|---|
static Set<Unit> |
TrapManager.getTrappedUnitsOf(Body b)
Returns a set of units which lie inside the range of any trap.
|
static Set<Unit> |
TrapManager.getTrappedUnitsOf(Body b)
Returns a set of units which lie inside the range of any trap.
|
Numberer<Unit> |
Scene.getUnitNumberer() |
Numberer<Unit> |
Scene.getUnitNumberer() |
PatchingChain<Unit> |
Body.getUnits()
Returns the Chain of Units that make up this body.
|
PatchingChain<Unit> |
Body.getUnits()
Returns the Chain of Units that make up this body.
|
Map<Unit,String> |
LabeledUnitPrinter.labels() |
Map<Unit,String> |
LabeledUnitPrinter.labels() |
Map<Unit,String> |
LabeledUnitPrinter.references() |
Map<Unit,String> |
LabeledUnitPrinter.references() |
Modifier and Type | Method and Description |
---|---|
abstract boolean |
AbstractUnitBox.canContainUnit(Unit u) |
boolean |
UnitBox.canContainUnit(Unit u)
Returns true if this box can contain the given Unit.
|
abstract boolean |
AbstractUnitBox.canContainUnit(Unit u) |
boolean |
UnitBox.canContainUnit(Unit u)
Returns true if this box can contain the given Unit.
|
void |
AbstractUnitPrinter.endUnit(Unit u) |
void |
AttributesUnitPrinter.endUnit(Unit u) |
void |
UnitPrinter.endUnit(Unit u) |
void |
UnitPrinter.endUnit(Unit u) |
void |
AbstractUnitPrinter.endUnit(Unit u) |
void |
AttributesUnitPrinter.endUnit(Unit u) |
static List<RefType> |
TrapManager.getExceptionTypesOf(Unit u,
Body body)
Given a body and a unit handling an exception,
returns the list of exception types possibly caught
by the handler.
|
static List<RefType> |
TrapManager.getExceptionTypesOf(Unit u,
Body body)
Given a body and a unit handling an exception,
returns the list of exception types possibly caught
by the handler.
|
static List<Trap> |
TrapManager.getTrapsAt(Unit unit,
Body b)
Returns the list of traps caught at Unit u in Body b.
|
static List<Trap> |
TrapManager.getTrapsAt(Unit unit,
Body b)
Returns the list of traps caught at Unit u in Body b.
|
static boolean |
TrapManager.isExceptionCaughtAt(SootClass e,
Unit u,
Body b)
If exception e is caught at unit u in body b, return true;
otherwise, return false.
|
static boolean |
TrapManager.isExceptionCaughtAt(SootClass e,
Unit u,
Body b)
If exception e is caught at unit u in body b, return true;
otherwise, return false.
|
void |
AbstractUnit.redirectJumpsToThisTo(Unit newLocation) |
void |
Unit.redirectJumpsToThisTo(Unit newLocation)
Redirects jumps to this Unit to newLocation.
|
void |
AbstractUnit.redirectJumpsToThisTo(Unit newLocation) |
void |
Unit.redirectJumpsToThisTo(Unit newLocation)
Redirects jumps to this Unit to newLocation.
|
void |
AbstractTrap.setBeginUnit(Unit beginUnit) |
void |
Trap.setBeginUnit(Unit beginUnit)
Sets the value to be returned by
Trap.getBeginUnit() to
beginUnit . |
void |
Trap.setBeginUnit(Unit beginUnit)
Sets the value to be returned by
Trap.getBeginUnit() to
beginUnit . |
void |
AbstractTrap.setBeginUnit(Unit beginUnit) |
void |
AbstractTrap.setEndUnit(Unit endUnit) |
void |
Trap.setEndUnit(Unit endUnit)
Sets the value to be returned by
Trap.getEndUnit() to
endUnit . |
void |
Trap.setEndUnit(Unit endUnit)
Sets the value to be returned by
Trap.getEndUnit() to
endUnit . |
void |
AbstractTrap.setEndUnit(Unit endUnit) |
void |
AbstractTrap.setHandlerUnit(Unit handlerUnit) |
void |
Trap.setHandlerUnit(Unit handlerUnit)
Sets the unit handling the exception to
handlerUnit . |
void |
Trap.setHandlerUnit(Unit handlerUnit)
Sets the unit handling the exception to
handlerUnit . |
void |
AbstractTrap.setHandlerUnit(Unit handlerUnit) |
void |
AbstractUnitBox.setUnit(Unit unit) |
void |
UnitBox.setUnit(Unit u)
Sets this box to contain the given unit.
|
void |
AbstractUnitBox.setUnit(Unit unit) |
void |
UnitBox.setUnit(Unit u)
Sets this box to contain the given unit.
|
static void |
TrapManager.splitTrapsAgainst(Body b,
Unit rangeStart,
Unit rangeEnd)
Splits all traps so that they do not cross the range rangeStart - rangeEnd.
|
static void |
TrapManager.splitTrapsAgainst(Body b,
Unit rangeStart,
Unit rangeEnd)
Splits all traps so that they do not cross the range rangeStart - rangeEnd.
|
void |
AbstractUnitPrinter.startUnit(Unit u) |
void |
AttributesUnitPrinter.startUnit(Unit u) |
void |
BriefUnitPrinter.startUnit(Unit u) |
void |
UnitPrinter.startUnit(Unit u) |
void |
UnitPrinter.startUnit(Unit u) |
void |
BriefUnitPrinter.startUnit(Unit u) |
void |
AbstractUnitPrinter.startUnit(Unit u) |
void |
AttributesUnitPrinter.startUnit(Unit u) |
boolean |
SideEffectTester.unitCanReadFrom(Unit u,
Value v) |
boolean |
SideEffectTester.unitCanReadFrom(Unit u,
Value v) |
boolean |
SideEffectTester.unitCanWriteTo(Unit u,
Value v) |
boolean |
SideEffectTester.unitCanWriteTo(Unit u,
Value v) |
abstract void |
AbstractUnitPrinter.unitRef(Unit u,
boolean branchTarget) |
void |
LabeledUnitPrinter.unitRef(Unit u,
boolean branchTarget) |
void |
UnitPrinter.unitRef(Unit u,
boolean branchTarget) |
void |
UnitPrinter.unitRef(Unit u,
boolean branchTarget) |
void |
LabeledUnitPrinter.unitRef(Unit u,
boolean branchTarget) |
abstract void |
AbstractUnitPrinter.unitRef(Unit u,
boolean branchTarget) |
Modifier and Type | Interface and Description |
---|---|
interface |
AddInst |
interface |
AndInst |
interface |
ArrayLengthInst |
interface |
ArrayReadInst |
interface |
ArrayWriteInst |
interface |
CmpgInst |
interface |
CmpInst |
interface |
CmplInst |
interface |
DivInst |
interface |
Dup1_x1Inst |
interface |
Dup1_x2Inst |
interface |
Dup1Inst |
interface |
Dup2_x1Inst |
interface |
Dup2_x2Inst |
interface |
Dup2Inst |
interface |
DupInst |
interface |
DynamicInvokeInst |
interface |
EnterMonitorInst |
interface |
ExitMonitorInst |
interface |
FieldArgInst |
interface |
FieldGetInst |
interface |
FieldPutInst |
interface |
GotoInst |
interface |
IdentityInst |
interface |
IfCmpEqInst |
interface |
IfCmpGeInst |
interface |
IfCmpGtInst |
interface |
IfCmpLeInst |
interface |
IfCmpLtInst |
interface |
IfCmpNeInst |
interface |
IfEqInst |
interface |
IfGeInst |
interface |
IfGtInst |
interface |
IfLeInst |
interface |
IfLtInst |
interface |
IfNeInst |
interface |
IfNonNullInst |
interface |
IfNullInst |
interface |
IncInst |
interface |
Inst |
interface |
InstanceCastInst |
interface |
InstanceOfInst |
interface |
InterfaceInvokeInst |
interface |
JSRInst |
interface |
LoadInst |
interface |
LookupSwitchInst |
interface |
MethodArgInst |
interface |
MulInst |
interface |
NegInst |
interface |
NewArrayInst |
interface |
NewInst |
interface |
NewMultiArrayInst |
interface |
NoArgInst |
interface |
NopInst |
interface |
OpTypeArgInst |
interface |
OrInst |
interface |
PopInst |
interface |
PrimitiveCastInst |
interface |
PushInst |
interface |
RemInst |
interface |
RetInst |
interface |
ReturnInst |
interface |
ReturnVoidInst |
interface |
ShlInst |
interface |
ShrInst |
interface |
SpecialInvokeInst |
interface |
StaticGetInst |
interface |
StaticInvokeInst |
interface |
StaticPutInst |
interface |
StoreInst |
interface |
SubInst |
interface |
SwapInst |
interface |
TableSwitchInst |
interface |
TargetArgInst |
interface |
ThrowInst |
interface |
UshrInst |
interface |
VirtualInvokeInst |
interface |
XorInst |
Modifier and Type | Class and Description |
---|---|
class |
PlaceholderInst |
Modifier and Type | Field and Description |
---|---|
protected Map<Unit,Label> |
BafASMBackend.branchTargetLabels |
protected Map<Unit,Label> |
BafASMBackend.branchTargetLabels |
Modifier and Type | Method and Description |
---|---|
Unit |
LookupSwitchInst.getDefaultTarget() |
Unit |
TableSwitchInst.getDefaultTarget() |
Unit |
LookupSwitchInst.getDefaultTarget() |
Unit |
TableSwitchInst.getDefaultTarget() |
Unit |
PlaceholderInst.getSource() |
Unit |
PlaceholderInst.getSource() |
Unit |
TargetArgInst.getTarget() |
Unit |
TargetArgInst.getTarget() |
Unit |
LookupSwitchInst.getTarget(int index) |
Unit |
TableSwitchInst.getTarget(int index) |
Unit |
LookupSwitchInst.getTarget(int index) |
Unit |
TableSwitchInst.getTarget(int index) |
Modifier and Type | Method and Description |
---|---|
List<Unit> |
LookupSwitchInst.getTargets() |
List<Unit> |
TableSwitchInst.getTargets() |
List<Unit> |
LookupSwitchInst.getTargets() |
List<Unit> |
TableSwitchInst.getTargets() |
Modifier and Type | Method and Description |
---|---|
protected Label |
BafASMBackend.getBranchTargetLabel(Unit target)
Returns the ASM Label for a given Unit that is the target of a branch or jump
|
protected Label |
BafASMBackend.getBranchTargetLabel(Unit target)
Returns the ASM Label for a given Unit that is the target of a branch or jump
|
GotoInst |
Baf.newGotoInst(Unit unit) |
GotoInst |
Baf.newGotoInst(Unit unit) |
IfCmpEqInst |
Baf.newIfCmpEqInst(Type opType,
Unit unit) |
IfCmpEqInst |
Baf.newIfCmpEqInst(Type opType,
Unit unit) |
IfCmpGeInst |
Baf.newIfCmpGeInst(Type opType,
Unit unit) |
IfCmpGeInst |
Baf.newIfCmpGeInst(Type opType,
Unit unit) |
IfCmpGtInst |
Baf.newIfCmpGtInst(Type opType,
Unit unit) |
IfCmpGtInst |
Baf.newIfCmpGtInst(Type opType,
Unit unit) |
IfCmpLeInst |
Baf.newIfCmpLeInst(Type opType,
Unit unit) |
IfCmpLeInst |
Baf.newIfCmpLeInst(Type opType,
Unit unit) |
IfCmpLtInst |
Baf.newIfCmpLtInst(Type opType,
Unit unit) |
IfCmpLtInst |
Baf.newIfCmpLtInst(Type opType,
Unit unit) |
IfCmpNeInst |
Baf.newIfCmpNeInst(Type opType,
Unit unit) |
IfCmpNeInst |
Baf.newIfCmpNeInst(Type opType,
Unit unit) |
IfEqInst |
Baf.newIfEqInst(Unit unit) |
IfEqInst |
Baf.newIfEqInst(Unit unit) |
IfGeInst |
Baf.newIfGeInst(Unit unit) |
IfGeInst |
Baf.newIfGeInst(Unit unit) |
IfGtInst |
Baf.newIfGtInst(Unit unit) |
IfGtInst |
Baf.newIfGtInst(Unit unit) |
IfLeInst |
Baf.newIfLeInst(Unit unit) |
IfLeInst |
Baf.newIfLeInst(Unit unit) |
IfLtInst |
Baf.newIfLtInst(Unit unit) |
IfLtInst |
Baf.newIfLtInst(Unit unit) |
IfNeInst |
Baf.newIfNeInst(Unit unit) |
IfNeInst |
Baf.newIfNeInst(Unit unit) |
IfNonNullInst |
Baf.newIfNonNullInst(Unit unit) |
IfNonNullInst |
Baf.newIfNonNullInst(Unit unit) |
IfNullInst |
Baf.newIfNullInst(Unit unit) |
IfNullInst |
Baf.newIfNullInst(Unit unit) |
UnitBox |
Baf.newInstBox(Unit unit) |
UnitBox |
Baf.newInstBox(Unit unit) |
JSRInst |
Baf.newJSRInst(Unit unit) |
JSRInst |
Baf.newJSRInst(Unit unit) |
LookupSwitchInst |
Baf.newLookupSwitchInst(Unit defaultTarget,
List<IntConstant> lookupValues,
List targets) |
LookupSwitchInst |
Baf.newLookupSwitchInst(Unit defaultTarget,
List<IntConstant> lookupValues,
List targets) |
PlaceholderInst |
Baf.newPlaceholderInst(Unit source) |
PlaceholderInst |
Baf.newPlaceholderInst(Unit source) |
TableSwitchInst |
Baf.newTableSwitchInst(Unit defaultTarget,
int lowIndex,
int highIndex,
List targets) |
TableSwitchInst |
Baf.newTableSwitchInst(Unit defaultTarget,
int lowIndex,
int highIndex,
List targets) |
Trap |
Baf.newTrap(SootClass exception,
Unit beginUnit,
Unit endUnit,
Unit handlerUnit)
Constructs a new BTrap for the given exception on the given Unit range with the given Unit handler.
|
Trap |
Baf.newTrap(SootClass exception,
Unit beginUnit,
Unit endUnit,
Unit handlerUnit)
Constructs a new BTrap for the given exception on the given Unit range with the given Unit handler.
|
void |
LookupSwitchInst.setDefaultTarget(Unit defTarget) |
void |
TableSwitchInst.setDefaultTarget(Unit defTarget) |
void |
LookupSwitchInst.setDefaultTarget(Unit defTarget) |
void |
TableSwitchInst.setDefaultTarget(Unit defTarget) |
void |
LookupSwitchInst.setTarget(int index,
Unit target) |
void |
TableSwitchInst.setTarget(int index,
Unit target) |
void |
LookupSwitchInst.setTarget(int index,
Unit target) |
void |
TableSwitchInst.setTarget(int index,
Unit target) |
void |
TargetArgInst.setTarget(Unit target) |
void |
TargetArgInst.setTarget(Unit target) |
Modifier and Type | Method and Description |
---|---|
void |
LookupSwitchInst.setTargets(List<Unit> targets) |
void |
TableSwitchInst.setTargets(List<Unit> targets) |
void |
LookupSwitchInst.setTargets(List<Unit> targets) |
void |
TableSwitchInst.setTargets(List<Unit> targets) |
Modifier and Type | Method and Description |
---|---|
Unit |
BLookupSwitchInst.getDefaultTarget() |
Unit |
BTableSwitchInst.getDefaultTarget() |
Unit |
BTableSwitchInst.getDefaultTarget() |
Unit |
BLookupSwitchInst.getDefaultTarget() |
Unit |
AbstractBranchInst.getTarget() |
Unit |
AbstractBranchInst.getTarget() |
Unit |
BLookupSwitchInst.getTarget(int index) |
Unit |
BTableSwitchInst.getTarget(int index) |
Unit |
BTableSwitchInst.getTarget(int index) |
Unit |
BLookupSwitchInst.getTarget(int index) |
Modifier and Type | Method and Description |
---|---|
void |
BLookupSwitchInst.setDefaultTarget(Unit defaultTarget) |
void |
BTableSwitchInst.setDefaultTarget(Unit defaultTarget) |
void |
BTableSwitchInst.setDefaultTarget(Unit defaultTarget) |
void |
BLookupSwitchInst.setDefaultTarget(Unit defaultTarget) |
void |
BLookupSwitchInst.setTarget(int index,
Unit target) |
void |
BTableSwitchInst.setTarget(int index,
Unit target) |
void |
BTableSwitchInst.setTarget(int index,
Unit target) |
void |
BLookupSwitchInst.setTarget(int index,
Unit target) |
void |
AbstractBranchInst.setTarget(Unit target) |
void |
AbstractBranchInst.setTarget(Unit target) |
Modifier and Type | Method and Description |
---|---|
void |
BLookupSwitchInst.setTargets(List<Unit> targets) |
void |
BTableSwitchInst.setTargets(List<Unit> targets) |
void |
BTableSwitchInst.setTargets(List<Unit> targets) |
void |
BLookupSwitchInst.setTargets(List<Unit> targets) |
Constructor and Description |
---|
BGotoInst(Unit target) |
BGotoInst(Unit target) |
BIfCmpEqInst(Type opType,
Unit target) |
BIfCmpEqInst(Type opType,
Unit target) |
BIfCmpGeInst(Type opType,
Unit target) |
BIfCmpGeInst(Type opType,
Unit target) |
BIfCmpGtInst(Type opType,
Unit target) |
BIfCmpGtInst(Type opType,
Unit target) |
BIfCmpLeInst(Type opType,
Unit target) |
BIfCmpLeInst(Type opType,
Unit target) |
BIfCmpLtInst(Type opType,
Unit target) |
BIfCmpLtInst(Type opType,
Unit target) |
BIfCmpNeInst(Type opType,
Unit target) |
BIfCmpNeInst(Type opType,
Unit target) |
BIfEqInst(Unit target) |
BIfEqInst(Unit target) |
BIfGeInst(Unit target) |
BIfGeInst(Unit target) |
BIfGtInst(Unit target) |
BIfGtInst(Unit target) |
BIfLeInst(Unit target) |
BIfLeInst(Unit target) |
BIfLtInst(Unit target) |
BIfLtInst(Unit target) |
BIfNeInst(Unit target) |
BIfNeInst(Unit target) |
BIfNonNullInst(Unit target) |
BIfNonNullInst(Unit target) |
BIfNullInst(Unit target) |
BIfNullInst(Unit target) |
BJSRInst(Unit target) |
BJSRInst(Unit target) |
BLookupSwitchInst(Unit defaultTarget,
List lookupValues,
List targets) |
BLookupSwitchInst(Unit defaultTarget,
List lookupValues,
List targets) |
BTableSwitchInst(Unit defaultTarget,
int lowIndex,
int highIndex,
List targets) |
BTableSwitchInst(Unit defaultTarget,
int lowIndex,
int highIndex,
List targets) |
BTrap(SootClass exception,
Unit beginStmt,
Unit endStmt,
Unit handlerStmt) |
BTrap(SootClass exception,
Unit beginStmt,
Unit endStmt,
Unit handlerStmt) |
Modifier and Type | Method and Description |
---|---|
Unit |
DavaBody.get_ConstructorUnit() |
Unit |
DavaBody.get_ConstructorUnit() |
Modifier and Type | Method and Description |
---|---|
void |
DavaBody.set_ConstructorUnit(Unit s) |
void |
DavaBody.set_ConstructorUnit(Unit s) |
void |
DavaUnitPrinter.unitRef(Unit u,
boolean branchTarget) |
void |
DavaUnitPrinter.unitRef(Unit u,
boolean branchTarget) |
Modifier and Type | Class and Description |
---|---|
class |
ASTControlFlowNode |
class |
ASTDoWhileNode |
class |
ASTForLoopNode |
class |
ASTIfElseNode |
class |
ASTIfNode |
class |
ASTLabeledBlockNode |
class |
ASTLabeledNode |
class |
ASTMethodNode |
class |
ASTNode |
class |
ASTStatementSequenceNode |
class |
ASTSwitchNode |
class |
ASTSynchronizedBlockNode |
class |
ASTTryNode |
class |
ASTUnconditionalLoopNode |
class |
ASTWhileNode |
Modifier and Type | Class and Description |
---|---|
class |
DAbruptStmt |
class |
DAssignStmt |
class |
DDecrementStmt |
class |
DIdentityStmt |
class |
DIncrementStmt |
class |
DShortcutAssignStmt |
class |
DVariableDeclarationStmt |
Modifier and Type | Method and Description |
---|---|
protected Set<Unit> |
DexDefUseAnalysis.collectDefinitionsWithAliases(Local l)
Collect definitions of l in body including the definitions of aliases of
l.
|
protected Set<Unit> |
DexDefUseAnalysis.collectDefinitionsWithAliases(Local l)
Collect definitions of l in body including the definitions of aliases of
l.
|
protected List<Unit> |
DexTransformer.collectDefinitionsWithAliases(Local l,
LocalDefs localDefs,
LocalUses localUses,
Body body)
Collect definitions of l in body including the definitions of aliases of
l.
|
protected List<Unit> |
DexTransformer.collectDefinitionsWithAliases(Local l,
LocalDefs localDefs,
LocalUses localUses,
Body body)
Collect definitions of l in body including the definitions of aliases of
l.
|
List<Unit> |
DexDefUseAnalysis.getDefsOf(Local l) |
List<Unit> |
DexDefUseAnalysis.getDefsOf(Local l) |
List<Unit> |
DexDefUseAnalysis.getDefsOfAt(Local l,
Unit s) |
List<Unit> |
DexDefUseAnalysis.getDefsOfAt(Local l,
Unit s) |
Set<Unit> |
DexDefUseAnalysis.getUsesOf(Local l) |
Set<Unit> |
DexDefUseAnalysis.getUsesOf(Local l) |
Modifier and Type | Method and Description |
---|---|
void |
DexBody.add(Unit u)
Add unit to this body.
|
void |
DexBody.add(Unit u)
Add unit to this body.
|
static void |
Util.addExceptionAfterUnit(Body b,
String exceptionType,
Unit u,
String m)
Insert a runtime exception before unit u of body b.
|
static void |
Util.addExceptionAfterUnit(Body b,
String exceptionType,
Unit u,
String m)
Insert a runtime exception before unit u of body b.
|
protected boolean |
DexNumTransformer.examineBinopExpr(Unit u) |
protected boolean |
DexNumTransformer.examineBinopExpr(Unit u) |
List<Unit> |
DexDefUseAnalysis.getDefsOfAt(Local l,
Unit s) |
List<Unit> |
DexDefUseAnalysis.getDefsOfAt(Local l,
Unit s) |
protected void |
AbstractNullTransformer.replaceWithNull(Unit u)
Replace 0 with null in the given unit.
|
protected void |
AbstractNullTransformer.replaceWithNull(Unit u)
Replace 0 with null in the given unit.
|
Modifier and Type | Method and Description |
---|---|
protected Type |
DexTransformer.findArrayType(LocalDefs localDefs,
Stmt arrayStmt,
int depth,
Set<Unit> alreadyVisitedDefs) |
protected Type |
DexTransformer.findArrayType(LocalDefs localDefs,
Stmt arrayStmt,
int depth,
Set<Unit> alreadyVisitedDefs) |
Modifier and Type | Field and Description |
---|---|
protected Unit |
JumpInstruction.markerUnit |
protected Unit |
SwitchInstruction.markerUnit |
protected Unit |
JumpInstruction.markerUnit |
protected Unit |
SwitchInstruction.markerUnit |
protected Unit |
DexlibAbstractInstruction.unit |
protected Unit |
DexlibAbstractInstruction.unit |
Modifier and Type | Method and Description |
---|---|
Unit |
DexlibAbstractInstruction.getUnit() |
Unit |
DexlibAbstractInstruction.getUnit() |
Modifier and Type | Method and Description |
---|---|
protected void |
DexlibAbstractInstruction.setUnit(Unit u)
Set the Jimple Unit, that comprises this instruction.
|
protected void |
DexlibAbstractInstruction.setUnit(Unit u)
Set the Jimple Unit, that comprises this instruction.
|
Modifier and Type | Method and Description |
---|---|
GotoStmt |
Grimp.newGotoStmt(Unit target)
Constructs a GotoStmt(Stmt) grammar chunk.
|
GotoStmt |
Grimp.newGotoStmt(Unit target)
Constructs a GotoStmt(Stmt) grammar chunk.
|
IfStmt |
Grimp.newIfStmt(Value condition,
Unit target)
Constructs a IfStmt(Condition, Stmt) grammar chunk.
|
IfStmt |
Grimp.newIfStmt(Value condition,
Unit target)
Constructs a IfStmt(Condition, Stmt) grammar chunk.
|
LookupSwitchStmt |
Grimp.newLookupSwitchStmt(Value key,
List lookupValues,
List targets,
Unit defaultTarget)
Constructs a LookupSwitchStmt(Expr, List of Expr, List of Unit, Stmt) grammar chunk.
|
LookupSwitchStmt |
Grimp.newLookupSwitchStmt(Value key,
List lookupValues,
List targets,
Unit defaultTarget)
Constructs a LookupSwitchStmt(Expr, List of Expr, List of Unit, Stmt) grammar chunk.
|
UnitBox |
Grimp.newStmtBox(Unit unit) |
UnitBox |
Grimp.newStmtBox(Unit unit) |
TableSwitchStmt |
Grimp.newTableSwitchStmt(Value key,
int lowIndex,
int highIndex,
List targets,
Unit defaultTarget)
Constructs a TableSwitchStmt(Expr, int, int, List of Unit, Stmt) grammar chunk.
|
TableSwitchStmt |
Grimp.newTableSwitchStmt(Value key,
int lowIndex,
int highIndex,
List targets,
Unit defaultTarget)
Constructs a TableSwitchStmt(Expr, int, int, List of Unit, Stmt) grammar chunk.
|
Trap |
Grimp.newTrap(SootClass exception,
Unit beginStmt,
Unit endStmt,
Unit handlerStmt)
Constructs a new Trap for the given exception on the given Stmt range with the given Stmt handler.
|
Trap |
Grimp.newTrap(SootClass exception,
Unit beginStmt,
Unit endStmt,
Unit handlerStmt)
Constructs a new Trap for the given exception on the given Stmt range with the given Stmt handler.
|
Modifier and Type | Class and Description |
---|---|
class |
GAssignStmt |
class |
GEnterMonitorStmt |
class |
GExitMonitorStmt |
class |
GIdentityStmt |
class |
GIfStmt |
class |
GInvokeStmt |
class |
GLookupSwitchStmt |
class |
GReturnStmt |
class |
GTableSwitchStmt |
class |
GThrowStmt |
Constructor and Description |
---|
GIfStmt(Value condition,
Unit target) |
GIfStmt(Value condition,
Unit target) |
GLookupSwitchStmt(Value key,
List lookupValues,
List targets,
Unit defaultTarget) |
GLookupSwitchStmt(Value key,
List lookupValues,
List targets,
Unit defaultTarget) |
GTableSwitchStmt(Value key,
int lowIndex,
int highIndex,
List targets,
Unit defaultTarget) |
GTableSwitchStmt(Value key,
int lowIndex,
int highIndex,
List targets,
Unit defaultTarget) |
GTrap(SootClass exception,
Unit beginStmt,
Unit endStmt,
Unit handlerStmt) |
GTrap(SootClass exception,
Unit beginStmt,
Unit endStmt,
Unit handlerStmt) |
Modifier and Type | Method and Description |
---|---|
static Map<Unit,Stack<Type>> |
StackTypeHeightCalculator.calculateStackHeights(Body b) |
static Map<Unit,Stack<Type>> |
StackTypeHeightCalculator.calculateStackHeights(Body b) |
static Map<Unit,Stack<Type>> |
StackTypeHeightCalculator.calculateStackHeights(Body b,
boolean jimpleLocals) |
static Map<Unit,Stack<Type>> |
StackTypeHeightCalculator.calculateStackHeights(Body b,
boolean jimpleLocals) |
static Map<Unit,Stack<Type>> |
StackTypeHeightCalculator.calculateStackHeights(Body b,
Map<Local,Local> b2JLocs) |
static Map<Unit,Stack<Type>> |
StackTypeHeightCalculator.calculateStackHeights(Body b,
Map<Local,Local> b2JLocs) |
Modifier and Type | Method and Description |
---|---|
static Stack<Type> |
StackTypeHeightCalculator.getAfterStack(Body b,
Unit u) |
static Stack<Type> |
StackTypeHeightCalculator.getAfterStack(Body b,
Unit u) |
static Stack<Type> |
StackTypeHeightCalculator.getAfterStack(Stack<Type> beforeStack,
Unit u) |
static Stack<Type> |
StackTypeHeightCalculator.getAfterStack(Stack<Type> beforeStack,
Unit u) |
static Stack<Type> |
StackTypeHeightCalculator.updateStack(Unit u,
Stack<Type> st) |
static Stack<Type> |
StackTypeHeightCalculator.updateStack(Unit u,
Stack<Type> st) |
Modifier and Type | Method and Description |
---|---|
static void |
StackTypeHeightCalculator.printStack(PatchingChain<Unit> units,
Map<Unit,Stack<Type>> stacks,
boolean before) |
static void |
StackTypeHeightCalculator.printStack(PatchingChain<Unit> units,
Map<Unit,Stack<Type>> stacks,
boolean before) |
static void |
StackTypeHeightCalculator.printStack(PatchingChain<Unit> units,
Map<Unit,Stack<Type>> stacks,
boolean before) |
static void |
StackTypeHeightCalculator.printStack(PatchingChain<Unit> units,
Map<Unit,Stack<Type>> stacks,
boolean before) |
Modifier and Type | Method and Description |
---|---|
boolean |
AddSwitches.checkTraps(Unit u,
Body b) |
boolean |
AddSwitches.checkTraps(Unit u,
Body b) |
protected void |
New2InitFlowAnalysis.flowThrough(FlowSet in,
Unit d,
FlowSet out) |
protected void |
New2InitFlowAnalysis.flowThrough(FlowSet in,
Unit d,
FlowSet out) |
Constructor and Description |
---|
New2InitFlowAnalysis(DirectedGraph<Unit> graph) |
New2InitFlowAnalysis(DirectedGraph<Unit> graph) |
Modifier and Type | Method and Description |
---|---|
static boolean |
BodyBuilder.isBafIf(Unit u) |
static boolean |
BodyBuilder.isBafIf(Unit u) |
static boolean |
BodyBuilder.isExceptionCaughtAt(Chain<Unit> units,
Unit u,
Iterator<Trap> trapsIt) |
static boolean |
BodyBuilder.isExceptionCaughtAt(Chain<Unit> units,
Unit u,
Iterator<Trap> trapsIt) |
static void |
BodyBuilder.updateTraps(Unit oldu,
Unit newu,
Chain<Trap> traps) |
static void |
BodyBuilder.updateTraps(Unit oldu,
Unit newu,
Chain<Trap> traps) |
Modifier and Type | Method and Description |
---|---|
static List<Local> |
BodyBuilder.buildParameterLocals(PatchingChain<Unit> units,
Collection<Local> locals,
List<Type> paramTypes) |
static List<Local> |
BodyBuilder.buildParameterLocals(PatchingChain<Unit> units,
Collection<Local> locals,
List<Type> paramTypes) |
static Local |
BodyBuilder.buildThisLocal(PatchingChain<Unit> units,
ThisRef tr,
Collection<Local> locals) |
static Local |
BodyBuilder.buildThisLocal(PatchingChain<Unit> units,
ThisRef tr,
Collection<Local> locals) |
static boolean |
BodyBuilder.isExceptionCaughtAt(Chain<Unit> units,
Unit u,
Iterator<Trap> trapsIt) |
static boolean |
BodyBuilder.isExceptionCaughtAt(Chain<Unit> units,
Unit u,
Iterator<Trap> trapsIt) |
static void |
Debugger.printUnits(PatchingChain<Unit> u,
String msg) |
static void |
Debugger.printUnits(PatchingChain<Unit> u,
String msg) |
Modifier and Type | Interface and Description |
---|---|
interface |
AssignStmt |
interface |
BreakpointStmt |
interface |
DefinitionStmt |
interface |
EnterMonitorStmt |
interface |
ExitMonitorStmt |
interface |
GotoStmt |
interface |
IdentityStmt |
interface |
IfStmt |
interface |
InvokeStmt |
interface |
LookupSwitchStmt |
interface |
MonitorStmt |
interface |
NopStmt |
interface |
RetStmt |
interface |
ReturnStmt |
interface |
ReturnVoidStmt |
interface |
Stmt |
interface |
SwitchStmt |
interface |
TableSwitchStmt |
interface |
ThrowStmt |
Modifier and Type | Class and Description |
---|---|
class |
PlaceholderStmt |
Modifier and Type | Method and Description |
---|---|
Unit |
JimpleToBafContext.getCurrentUnit() |
Unit |
JimpleToBafContext.getCurrentUnit() |
Unit |
SwitchStmt.getDefaultTarget() |
Unit |
SwitchStmt.getDefaultTarget() |
Unit |
PlaceholderStmt.getSource() |
Unit |
PlaceholderStmt.getSource() |
Unit |
GotoStmt.getTarget() |
Unit |
GotoStmt.getTarget() |
Unit |
SwitchStmt.getTarget(int index) |
Unit |
SwitchStmt.getTarget(int index) |
Modifier and Type | Method and Description |
---|---|
List<Unit> |
SwitchStmt.getTargets() |
List<Unit> |
SwitchStmt.getTargets() |
Modifier and Type | Method and Description |
---|---|
GotoStmt |
Jimple.newGotoStmt(Unit target)
Constructs a GotoStmt(Stmt) grammar chunk.
|
GotoStmt |
Jimple.newGotoStmt(Unit target)
Constructs a GotoStmt(Stmt) grammar chunk.
|
IfStmt |
Jimple.newIfStmt(Value condition,
Unit target)
Constructs a IfStmt(Condition, Stmt) grammar chunk.
|
IfStmt |
Jimple.newIfStmt(Value condition,
Unit target)
Constructs a IfStmt(Condition, Stmt) grammar chunk.
|
LookupSwitchStmt |
Jimple.newLookupSwitchStmt(Value key,
List<IntConstant> lookupValues,
List<? extends Unit> targets,
Unit defaultTarget)
Constructs a LookupSwitchStmt(Immediate, List of Immediate, List of Unit,
Stmt) grammar chunk.
|
LookupSwitchStmt |
Jimple.newLookupSwitchStmt(Value key,
List<IntConstant> lookupValues,
List<? extends Unit> targets,
Unit defaultTarget)
Constructs a LookupSwitchStmt(Immediate, List of Immediate, List of Unit,
Stmt) grammar chunk.
|
UnitBox |
Jimple.newStmtBox(Unit unit) |
UnitBox |
Jimple.newStmtBox(Unit unit) |
TableSwitchStmt |
Jimple.newTableSwitchStmt(Value key,
int lowIndex,
int highIndex,
List<? extends Unit> targets,
Unit defaultTarget)
Constructs a TableSwitchStmt(Immediate, int, int, List of Unit, Stmt)
grammar chunk.
|
TableSwitchStmt |
Jimple.newTableSwitchStmt(Value key,
int lowIndex,
int highIndex,
List<? extends Unit> targets,
Unit defaultTarget)
Constructs a TableSwitchStmt(Immediate, int, int, List of Unit, Stmt)
grammar chunk.
|
Trap |
Jimple.newTrap(SootClass exception,
Unit beginStmt,
Unit endStmt,
Unit handlerStmt)
Constructs a new JTrap for the given exception on the given Stmt range
with the given Stmt handler.
|
Trap |
Jimple.newTrap(SootClass exception,
Unit beginStmt,
Unit endStmt,
Unit handlerStmt)
Constructs a new JTrap for the given exception on the given Stmt range
with the given Stmt handler.
|
void |
JimpleToBafContext.setCurrentUnit(Unit u) |
void |
JimpleToBafContext.setCurrentUnit(Unit u) |
void |
SwitchStmt.setDefaultTarget(Unit defaultTarget) |
void |
SwitchStmt.setDefaultTarget(Unit defaultTarget) |
void |
SwitchStmt.setTarget(int index,
Unit target) |
void |
SwitchStmt.setTarget(int index,
Unit target) |
void |
GotoStmt.setTarget(Unit target) |
void |
IfStmt.setTarget(Unit target) |
void |
GotoStmt.setTarget(Unit target) |
void |
IfStmt.setTarget(Unit target) |
void |
LookupSwitchStmt.setTargets(Unit[] targets) |
void |
LookupSwitchStmt.setTargets(Unit[] targets) |
boolean |
NaiveSideEffectTester.unitCanReadFrom(Unit u,
Value v)
Returns true if the unit can read from v.
|
boolean |
NaiveSideEffectTester.unitCanReadFrom(Unit u,
Value v)
Returns true if the unit can read from v.
|
boolean |
NaiveSideEffectTester.unitCanWriteTo(Unit u,
Value v) |
boolean |
NaiveSideEffectTester.unitCanWriteTo(Unit u,
Value v) |
Modifier and Type | Method and Description |
---|---|
void |
Constant.convertToBaf(JimpleToBafContext context,
List<Unit> out)
Adds a Baf instruction pushing this constant to the stack onto
out . |
void |
ConvertToBaf.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
StaticFieldRef.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
StaticFieldRef.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
ConvertToBaf.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
Constant.convertToBaf(JimpleToBafContext context,
List<Unit> out)
Adds a Baf instruction pushing this constant to the stack onto
out . |
LookupSwitchStmt |
Jimple.newLookupSwitchStmt(Value key,
List<IntConstant> lookupValues,
List<? extends Unit> targets,
Unit defaultTarget)
Constructs a LookupSwitchStmt(Immediate, List of Immediate, List of Unit,
Stmt) grammar chunk.
|
LookupSwitchStmt |
Jimple.newLookupSwitchStmt(Value key,
List<IntConstant> lookupValues,
List<? extends Unit> targets,
Unit defaultTarget)
Constructs a LookupSwitchStmt(Immediate, List of Immediate, List of Unit,
Stmt) grammar chunk.
|
TableSwitchStmt |
Jimple.newTableSwitchStmt(Value key,
int lowIndex,
int highIndex,
List<? extends Unit> targets,
Unit defaultTarget)
Constructs a TableSwitchStmt(Immediate, int, int, List of Unit, Stmt)
grammar chunk.
|
TableSwitchStmt |
Jimple.newTableSwitchStmt(Value key,
int lowIndex,
int highIndex,
List<? extends Unit> targets,
Unit defaultTarget)
Constructs a TableSwitchStmt(Immediate, int, int, List of Unit, Stmt)
grammar chunk.
|
void |
TableSwitchStmt.setTargets(List<? extends Unit> targets) |
void |
TableSwitchStmt.setTargets(List<? extends Unit> targets) |
Modifier and Type | Class and Description |
---|---|
class |
AbstractDefinitionStmt |
class |
AbstractOpStmt |
class |
AbstractStmt |
class |
AbstractSwitchStmt |
class |
JAssignStmt |
class |
JBreakpointStmt |
class |
JEnterMonitorStmt |
class |
JExitMonitorStmt |
class |
JGotoStmt |
class |
JIdentityStmt |
class |
JIfStmt |
class |
JInvokeStmt |
class |
JLookupSwitchStmt |
class |
JNopStmt |
class |
JRetStmt |
class |
JReturnStmt |
class |
JReturnVoidStmt |
class |
JTableSwitchStmt |
class |
JThrowStmt |
Modifier and Type | Method and Description |
---|---|
Unit |
AbstractSwitchStmt.getDefaultTarget() |
Unit |
AbstractSwitchStmt.getDefaultTarget() |
Unit |
JGotoStmt.getTarget() |
Unit |
JGotoStmt.getTarget() |
Unit |
AbstractSwitchStmt.getTarget(int index) |
Unit |
AbstractSwitchStmt.getTarget(int index) |
Modifier and Type | Method and Description |
---|---|
List<Unit> |
AbstractSwitchStmt.getTargets() |
List<Unit> |
AbstractSwitchStmt.getTargets() |
Modifier and Type | Method and Description |
---|---|
boolean |
StmtBox.canContainUnit(Unit u) |
boolean |
StmtBox.canContainUnit(Unit u) |
void |
AbstractSwitchStmt.setDefaultTarget(Unit defaultTarget) |
void |
AbstractSwitchStmt.setDefaultTarget(Unit defaultTarget) |
void |
AbstractSwitchStmt.setTarget(int index,
Unit target) |
void |
AbstractSwitchStmt.setTarget(int index,
Unit target) |
void |
JGotoStmt.setTarget(Unit target) |
void |
JIfStmt.setTarget(Unit target) |
void |
JGotoStmt.setTarget(Unit target) |
void |
JIfStmt.setTarget(Unit target) |
void |
AbstractSwitchStmt.setTargets(Unit[] targets) |
void |
AbstractSwitchStmt.setTargets(Unit[] targets) |
Modifier and Type | Method and Description |
---|---|
void |
AbstractCastExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractInstanceFieldRef.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractInterfaceInvokeExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractJimpleFloatBinopExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractJimpleIntBinopExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractJimpleIntLongBinopExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractNewArrayExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractNewMultiArrayExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractSpecialInvokeExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractStaticInvokeExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractVirtualInvokeExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JArrayRef.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JAssignStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JDynamicInvokeExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JEnterMonitorStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JExitMonitorStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JGotoStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JIdentityStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JIfStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JInstanceOfExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JInvokeStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JLengthExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JLookupSwitchStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JNegExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JNewExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JNopStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JReturnStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JReturnVoidStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JTableSwitchStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JThrowStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JimpleLocal.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JGotoStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JNegExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JNewExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JReturnStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JDynamicInvokeExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JLookupSwitchStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractNewArrayExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JAssignStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JIdentityStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractInterfaceInvokeExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractInstanceFieldRef.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractJimpleFloatBinopExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JInstanceOfExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractJimpleIntBinopExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JReturnVoidStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JInvokeStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractVirtualInvokeExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractCastExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JNopStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JThrowStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JArrayRef.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JExitMonitorStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JIfStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractJimpleIntLongBinopExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JimpleLocal.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JEnterMonitorStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JTableSwitchStmt.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractSpecialInvokeExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
JLengthExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractStaticInvokeExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractNewMultiArrayExpr.convertToBaf(JimpleToBafContext context,
List<Unit> out) |
void |
AbstractSwitchStmt.setTargets(List<? extends Unit> targets) |
void |
AbstractSwitchStmt.setTargets(List<? extends Unit> targets) |
Constructor and Description |
---|
JGotoStmt(Unit target) |
JGotoStmt(Unit target) |
JIfStmt(Value condition,
Unit target) |
JIfStmt(Value condition,
Unit target) |
JLookupSwitchStmt(Value key,
List<IntConstant> lookupValues,
List<? extends Unit> targets,
Unit defaultTarget)
Constructs a new JLookupSwitchStmt.
|
JLookupSwitchStmt(Value key,
List<IntConstant> lookupValues,
List<? extends Unit> targets,
Unit defaultTarget)
Constructs a new JLookupSwitchStmt.
|
JTableSwitchStmt(Value key,
int lowIndex,
int highIndex,
List<? extends Unit> targets,
Unit defaultTarget) |
JTableSwitchStmt(Value key,
int lowIndex,
int highIndex,
List<? extends Unit> targets,
Unit defaultTarget) |
JTrap(SootClass exception,
Unit beginStmt,
Unit endStmt,
Unit handlerStmt) |
JTrap(SootClass exception,
Unit beginStmt,
Unit endStmt,
Unit handlerStmt) |
Constructor and Description |
---|
JLookupSwitchStmt(Value key,
List<IntConstant> lookupValues,
List<? extends Unit> targets,
Unit defaultTarget)
Constructs a new JLookupSwitchStmt.
|
JLookupSwitchStmt(Value key,
List<IntConstant> lookupValues,
List<? extends Unit> targets,
Unit defaultTarget)
Constructs a new JLookupSwitchStmt.
|
JTableSwitchStmt(Value key,
int lowIndex,
int highIndex,
List<? extends Unit> targets,
Unit defaultTarget) |
JTableSwitchStmt(Value key,
int lowIndex,
int highIndex,
List<? extends Unit> targets,
Unit defaultTarget) |
Modifier and Type | Method and Description |
---|---|
void |
FieldTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units) |
void |
FieldTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units) |
Modifier and Type | Method and Description |
---|---|
void |
FieldTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units) |
void |
FieldTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units) |
Modifier and Type | Field and Description |
---|---|
protected Map<Unit,HashSet<Value>> |
BranchedRefVarsAnalysis.unitToAnalyzedChecksSet
Deprecated.
|
protected Map<Unit,HashSet<Value>> |
BranchedRefVarsAnalysis.unitToAnalyzedChecksSet
Deprecated.
|
protected Map<Unit,HashSet<Value>> |
BranchedRefVarsAnalysis.unitToArrayRefChecksSet
Deprecated.
|
protected Map<Unit,HashSet<Value>> |
BranchedRefVarsAnalysis.unitToArrayRefChecksSet
Deprecated.
|
protected Map<Unit,FlowSet> |
BranchedRefVarsAnalysis.unitToGenerateSet
Deprecated.
|
protected Map<Unit,FlowSet> |
BranchedRefVarsAnalysis.unitToGenerateSet
Deprecated.
|
protected Map<Unit,HashSet<Value>> |
BranchedRefVarsAnalysis.unitToInstanceFieldRefChecksSet
Deprecated.
|
protected Map<Unit,HashSet<Value>> |
BranchedRefVarsAnalysis.unitToInstanceFieldRefChecksSet
Deprecated.
|
protected Map<Unit,HashSet<Value>> |
BranchedRefVarsAnalysis.unitToInstanceInvokeExprChecksSet
Deprecated.
|
protected Map<Unit,HashSet<Value>> |
BranchedRefVarsAnalysis.unitToInstanceInvokeExprChecksSet
Deprecated.
|
protected Map<Unit,HashSet<Value>> |
BranchedRefVarsAnalysis.unitToLengthExprChecksSet
Deprecated.
|
protected Map<Unit,HashSet<Value>> |
BranchedRefVarsAnalysis.unitToLengthExprChecksSet
Deprecated.
|
protected Map<Unit,FlowSet> |
BranchedRefVarsAnalysis.unitToPreserveSet
Deprecated.
|
protected Map<Unit,FlowSet> |
BranchedRefVarsAnalysis.unitToPreserveSet
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
protected void |
NullnessAnalysis.flowThrough(NullnessAnalysis.AnalysisInfo in,
Unit u,
List<NullnessAnalysis.AnalysisInfo> fallOut,
List<NullnessAnalysis.AnalysisInfo> branchOuts)
Given the merge of the
in sets,
compute the fallOut and branchOuts
set for s . |
protected void |
NullnessAnalysis.flowThrough(NullnessAnalysis.AnalysisInfo in,
Unit u,
List<NullnessAnalysis.AnalysisInfo> fallOut,
List<NullnessAnalysis.AnalysisInfo> branchOuts)
Given the merge of the
in sets,
compute the fallOut and branchOuts
set for s . |
protected void |
BranchedRefVarsAnalysis.flowThrough(Object inValue,
Unit stmt,
List outFallValue,
List outBranchValues)
Deprecated.
|
protected void |
BranchedRefVarsAnalysis.flowThrough(Object inValue,
Unit stmt,
List outFallValue,
List outBranchValues)
Deprecated.
|
List |
LocalRefVarsAnalysisWrapper.getListsOfVarsAfterBranch(Unit s)
Deprecated.
|
List |
LocalRefVarsAnalysisWrapper.getListsOfVarsAfterBranch(Unit s)
Deprecated.
|
List |
LocalRefVarsAnalysisWrapper.getVarsAfterFall(Unit s)
Deprecated.
|
List |
LocalRefVarsAnalysisWrapper.getVarsAfterFall(Unit s)
Deprecated.
|
List |
LocalRefVarsAnalysisWrapper.getVarsBefore(Unit s)
Deprecated.
|
List |
LocalRefVarsAnalysisWrapper.getVarsBefore(Unit s)
Deprecated.
|
List |
LocalRefVarsAnalysisWrapper.getVarsDontNeedCheck(Unit s)
Deprecated.
|
List |
LocalRefVarsAnalysisWrapper.getVarsDontNeedCheck(Unit s)
Deprecated.
|
List |
LocalRefVarsAnalysisWrapper.getVarsNeedCheck(Unit s)
Deprecated.
|
List |
LocalRefVarsAnalysisWrapper.getVarsNeedCheck(Unit s)
Deprecated.
|
boolean |
NullnessAnalysis.isAlwaysNonNullBefore(Unit s,
Immediate i)
Returns
true if the analysis could determine that i is always non-null
before the statement s. |
boolean |
NullnessAnalysis.isAlwaysNonNullBefore(Unit s,
Immediate i)
Returns
true if the analysis could determine that i is always non-null
before the statement s. |
boolean |
NullnessAnalysis.isAlwaysNullBefore(Unit s,
Immediate i)
Returns
true if the analysis could determine that i is always null
before the statement s. |
boolean |
NullnessAnalysis.isAlwaysNullBefore(Unit s,
Immediate i)
Returns
true if the analysis could determine that i is always null
before the statement s. |
boolean |
NullnessAssumptionAnalysis.isAssumedNonNullBefore(Unit s,
Immediate i)
Returns
true if the analysis could determine that i is always treated as non-null
after and including the statement s. |
boolean |
NullnessAssumptionAnalysis.isAssumedNonNullBefore(Unit s,
Immediate i)
Returns
true if the analysis could determine that i is always treated as non-null
after and including the statement s. |
boolean |
NullnessAssumptionAnalysis.isAssumedNullBefore(Unit s,
Immediate i)
Returns
true if the analysis could determine that i is always treated as null
after and including the statement s. |
boolean |
NullnessAssumptionAnalysis.isAssumedNullBefore(Unit s,
Immediate i)
Returns
true if the analysis could determine that i is always treated as null
after and including the statement s. |
Modifier and Type | Method and Description |
---|---|
protected void |
ParityAnalysis.flowThrough(Map<Value,ParityAnalysis.Parity> in,
Unit s,
Map<Value,ParityAnalysis.Parity> out) |
protected void |
ParityAnalysis.flowThrough(Map<Value,ParityAnalysis.Parity> in,
Unit s,
Map<Value,ParityAnalysis.Parity> out) |
Modifier and Type | Method and Description |
---|---|
void |
ArrayNullTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units) |
void |
ArrayNullTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units) |
Modifier and Type | Method and Description |
---|---|
void |
ArrayNullTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units) |
void |
ArrayNullTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units) |
Modifier and Type | Method and Description |
---|---|
Zone |
Zonation.getZoneOf(Unit u) |
Zone |
Zonation.getZoneOf(Unit u) |
Modifier and Type | Field and Description |
---|---|
protected Map<Unit,Edge> |
CallGraph.srcUnitToEdge |
protected Map<Unit,Edge> |
CallGraph.srcUnitToEdge |
Modifier and Type | Method and Description |
---|---|
Unit |
ContextSensitiveEdge.srcUnit()
The unit at which the call occurs; may be null for calls not
occurring at a specific statement (eg.
|
Unit |
Edge.srcUnit() |
Unit |
Edge.srcUnit() |
Unit |
ContextSensitiveEdge.srcUnit()
The unit at which the call occurs; may be null for calls not
occurring at a specific statement (eg.
|
Modifier and Type | Method and Description |
---|---|
void |
ContextInsensitiveContextManager.addStaticEdge(MethodOrMethodContext src,
Unit srcUnit,
SootMethod target,
Kind kind) |
void |
ContextManager.addStaticEdge(MethodOrMethodContext src,
Unit srcUnit,
SootMethod target,
Kind kind) |
void |
ObjSensContextManager.addStaticEdge(MethodOrMethodContext src,
Unit srcUnit,
SootMethod target,
Kind kind) |
void |
OneCFAContextManager.addStaticEdge(MethodOrMethodContext src,
Unit srcUnit,
SootMethod target,
Kind kind) |
void |
ObjSensContextManager.addStaticEdge(MethodOrMethodContext src,
Unit srcUnit,
SootMethod target,
Kind kind) |
void |
ContextManager.addStaticEdge(MethodOrMethodContext src,
Unit srcUnit,
SootMethod target,
Kind kind) |
void |
OneCFAContextManager.addStaticEdge(MethodOrMethodContext src,
Unit srcUnit,
SootMethod target,
Kind kind) |
void |
ContextInsensitiveContextManager.addStaticEdge(MethodOrMethodContext src,
Unit srcUnit,
SootMethod target,
Kind kind) |
void |
ContextInsensitiveContextManager.addVirtualEdge(MethodOrMethodContext src,
Unit srcUnit,
SootMethod target,
Kind kind,
Context typeContext) |
void |
ContextManager.addVirtualEdge(MethodOrMethodContext src,
Unit srcUnit,
SootMethod target,
Kind kind,
Context typeContext) |
void |
ObjSensContextManager.addVirtualEdge(MethodOrMethodContext src,
Unit srcUnit,
SootMethod target,
Kind kind,
Context typeContext) |
void |
OneCFAContextManager.addVirtualEdge(MethodOrMethodContext src,
Unit srcUnit,
SootMethod target,
Kind kind,
Context typeContext) |
void |
ObjSensContextManager.addVirtualEdge(MethodOrMethodContext src,
Unit srcUnit,
SootMethod target,
Kind kind,
Context typeContext) |
void |
ContextManager.addVirtualEdge(MethodOrMethodContext src,
Unit srcUnit,
SootMethod target,
Kind kind,
Context typeContext) |
void |
OneCFAContextManager.addVirtualEdge(MethodOrMethodContext src,
Unit srcUnit,
SootMethod target,
Kind kind,
Context typeContext) |
void |
ContextInsensitiveContextManager.addVirtualEdge(MethodOrMethodContext src,
Unit srcUnit,
SootMethod target,
Kind kind,
Context typeContext) |
Iterator |
ContextSensitiveCallGraph.edgesOutOf(Context srcCtxt,
SootMethod src,
Unit srcUnit)
Returns all ContextSensitiveEdge's out of unit srcUnit in method src
in context srcCtxt.
|
Iterator |
ContextSensitiveCallGraph.edgesOutOf(Context srcCtxt,
SootMethod src,
Unit srcUnit)
Returns all ContextSensitiveEdge's out of unit srcUnit in method src
in context srcCtxt.
|
Iterator<Edge> |
CallGraph.edgesOutOf(Unit u)
Returns an iterator over all edges that have u as their source unit.
|
Iterator |
SlowCallGraph.edgesOutOf(Unit u)
Returns an iterator over all edges that have u as their source unit.
|
Iterator<Edge> |
CallGraph.edgesOutOf(Unit u)
Returns an iterator over all edges that have u as their source unit.
|
Iterator |
SlowCallGraph.edgesOutOf(Unit u)
Returns an iterator over all edges that have u as their source unit.
|
Edge |
CallGraph.findEdge(Unit u,
SootMethod callee)
Find the specific call edge that is going out from the callsite u and the call target is callee.
|
Edge |
CallGraph.findEdge(Unit u,
SootMethod callee)
Find the specific call edge that is going out from the callsite u and the call target is callee.
|
protected void |
ConstantArrayAnalysis.flowThrough(ConstantArrayAnalysis.ArrayState in,
Unit d,
ConstantArrayAnalysis.ArrayState out) |
protected void |
ConstantArrayAnalysis.flowThrough(ConstantArrayAnalysis.ArrayState in,
Unit d,
ConstantArrayAnalysis.ArrayState out) |
Iterator<MethodOrMethodContext> |
TransitiveTargets.iterator(Unit u) |
Iterator<MethodOrMethodContext> |
TransitiveTargets.iterator(Unit u) |
boolean |
CallGraph.removeAllEdgesOutOf(Unit u)
Removes all outgoing edges that start at the given unit
|
boolean |
CallGraph.removeAllEdgesOutOf(Unit u)
Removes all outgoing edges that start at the given unit
|
Constructor and Description |
---|
Edge(MethodOrMethodContext src,
Unit srcUnit,
MethodOrMethodContext tgt,
Kind kind) |
Edge(MethodOrMethodContext src,
Unit srcUnit,
MethodOrMethodContext tgt,
Kind kind) |
Constructor and Description |
---|
ConstantArrayAnalysis(DirectedGraph<Unit> graph,
Body b) |
ConstantArrayAnalysis(DirectedGraph<Unit> graph,
Body b) |
Modifier and Type | Class and Description |
---|---|
class |
DefaultJimpleIDETabulationProblem<D,V,I extends heros.InterproceduralCFG<Unit,SootMethod>>
|
class |
DefaultJimpleIDETabulationProblem<D,V,I extends heros.InterproceduralCFG<Unit,SootMethod>>
|
class |
DefaultJimpleIFDSTabulationProblem<D,I extends heros.InterproceduralCFG<Unit,SootMethod>>
|
class |
DefaultJimpleIFDSTabulationProblem<D,I extends heros.InterproceduralCFG<Unit,SootMethod>>
|
class |
JimpleIDESolver<D,V,I extends heros.InterproceduralCFG<Unit,SootMethod>> |
class |
JimpleIDESolver<D,V,I extends heros.InterproceduralCFG<Unit,SootMethod>> |
class |
JimpleIFDSSolver<D,I extends heros.InterproceduralCFG<Unit,SootMethod>> |
class |
JimpleIFDSSolver<D,I extends heros.InterproceduralCFG<Unit,SootMethod>> |
Constructor and Description |
---|
JimpleIDESolver(heros.IDETabulationProblem<Unit,D,SootMethod,V,I> problem) |
JimpleIDESolver(heros.IDETabulationProblem<Unit,D,SootMethod,V,I> problem) |
JimpleIDESolver(heros.IDETabulationProblem<Unit,D,SootMethod,V,I> problem,
boolean dumpResults) |
JimpleIDESolver(heros.IDETabulationProblem<Unit,D,SootMethod,V,I> problem,
boolean dumpResults) |
JimpleIFDSSolver(heros.IFDSTabulationProblem<Unit,D,SootMethod,I> problem) |
JimpleIFDSSolver(heros.IFDSTabulationProblem<Unit,D,SootMethod,I> problem) |
JimpleIFDSSolver(heros.IFDSTabulationProblem<Unit,D,SootMethod,I> problem,
boolean dumpResults) |
JimpleIFDSSolver(heros.IFDSTabulationProblem<Unit,D,SootMethod,I> problem,
boolean dumpResults) |
Modifier and Type | Method and Description |
---|---|
heros.FlowFunctions<Unit,Value,SootMethod> |
IFDSLiveVariables.createFlowFunctionsFactory() |
heros.FlowFunctions<Unit,Local,SootMethod> |
IFDSLocalInfoFlow.createFlowFunctionsFactory() |
heros.FlowFunctions<Unit,Pair<Value,Type>,SootMethod> |
IFDSPossibleTypes.createFlowFunctionsFactory() |
heros.FlowFunctions<Unit,Pair<Value,Set<DefinitionStmt>>,SootMethod> |
IFDSReachingDefinitions.createFlowFunctionsFactory() |
heros.FlowFunctions<Unit,Local,SootMethod> |
IFDSUninitializedVariables.createFlowFunctionsFactory() |
heros.FlowFunctions<Unit,Pair<Value,Type>,SootMethod> |
IFDSPossibleTypes.createFlowFunctionsFactory() |
heros.FlowFunctions<Unit,Local,SootMethod> |
IFDSUninitializedVariables.createFlowFunctionsFactory() |
heros.FlowFunctions<Unit,Value,SootMethod> |
IFDSLiveVariables.createFlowFunctionsFactory() |
heros.FlowFunctions<Unit,Pair<Value,Set<DefinitionStmt>>,SootMethod> |
IFDSReachingDefinitions.createFlowFunctionsFactory() |
heros.FlowFunctions<Unit,Local,SootMethod> |
IFDSLocalInfoFlow.createFlowFunctionsFactory() |
Map<Unit,Set<Value>> |
IFDSLiveVariables.initialSeeds() |
Map<Unit,Set<Local>> |
IFDSLocalInfoFlow.initialSeeds() |
Map<Unit,Set<Pair<Value,Type>>> |
IFDSPossibleTypes.initialSeeds() |
Map<Unit,Set<Pair<Value,Set<DefinitionStmt>>>> |
IFDSReachingDefinitions.initialSeeds() |
Map<Unit,Set<Local>> |
IFDSUninitializedVariables.initialSeeds() |
Map<Unit,Set<Pair<Value,Type>>> |
IFDSPossibleTypes.initialSeeds() |
Map<Unit,Set<Local>> |
IFDSUninitializedVariables.initialSeeds() |
Map<Unit,Set<Value>> |
IFDSLiveVariables.initialSeeds() |
Map<Unit,Set<Pair<Value,Set<DefinitionStmt>>>> |
IFDSReachingDefinitions.initialSeeds() |
Map<Unit,Set<Local>> |
IFDSLocalInfoFlow.initialSeeds() |
Constructor and Description |
---|
IFDSLiveVariables(heros.InterproceduralCFG<Unit,SootMethod> icfg) |
IFDSLiveVariables(heros.InterproceduralCFG<Unit,SootMethod> icfg) |
IFDSLocalInfoFlow(heros.InterproceduralCFG<Unit,SootMethod> icfg) |
IFDSLocalInfoFlow(heros.InterproceduralCFG<Unit,SootMethod> icfg) |
IFDSPossibleTypes(heros.InterproceduralCFG<Unit,SootMethod> icfg) |
IFDSPossibleTypes(heros.InterproceduralCFG<Unit,SootMethod> icfg) |
IFDSReachingDefinitions(heros.InterproceduralCFG<Unit,SootMethod> icfg) |
IFDSReachingDefinitions(heros.InterproceduralCFG<Unit,SootMethod> icfg) |
IFDSUninitializedVariables(heros.InterproceduralCFG<Unit,SootMethod> icfg) |
IFDSUninitializedVariables(heros.InterproceduralCFG<Unit,SootMethod> icfg) |
Modifier and Type | Field and Description |
---|---|
protected BiDiInterproceduralCFG<Unit,SootMethod> |
BackwardsInterproceduralCFG.delegate |
protected BiDiInterproceduralCFG<Unit,SootMethod> |
BackwardsInterproceduralCFG.delegate |
protected Map<SootMethod,Set<Unit>> |
OnTheFlyJimpleBasedICFG.methodToCallers |
protected Map<SootMethod,Set<Unit>> |
OnTheFlyJimpleBasedICFG.methodToCallers |
protected Map<Unit,Body> |
AbstractJimpleBasedICFG.unitToOwner |
protected Map<Unit,Body> |
AbstractJimpleBasedICFG.unitToOwner |
Modifier and Type | Method and Description |
---|---|
Set<Unit> |
AbstractJimpleBasedICFG.allNonCallEndNodes() |
Set<Unit> |
BackwardsInterproceduralCFG.allNonCallEndNodes() |
Set<Unit> |
AbstractJimpleBasedICFG.allNonCallEndNodes() |
Set<Unit> |
BackwardsInterproceduralCFG.allNonCallEndNodes() |
Set<Unit> |
AbstractJimpleBasedICFG.allNonCallStartNodes() |
Set<Unit> |
BackwardsInterproceduralCFG.allNonCallStartNodes() |
Set<Unit> |
AbstractJimpleBasedICFG.allNonCallStartNodes() |
Set<Unit> |
BackwardsInterproceduralCFG.allNonCallStartNodes() |
Collection<Unit> |
BackwardsInterproceduralCFG.getCallersOf(SootMethod m) |
Collection<Unit> |
JimpleBasedInterproceduralCFG.getCallersOf(SootMethod m) |
Set<Unit> |
OnTheFlyJimpleBasedICFG.getCallersOf(SootMethod m) |
Collection<Unit> |
JimpleBasedInterproceduralCFG.getCallersOf(SootMethod m) |
Collection<Unit> |
BackwardsInterproceduralCFG.getCallersOf(SootMethod m) |
Set<Unit> |
OnTheFlyJimpleBasedICFG.getCallersOf(SootMethod m) |
Set<Unit> |
AbstractJimpleBasedICFG.getCallsFromWithin(SootMethod m) |
Set<Unit> |
BackwardsInterproceduralCFG.getCallsFromWithin(SootMethod m) |
Set<Unit> |
AbstractJimpleBasedICFG.getCallsFromWithin(SootMethod m) |
Set<Unit> |
BackwardsInterproceduralCFG.getCallsFromWithin(SootMethod m) |
Collection<Unit> |
AbstractJimpleBasedICFG.getEndPointsOf(SootMethod m) |
Collection<Unit> |
BackwardsInterproceduralCFG.getEndPointsOf(SootMethod m) |
Collection<Unit> |
AbstractJimpleBasedICFG.getEndPointsOf(SootMethod m) |
Collection<Unit> |
BackwardsInterproceduralCFG.getEndPointsOf(SootMethod m) |
DirectedGraph<Unit> |
AbstractJimpleBasedICFG.getOrCreateUnitGraph(Body body) |
DirectedGraph<Unit> |
AbstractJimpleBasedICFG.getOrCreateUnitGraph(Body body) |
DirectedGraph<Unit> |
AbstractJimpleBasedICFG.getOrCreateUnitGraph(SootMethod m) |
DirectedGraph<Unit> |
BackwardsInterproceduralCFG.getOrCreateUnitGraph(SootMethod m) |
DirectedGraph<Unit> |
AbstractJimpleBasedICFG.getOrCreateUnitGraph(SootMethod m) |
DirectedGraph<Unit> |
BackwardsInterproceduralCFG.getOrCreateUnitGraph(SootMethod m) |
List<Unit> |
AbstractJimpleBasedICFG.getPredsOf(Unit u) |
List<Unit> |
BackwardsInterproceduralCFG.getPredsOf(Unit u) |
List<Unit> |
AbstractJimpleBasedICFG.getPredsOf(Unit u) |
List<Unit> |
BackwardsInterproceduralCFG.getPredsOf(Unit u) |
List<Unit> |
AbstractJimpleBasedICFG.getPredsOfCallAt(Unit u) |
List<Unit> |
BackwardsInterproceduralCFG.getPredsOfCallAt(Unit u) |
List<Unit> |
AbstractJimpleBasedICFG.getPredsOfCallAt(Unit u) |
List<Unit> |
BackwardsInterproceduralCFG.getPredsOfCallAt(Unit u) |
Collection<Unit> |
AbstractJimpleBasedICFG.getReturnSitesOfCallAt(Unit u) |
List<Unit> |
BackwardsInterproceduralCFG.getReturnSitesOfCallAt(Unit n) |
Collection<Unit> |
AbstractJimpleBasedICFG.getReturnSitesOfCallAt(Unit u) |
List<Unit> |
BackwardsInterproceduralCFG.getReturnSitesOfCallAt(Unit n) |
Collection<Unit> |
AbstractJimpleBasedICFG.getStartPointsOf(SootMethod m) |
Collection<Unit> |
BackwardsInterproceduralCFG.getStartPointsOf(SootMethod m) |
Collection<Unit> |
AbstractJimpleBasedICFG.getStartPointsOf(SootMethod m) |
Collection<Unit> |
BackwardsInterproceduralCFG.getStartPointsOf(SootMethod m) |
List<Unit> |
AbstractJimpleBasedICFG.getSuccsOf(Unit u) |
List<Unit> |
BackwardsInterproceduralCFG.getSuccsOf(Unit n) |
List<Unit> |
AbstractJimpleBasedICFG.getSuccsOf(Unit u) |
List<Unit> |
BackwardsInterproceduralCFG.getSuccsOf(Unit n) |
protected DirectedGraph<Unit> |
AbstractJimpleBasedICFG.makeGraph(Body body) |
protected DirectedGraph<Unit> |
AbstractJimpleBasedICFG.makeGraph(Body body) |
Modifier and Type | Method and Description |
---|---|
Collection<SootMethod> |
BackwardsInterproceduralCFG.getCalleesOfCallAt(Unit n) |
Collection<SootMethod> |
JimpleBasedInterproceduralCFG.getCalleesOfCallAt(Unit u) |
Set<SootMethod> |
OnTheFlyJimpleBasedICFG.getCalleesOfCallAt(Unit u) |
Collection<SootMethod> |
JimpleBasedInterproceduralCFG.getCalleesOfCallAt(Unit u) |
Collection<SootMethod> |
BackwardsInterproceduralCFG.getCalleesOfCallAt(Unit n) |
Set<SootMethod> |
OnTheFlyJimpleBasedICFG.getCalleesOfCallAt(Unit u) |
SootMethod |
AbstractJimpleBasedICFG.getMethodOf(Unit u) |
SootMethod |
BackwardsInterproceduralCFG.getMethodOf(Unit n) |
SootMethod |
AbstractJimpleBasedICFG.getMethodOf(Unit u) |
SootMethod |
BackwardsInterproceduralCFG.getMethodOf(Unit n) |
List<Unit> |
AbstractJimpleBasedICFG.getPredsOf(Unit u) |
List<Unit> |
BackwardsInterproceduralCFG.getPredsOf(Unit u) |
List<Unit> |
AbstractJimpleBasedICFG.getPredsOf(Unit u) |
List<Unit> |
BackwardsInterproceduralCFG.getPredsOf(Unit u) |
List<Unit> |
AbstractJimpleBasedICFG.getPredsOfCallAt(Unit u) |
List<Unit> |
BackwardsInterproceduralCFG.getPredsOfCallAt(Unit u) |
List<Unit> |
AbstractJimpleBasedICFG.getPredsOfCallAt(Unit u) |
List<Unit> |
BackwardsInterproceduralCFG.getPredsOfCallAt(Unit u) |
Collection<Unit> |
AbstractJimpleBasedICFG.getReturnSitesOfCallAt(Unit u) |
List<Unit> |
BackwardsInterproceduralCFG.getReturnSitesOfCallAt(Unit n) |
Collection<Unit> |
AbstractJimpleBasedICFG.getReturnSitesOfCallAt(Unit u) |
List<Unit> |
BackwardsInterproceduralCFG.getReturnSitesOfCallAt(Unit n) |
List<Unit> |
AbstractJimpleBasedICFG.getSuccsOf(Unit u) |
List<Unit> |
BackwardsInterproceduralCFG.getSuccsOf(Unit n) |
List<Unit> |
AbstractJimpleBasedICFG.getSuccsOf(Unit u) |
List<Unit> |
BackwardsInterproceduralCFG.getSuccsOf(Unit n) |
boolean |
AbstractJimpleBasedICFG.isBranchTarget(Unit u,
Unit succ) |
boolean |
BackwardsInterproceduralCFG.isBranchTarget(Unit stmt,
Unit succ) |
boolean |
AbstractJimpleBasedICFG.isBranchTarget(Unit u,
Unit succ) |
boolean |
BackwardsInterproceduralCFG.isBranchTarget(Unit stmt,
Unit succ) |
boolean |
AbstractJimpleBasedICFG.isCallStmt(Unit u) |
boolean |
BackwardsInterproceduralCFG.isCallStmt(Unit stmt) |
boolean |
AbstractJimpleBasedICFG.isCallStmt(Unit u) |
boolean |
BackwardsInterproceduralCFG.isCallStmt(Unit stmt) |
boolean |
AbstractJimpleBasedICFG.isExitStmt(Unit u) |
boolean |
BackwardsInterproceduralCFG.isExitStmt(Unit stmt) |
boolean |
AbstractJimpleBasedICFG.isExitStmt(Unit u) |
boolean |
BackwardsInterproceduralCFG.isExitStmt(Unit stmt) |
boolean |
AbstractJimpleBasedICFG.isFallThroughSuccessor(Unit u,
Unit succ) |
boolean |
BackwardsInterproceduralCFG.isFallThroughSuccessor(Unit stmt,
Unit succ) |
boolean |
AbstractJimpleBasedICFG.isFallThroughSuccessor(Unit u,
Unit succ) |
boolean |
BackwardsInterproceduralCFG.isFallThroughSuccessor(Unit stmt,
Unit succ) |
boolean |
AbstractJimpleBasedICFG.isReachable(Unit u) |
boolean |
BackwardsInterproceduralCFG.isReachable(Unit u) |
boolean |
AbstractJimpleBasedICFG.isReachable(Unit u) |
boolean |
BackwardsInterproceduralCFG.isReachable(Unit u) |
boolean |
AbstractJimpleBasedICFG.isReturnSite(Unit n) |
boolean |
BackwardsInterproceduralCFG.isReturnSite(Unit n) |
boolean |
AbstractJimpleBasedICFG.isReturnSite(Unit n) |
boolean |
BackwardsInterproceduralCFG.isReturnSite(Unit n) |
boolean |
AbstractJimpleBasedICFG.isStartPoint(Unit u) |
boolean |
BackwardsInterproceduralCFG.isStartPoint(Unit stmt) |
boolean |
AbstractJimpleBasedICFG.isStartPoint(Unit u) |
boolean |
BackwardsInterproceduralCFG.isStartPoint(Unit stmt) |
Constructor and Description |
---|
BackwardsInterproceduralCFG(BiDiInterproceduralCFG<Unit,SootMethod> fwICFG) |
BackwardsInterproceduralCFG(BiDiInterproceduralCFG<Unit,SootMethod> fwICFG) |
Modifier and Type | Method and Description |
---|---|
protected void |
SimpleMethodInfoFlowAnalysis.flowThrough(FlowSet<Pair<EquivalentValue,EquivalentValue>> in,
Unit unit,
FlowSet<Pair<EquivalentValue,EquivalentValue>> out) |
protected void |
SimpleMethodInfoFlowAnalysis.flowThrough(FlowSet<Pair<EquivalentValue,EquivalentValue>> in,
Unit unit,
FlowSet<Pair<EquivalentValue,EquivalentValue>> out) |
Modifier and Type | Field and Description |
---|---|
protected Map<Unit,Map<Value,Integer>> |
LocalMustAliasAnalysis.mergePointToValueToNumber
maps from a merge point (a unit) and a value to the unique value number of that value at this point
|
protected Map<Unit,Map<Value,Integer>> |
LocalMustAliasAnalysis.mergePointToValueToNumber
maps from a merge point (a unit) and a value to the unique value number of that value at this point
|
Modifier and Type | Method and Description |
---|---|
protected void |
LocalMustNotAliasAnalysis.flowThrough(HashMap<Local,Set<NewExpr>> in,
Unit unit,
HashMap<Local,Set<NewExpr>> out) |
protected void |
LocalMustNotAliasAnalysis.flowThrough(HashMap<Local,Set<NewExpr>> in,
Unit unit,
HashMap<Local,Set<NewExpr>> out) |
protected void |
LocalMustAliasAnalysis.flowThrough(HashMap<Value,Integer> in,
Unit u,
HashMap<Value,Integer> out) |
protected void |
LocalMustAliasAnalysis.flowThrough(HashMap<Value,Integer> in,
Unit u,
HashMap<Value,Integer> out) |
protected void |
CastCheckEliminator.flowThrough(soot.jimple.toolkits.pointer.LocalTypeSet in,
Unit unit,
List<soot.jimple.toolkits.pointer.LocalTypeSet> outFallValues,
List<soot.jimple.toolkits.pointer.LocalTypeSet> outBranchValues)
This is the flow function as described in the assignment write-up.
|
protected void |
CastCheckEliminator.flowThrough(soot.jimple.toolkits.pointer.LocalTypeSet in,
Unit unit,
List<soot.jimple.toolkits.pointer.LocalTypeSet> outFallValues,
List<soot.jimple.toolkits.pointer.LocalTypeSet> outBranchValues)
This is the flow function as described in the assignment write-up.
|
protected void |
LocalMayAliasAnalysis.flowThrough(Set<Set<Value>> source,
Unit unit,
Set<Set<Value>> target) |
protected void |
LocalMayAliasAnalysis.flowThrough(Set<Set<Value>> source,
Unit unit,
Set<Set<Value>> target) |
boolean |
LocalMayAliasAnalysis.mayAlias(Value v1,
Value v2,
Unit u)
Returns true if v1 and v2 may alias before u.
|
boolean |
LocalMayAliasAnalysis.mayAlias(Value v1,
Value v2,
Unit u)
Returns true if v1 and v2 may alias before u.
|
Set<Value> |
LocalMayAliasAnalysis.mayAliases(Value v,
Unit u)
Returns all values that may-alias with v before u.
|
Set<Value> |
LocalMayAliasAnalysis.mayAliases(Value v,
Unit u)
Returns all values that may-alias with v before u.
|
protected void |
LocalMustAliasAnalysis.merge(Unit succUnit,
HashMap<Value,Integer> inMap1,
HashMap<Value,Integer> inMap2,
HashMap<Value,Integer> outMap) |
protected void |
LocalMustAliasAnalysis.merge(Unit succUnit,
HashMap<Value,Integer> inMap1,
HashMap<Value,Integer> inMap2,
HashMap<Value,Integer> outMap) |
protected RWSet |
PASideEffectTester.readSet(Unit u) |
protected RWSet |
PASideEffectTester.readSet(Unit u) |
boolean |
PASideEffectTester.unitCanReadFrom(Unit u,
Value v)
Returns true if the unit can read from v.
|
boolean |
PASideEffectTester.unitCanReadFrom(Unit u,
Value v)
Returns true if the unit can read from v.
|
boolean |
PASideEffectTester.unitCanWriteTo(Unit u,
Value v)
Returns true if the unit can read from v.
|
boolean |
PASideEffectTester.unitCanWriteTo(Unit u,
Value v)
Returns true if the unit can read from v.
|
protected RWSet |
PASideEffectTester.writeSet(Unit u) |
protected RWSet |
PASideEffectTester.writeSet(Unit u) |
Constructor and Description |
---|
LocalMustNotAliasAnalysis(DirectedGraph<Unit> directedGraph,
Body b) |
LocalMustNotAliasAnalysis(DirectedGraph<Unit> directedGraph,
Body b) |
Modifier and Type | Method and Description |
---|---|
protected void |
FastAvailableExpressionsAnalysis.flowThrough(FlowSet<Value> in,
Unit u,
FlowSet<Value> out) |
protected void |
SlowAvailableExpressionsAnalysis.flowThrough(FlowSet<Value> in,
Unit unit,
FlowSet<Value> out) |
protected void |
FastAvailableExpressionsAnalysis.flowThrough(FlowSet<Value> in,
Unit u,
FlowSet<Value> out) |
protected void |
SlowAvailableExpressionsAnalysis.flowThrough(FlowSet<Value> in,
Unit unit,
FlowSet<Value> out) |
protected void |
EqualUsesAnalysis.flowThrough(FlowSet in,
Unit unit,
FlowSet out)
Deprecated.
|
protected void |
EqualUsesAnalysis.flowThrough(FlowSet in,
Unit unit,
FlowSet out)
Deprecated.
|
Chain |
AvailableExpressions.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.getAvailableEquivsAfter(Unit u)
Returns a Chain containing the EquivalentValue objects corresponding to expressions available after u.
|
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 |
AvailableExpressions.getAvailableEquivsAfter(Unit u)
Returns a Chain containing the EquivalentValue objects corresponding to expressions available after u.
|
Chain |
AvailableExpressions.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.
|
Chain<EquivalentValue> |
SlowAvailableExpressions.getAvailableEquivsBefore(Unit u)
Returns a Chain containing the EquivalentValue objects corresponding to expressions available before 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.
|
Chain |
AvailableExpressions.getAvailableEquivsBefore(Unit u)
Returns a Chain containing the EquivalentValue objects corresponding to expressions available before u.
|
List |
AvailableExpressions.getAvailablePairsAfter(Unit u)
Returns a List containing the UnitValueBox pairs corresponding to expressions available after u.
|
List<UnitValueBoxPair> |
FastAvailableExpressions.getAvailablePairsAfter(Unit u)
Returns a List containing the EquivalentValue corresponding to expressions available after u.
|
List<UnitValueBoxPair> |
SlowAvailableExpressions.getAvailablePairsAfter(Unit u)
Returns a List containing the UnitValueBox pairs corresponding to expressions available after u.
|
List<UnitValueBoxPair> |
SlowAvailableExpressions.getAvailablePairsAfter(Unit u)
Returns a List containing the UnitValueBox pairs corresponding to expressions available after u.
|
List<UnitValueBoxPair> |
FastAvailableExpressions.getAvailablePairsAfter(Unit u)
Returns a List containing the EquivalentValue corresponding to expressions available after u.
|
List |
AvailableExpressions.getAvailablePairsAfter(Unit u)
Returns a List containing the UnitValueBox pairs corresponding to expressions available after u.
|
List |
AvailableExpressions.getAvailablePairsBefore(Unit u)
Returns a List containing the UnitValueBox pairs corresponding to expressions available before u.
|
List<UnitValueBoxPair> |
FastAvailableExpressions.getAvailablePairsBefore(Unit u)
Returns a List containing the UnitValueBox pairs corresponding to expressions available before u.
|
List<UnitValueBoxPair> |
SlowAvailableExpressions.getAvailablePairsBefore(Unit u)
Returns a List containing the UnitValueBox pairs corresponding to expressions available before u.
|
List<UnitValueBoxPair> |
SlowAvailableExpressions.getAvailablePairsBefore(Unit u)
Returns a List containing the UnitValueBox pairs corresponding to expressions available before u.
|
List<UnitValueBoxPair> |
FastAvailableExpressions.getAvailablePairsBefore(Unit u)
Returns a List containing the UnitValueBox pairs corresponding to expressions available before u.
|
List |
AvailableExpressions.getAvailablePairsBefore(Unit u)
Returns a List containing the UnitValueBox pairs corresponding to expressions available before u.
|
Constructor and Description |
---|
FastAvailableExpressionsAnalysis(DirectedGraph<Unit> dg,
SootMethod m,
SideEffectTester st) |
FastAvailableExpressionsAnalysis(DirectedGraph<Unit> dg,
SootMethod m,
SideEffectTester st) |
PessimisticAvailableExpressionsAnalysis(DirectedGraph<Unit> dg,
SootMethod m,
SideEffectTester st) |
PessimisticAvailableExpressionsAnalysis(DirectedGraph<Unit> dg,
SootMethod m,
SideEffectTester st) |
SlowAvailableExpressionsAnalysis(DirectedGraph<Unit> dg) |
SlowAvailableExpressionsAnalysis(DirectedGraph<Unit> dg) |
Modifier and Type | Method and Description |
---|---|
static Value |
SootFilter.binopRhs(Unit unit)
only lets binary RHS through.
|
static Value |
SootFilter.binopRhs(Unit unit)
only lets binary RHS through.
|
protected void |
DelayabilityAnalysis.flowThrough(FlowSet<EquivalentValue> in,
Unit u,
FlowSet<EquivalentValue> out) |
protected void |
DownSafetyAnalysis.flowThrough(FlowSet<EquivalentValue> in,
Unit u,
FlowSet<EquivalentValue> out) |
protected void |
NotIsolatedAnalysis.flowThrough(FlowSet<EquivalentValue> in,
Unit unit,
FlowSet<EquivalentValue> out) |
protected void |
UpSafetyAnalysis.flowThrough(FlowSet<EquivalentValue> in,
Unit u,
FlowSet<EquivalentValue> out) |
protected void |
NotIsolatedAnalysis.flowThrough(FlowSet<EquivalentValue> in,
Unit unit,
FlowSet<EquivalentValue> out) |
protected void |
DownSafetyAnalysis.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) |
static Value |
SootFilter.noExceptionThrowingRhs(Unit unit)
filters out RHS that don't throw any exception.
|
static Value |
SootFilter.noExceptionThrowingRhs(Unit unit)
filters out RHS that don't throw any exception.
|
static Value |
SootFilter.noInvokeRhs(Unit unit)
filters out RHS that aren't invokes.
|
static Value |
SootFilter.noInvokeRhs(Unit unit)
filters out RHS that aren't invokes.
|
static Value |
SootFilter.rhs(Unit unit)
filters out the RHS of an assignmentStmt.
|
static Value |
SootFilter.rhs(Unit unit)
filters out the RHS of an assignmentStmt.
|
Constructor and Description |
---|
DelayabilityAnalysis(DirectedGraph<Unit> dg)
this constructor should not be used, and will throw a runtime-exception!
|
DelayabilityAnalysis(DirectedGraph<Unit> dg)
this constructor should not be used, and will throw a runtime-exception!
|
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)
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)
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)
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. |
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)
This constructor should not be used, and will throw a runtime-exception!
|
DownSafetyAnalysis(DirectedGraph<Unit> dg)
This constructor should not be used, and will throw a runtime-exception!
|
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)
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)
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)
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. |
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. |
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. |
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)
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)
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)
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. |
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)
This constructor should not be used, and will throw a runtime-exception!
|
UpSafetyAnalysis(DirectedGraph<Unit> dg)
This constructor should not be used, and will throw a runtime-exception!
|
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)
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)
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)
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. |
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 |
---|---|
protected Set<Unit> |
PegGraph.getExceHandlers() |
protected Set<Unit> |
PegGraph.getExceHandlers() |
Modifier and Type | Method and Description |
---|---|
List<SootMethod> |
TargetMethodsFinder.find(Unit unit,
CallGraph cg,
boolean canBeNullList,
boolean canBeNative) |
List<SootMethod> |
TargetMethodsFinder.find(Unit unit,
CallGraph cg,
boolean canBeNullList,
boolean canBeNative) |
boolean |
MhpTester.mayHappenInParallel(SootMethod m1,
Unit u1,
SootMethod m2,
Unit u2) |
boolean |
SynchObliviousMhpAnalysis.mayHappenInParallel(SootMethod m1,
Unit u1,
SootMethod m2,
Unit u2) |
boolean |
SynchObliviousMhpAnalysis.mayHappenInParallel(SootMethod m1,
Unit u1,
SootMethod m2,
Unit u2) |
boolean |
MhpTester.mayHappenInParallel(SootMethod m1,
Unit u1,
SootMethod m2,
Unit u2) |
Modifier and Type | Method and Description |
---|---|
protected void |
MultiRunStatementsFinder.flowThrough(BitSet in,
Unit unit,
BitSet out) |
protected void |
MultiRunStatementsFinder.flowThrough(BitSet in,
Unit unit,
BitSet out) |
Modifier and Type | Field and Description |
---|---|
protected Unit |
JPegStmt.unit |
protected Unit |
JPegStmt.unit |
Modifier and Type | Method and Description |
---|---|
Unit |
JPegStmt.getUnit() |
Unit |
JPegStmt.getUnit() |
Modifier and Type | Method and Description |
---|---|
protected void |
JPegStmt.setUnit(Unit un) |
protected void |
JPegStmt.setUnit(Unit un) |
Modifier and Type | Method and Description |
---|---|
protected void |
SynchronizedRegionFinder.flowThrough(FlowSet<soot.jimple.toolkits.thread.synchronization.SynchronizedRegionFlowPair> in,
Unit unit,
FlowSet<soot.jimple.toolkits.thread.synchronization.SynchronizedRegionFlowPair> out)
OUT is the same as (IN minus killSet) plus the genSet.
|
protected void |
SynchronizedRegionFinder.flowThrough(FlowSet<soot.jimple.toolkits.thread.synchronization.SynchronizedRegionFlowPair> in,
Unit unit,
FlowSet<soot.jimple.toolkits.thread.synchronization.SynchronizedRegionFlowPair> out)
OUT is the same as (IN minus killSet) plus the genSet.
|
protected void |
LockableReferenceAnalysis.flowThrough(soot.jimple.toolkits.thread.synchronization.LocksetFlowInfo inInfo,
Unit u,
soot.jimple.toolkits.thread.synchronization.LocksetFlowInfo outInfo) |
protected void |
LockableReferenceAnalysis.flowThrough(soot.jimple.toolkits.thread.synchronization.LocksetFlowInfo inInfo,
Unit u,
soot.jimple.toolkits.thread.synchronization.LocksetFlowInfo outInfo) |
void |
LockAllocationBodyTransformer.redirectTraps(Body b,
Unit oldUnit,
Unit newUnit) |
void |
LockAllocationBodyTransformer.redirectTraps(Body b,
Unit oldUnit,
Unit newUnit) |
Modifier and Type | Method and Description |
---|---|
InstanceFieldRef |
LockAllocationBodyTransformer.reconstruct(Body b,
PatchingChain<Unit> units,
InstanceFieldRef lock,
Stmt insertBefore,
boolean redirect) |
InstanceFieldRef |
LockAllocationBodyTransformer.reconstruct(Body b,
PatchingChain<Unit> units,
InstanceFieldRef lock,
Stmt insertBefore,
boolean redirect) |
Modifier and Type | Method and Description |
---|---|
static Unit |
Util.findFirstNonIdentityUnit(Body b,
Stmt s)
Returns the first statement after all the "identity statements".
|
static Unit |
Util.findFirstNonIdentityUnit(Body b,
Stmt s)
Returns the first statement after all the "identity statements".
|
static Unit |
Util.findLastIdentityUnit(Body b,
Stmt s)
A new "normal" statement cannot be inserted in the middle of special
"identity statements" (a = @parameter or b = @this in Jimple).
|
static Unit |
Util.findLastIdentityUnit(Body b,
Stmt s)
A new "normal" statement cannot be inserted in the middle of special
"identity statements" (a = @parameter or b = @this in Jimple).
|
Modifier and Type | Method and Description |
---|---|
Unit |
PiExpr.getCondStmt() |
Unit |
PiExpr.getCondStmt() |
Unit |
PhiExpr.getPred(int index)
Returns the control flow predecessor Unit for the given index
into the PhiExpr.
|
Unit |
PhiExpr.getPred(int index)
Returns the control flow predecessor Unit for the given index
into the PhiExpr.
|
Modifier and Type | Method and Description |
---|---|
List<Unit> |
PhiExpr.getPreds()
Returns a list of the control flow predecessor Units being
tracked by this PhiExpr
|
List<Unit> |
PhiExpr.getPreds()
Returns a list of the control flow predecessor Units being
tracked by this PhiExpr
|
Modifier and Type | Method and Description |
---|---|
boolean |
PhiExpr.addArg(Value arg,
Unit predTailUnit)
Add the given argument associated with the given CFG
predecessor.
|
boolean |
PhiExpr.addArg(Value arg,
Unit predTailUnit)
Add the given argument associated with the given CFG
predecessor.
|
ValueUnitPair |
PhiExpr.getArgBox(Unit predTailUnit)
Returns the argument pair corresponding to the given CFG
predecessor.
|
ValueUnitPair |
PhiExpr.getArgBox(Unit predTailUnit)
Returns the argument pair corresponding to the given CFG
predecessor.
|
int |
PhiExpr.getArgIndex(Unit predTailUnit)
Returns the index of the argument associated with the given
control flow predecessor Unit.
|
int |
PhiExpr.getArgIndex(Unit predTailUnit)
Returns the index of the argument associated with the given
control flow predecessor Unit.
|
static Local |
Shimple.getLhsLocal(Unit unit)
Returns the corresponding left Local if the unit is a Shimple node,
null otherwise.
|
static Local |
Shimple.getLhsLocal(Unit unit)
Returns the corresponding left Local if the unit is a Shimple node,
null otherwise.
|
static PhiExpr |
Shimple.getPhiExpr(Unit unit)
Returns the corresponding PhiExpr if the unit is a Phi node,
null otherwise.
|
static PhiExpr |
Shimple.getPhiExpr(Unit unit)
Returns the corresponding PhiExpr if the unit is a Phi node,
null otherwise.
|
static PiExpr |
Shimple.getPiExpr(Unit unit) |
static PiExpr |
Shimple.getPiExpr(Unit unit) |
Value |
PhiExpr.getValue(Unit predTailUnit)
Get the PhiExpr argument corresponding to the given control
flow predecessor, returns null if not available.
|
Value |
PhiExpr.getValue(Unit predTailUnit)
Get the PhiExpr argument corresponding to the given control
flow predecessor, returns null if not available.
|
static boolean |
Shimple.isPhiNode(Unit unit)
Returns true if the unit is a Phi node, false otherwise.
|
static boolean |
Shimple.isPhiNode(Unit unit)
Returns true if the unit is a Phi node, false otherwise.
|
static boolean |
Shimple.isPiNode(Unit unit) |
static boolean |
Shimple.isPiNode(Unit unit) |
PiExpr |
Shimple.newPiExpr(Local local,
Unit predicate,
Object targetKey) |
PiExpr |
Shimple.newPiExpr(Local local,
Unit predicate,
Object targetKey) |
static void |
Shimple.redirectPointers(Unit oldLocation,
Unit newLocation)
Redirects PhiExpr pointers to the given Unit to the new Unit.
|
static void |
Shimple.redirectPointers(Unit oldLocation,
Unit newLocation)
Redirects PhiExpr pointers to the given Unit to the new Unit.
|
static void |
Shimple.redirectToPreds(Body body,
Unit remove)
If you are removing a Unit from a Unit chain which contains
PhiExpr's, you might want to call this utility function in
order to update any PhiExpr pointers to the Unit to point to
the Unit's predecessor(s).
|
static void |
Shimple.redirectToPreds(Body body,
Unit remove)
If you are removing a Unit from a Unit chain which contains
PhiExpr's, you might want to call this utility function in
order to update any PhiExpr pointers to the Unit to point to
the Unit's predecessor(s).
|
boolean |
PhiExpr.removeArg(Unit predTailUnit)
Remove the argument corresponding to the given CFG predecessor.
|
boolean |
PhiExpr.removeArg(Unit predTailUnit)
Remove the argument corresponding to the given CFG predecessor.
|
boolean |
PhiExpr.setArg(int index,
Value arg,
Unit predTailUnit)
Modify the PhiExpr argument at the given index with the given
information.
|
boolean |
PhiExpr.setArg(int index,
Value arg,
Unit predTailUnit)
Modify the PhiExpr argument at the given index with the given
information.
|
void |
PiExpr.setCondStmt(Unit cs) |
void |
PiExpr.setCondStmt(Unit cs) |
boolean |
PhiExpr.setPred(int index,
Unit predTailUnit)
Update the CFG predecessor associated with the PhiExpr
argument at the given index.
|
boolean |
PhiExpr.setPred(int index,
Unit predTailUnit)
Update the CFG predecessor associated with the PhiExpr
argument at the given index.
|
boolean |
PhiExpr.setValue(Unit predTailUnit,
Value arg)
Locate the argument associated with the given CFG predecessor unit
and set the value.
|
boolean |
PhiExpr.setValue(Unit predTailUnit,
Value arg)
Locate the argument associated with the given CFG predecessor unit
and set the value.
|
Modifier and Type | Method and Description |
---|---|
PhiExpr |
Shimple.newPhiExpr(List<Value> args,
List<Unit> preds)
Create a PhiExpr with the provided list of Values (Locals or
Constants) and the corresponding control flow predecessor
Blocks.
|
PhiExpr |
Shimple.newPhiExpr(List<Value> args,
List<Unit> preds)
Create a PhiExpr with the provided list of Values (Locals or
Constants) and the corresponding control flow predecessor
Blocks.
|
Modifier and Type | Field and Description |
---|---|
protected Map<UnitBox,Unit> |
SPatchingChain.boxToPhiNode
Map from UnitBox to the Phi node owning it.
|
protected Map<UnitBox,Unit> |
SPatchingChain.boxToPhiNode
Map from UnitBox to the Phi node owning it.
|
protected Set<Unit> |
SPatchingChain.phiNodeSet
Set of the values of boxToPhiNode.
|
protected Set<Unit> |
SPatchingChain.phiNodeSet
Set of the values of boxToPhiNode.
|
protected Map<Unit,ValueUnitPair> |
SPhiExpr.predToPair |
protected Map<Unit,ValueUnitPair> |
SPhiExpr.predToPair |
protected Map<Unit,Block> |
PhiNodeManager.unitToBlock |
protected Map<Unit,Block> |
PhiNodeManager.unitToBlock |
Modifier and Type | Method and Description |
---|---|
Unit |
SPiExpr.getCondStmt() |
Unit |
SPiExpr.getCondStmt() |
Unit |
SPhiExpr.getPred(int index) |
Unit |
SPhiExpr.getPred(int index) |
Modifier and Type | Method and Description |
---|---|
List<Unit> |
SPhiExpr.getPreds() |
List<Unit> |
SPhiExpr.getPreds() |
Map<Unit,Block> |
PhiNodeManager.getUnitToBlockMap(BlockGraph blocks)
Convenience function that maps units to blocks.
|
Map<Unit,Block> |
PhiNodeManager.getUnitToBlockMap(BlockGraph blocks)
Convenience function that maps units to blocks.
|
Iterator<Unit> |
SPatchingChain.iterator() |
Iterator<Unit> |
SPatchingChain.iterator() |
Iterator<Unit> |
SPatchingChain.iterator(Unit u) |
Iterator<Unit> |
SPatchingChain.iterator(Unit u) |
Iterator<Unit> |
SPatchingChain.iterator(Unit head,
Unit tail) |
Iterator<Unit> |
SPatchingChain.iterator(Unit head,
Unit tail) |
Modifier and Type | Method and Description |
---|---|
boolean |
SPatchingChain.add(Unit o) |
boolean |
SPatchingChain.add(Unit o) |
boolean |
SPhiExpr.addArg(Value arg,
Unit predTailUnit) |
boolean |
SPhiExpr.addArg(Value arg,
Unit predTailUnit) |
void |
SPatchingChain.addFirst(Unit u) |
void |
SPatchingChain.addFirst(Unit u) |
void |
SPatchingChain.addLast(Unit u) |
void |
SPatchingChain.addLast(Unit u) |
boolean |
PhiNodeManager.dominates(Unit champ,
Unit challenger)
Returns true if champ dominates challenger.
|
boolean |
PhiNodeManager.dominates(Unit champ,
Unit challenger)
Returns true if champ dominates challenger.
|
ValueUnitPair |
SPhiExpr.getArgBox(Unit predTailUnit) |
ValueUnitPair |
SPhiExpr.getArgBox(Unit predTailUnit) |
int |
SPhiExpr.getArgIndex(Unit predTailUnit) |
int |
SPhiExpr.getArgIndex(Unit predTailUnit) |
Value |
SPhiExpr.getValue(Unit predTailUnit) |
Value |
SPhiExpr.getValue(Unit predTailUnit) |
void |
SPatchingChain.insertAfter(List<Unit> toInsert,
Unit point) |
void |
SPatchingChain.insertAfter(List<Unit> toInsert,
Unit point) |
void |
SPatchingChain.insertAfter(Unit toInsert,
Unit point) |
void |
SPatchingChain.insertAfter(Unit toInsert,
Unit point) |
void |
SPatchingChain.insertBefore(List<Unit> toInsert,
Unit point) |
void |
SPatchingChain.insertBefore(List<Unit> toInsert,
Unit point) |
void |
SPatchingChain.insertBefore(Unit toInsert,
Unit point) |
void |
SPatchingChain.insertBefore(Unit toInsert,
Unit point) |
Iterator<Unit> |
SPatchingChain.iterator(Unit u) |
Iterator<Unit> |
SPatchingChain.iterator(Unit u) |
Iterator<Unit> |
SPatchingChain.iterator(Unit head,
Unit tail) |
Iterator<Unit> |
SPatchingChain.iterator(Unit head,
Unit tail) |
void |
PiNodeManager.piHandleSwitchStmt(Local local,
Unit u) |
void |
PiNodeManager.piHandleSwitchStmt(Local local,
Unit u) |
protected void |
SPatchingChain.processPhiNode(Unit o) |
protected void |
SPatchingChain.processPhiNode(Unit o) |
boolean |
SPatchingChain.remove(Unit obj) |
boolean |
SPatchingChain.remove(Unit obj) |
boolean |
SPhiExpr.removeArg(Unit predTailUnit) |
boolean |
SPhiExpr.removeArg(Unit predTailUnit) |
boolean |
SPhiExpr.setArg(int index,
Value arg,
Unit predTailUnit) |
boolean |
SPhiExpr.setArg(int index,
Value arg,
Unit predTailUnit) |
void |
SPiExpr.setCondStmt(Unit pred) |
void |
SPiExpr.setCondStmt(Unit pred) |
boolean |
SPhiExpr.setPred(int index,
Unit predTailUnit) |
boolean |
SPhiExpr.setPred(int index,
Unit predTailUnit) |
void |
SValueUnitPair.setUnit(Unit u) |
void |
SValueUnitPair.setUnit(Unit u) |
boolean |
SPhiExpr.setValue(Unit predTailUnit,
Value arg) |
boolean |
SPhiExpr.setValue(Unit predTailUnit,
Value arg) |
void |
SPatchingChain.swapWith(Unit out,
Unit in) |
void |
SPatchingChain.swapWith(Unit out,
Unit in) |
Modifier and Type | Method and Description |
---|---|
void |
SPatchingChain.insertAfter(List<Unit> toInsert,
Unit point) |
void |
SPatchingChain.insertAfter(List<Unit> toInsert,
Unit point) |
void |
SPatchingChain.insertBefore(List<Unit> toInsert,
Unit point) |
void |
SPatchingChain.insertBefore(List<Unit> toInsert,
Unit point) |
Constructor and Description |
---|
SPiExpr(Value v,
Unit u,
Object o) |
SPiExpr(Value v,
Unit u,
Object o) |
SValueUnitPair(Value value,
Unit unit) |
SValueUnitPair(Value value,
Unit unit) |
Constructor and Description |
---|
SPatchingChain(Body aBody,
Chain<Unit> aChain) |
SPatchingChain(Body aBody,
Chain<Unit> aChain) |
SPhiExpr(List<Value> args,
List<Unit> preds)
Create a Phi expression from the given list of Values and Blocks.
|
SPhiExpr(List<Value> args,
List<Unit> preds)
Create a Phi expression from the given list of Values and Blocks.
|
Modifier and Type | Field and Description |
---|---|
protected Map<Value,List<Unit>> |
ShimpleLocalDefs.localToDefs |
protected Map<Value,List<Unit>> |
ShimpleLocalDefs.localToDefs |
Modifier and Type | Method and Description |
---|---|
List<Unit> |
ShimpleLocalDefs.getDefsOf(Local l)
Unconditionally returns the definition site of a local (as a
singleton list).
|
List<Unit> |
ShimpleLocalDefs.getDefsOf(Local l)
Unconditionally returns the definition site of a local (as a
singleton list).
|
List<Unit> |
ShimpleLocalDefs.getDefsOfAt(Local l,
Unit s)
Returns the definition site for a Local at a certain point
(Unit) in a method as a singleton list.
|
List<Unit> |
ShimpleLocalDefs.getDefsOfAt(Local l,
Unit s)
Returns the definition site for a Local at a certain point
(Unit) in a method as a singleton list.
|
Modifier and Type | Method and Description |
---|---|
List<Unit> |
ShimpleLocalDefs.getDefsOfAt(Local l,
Unit s)
Returns the definition site for a Local at a certain point
(Unit) in a method as a singleton list.
|
List<Unit> |
ShimpleLocalDefs.getDefsOfAt(Local l,
Unit s)
Returns the definition site for a Local at a certain point
(Unit) in a method as a singleton list.
|
List |
ShimpleLocalUses.getUsesOf(Unit unit)
If a Local is defined in the Unit, returns all the uses of that
Local as a list of UnitValueBoxPairs, each containing a Unit
that uses the local and the corresponding ValueBox containing
the Local.
|
List |
ShimpleLocalUses.getUsesOf(Unit unit)
If a Local is defined in the Unit, returns all the uses of that
Local as a list of UnitValueBoxPairs, each containing a Unit
that uses the local and the corresponding ValueBox containing
the Local.
|
Modifier and Type | Field and Description |
---|---|
protected Map<Unit,Unit> |
TryCatchTag.handlerUnitToFallThroughUnit |
protected Map<Unit,Unit> |
TryCatchTag.handlerUnitToFallThroughUnit |
protected Map<Unit,Unit> |
TryCatchTag.handlerUnitToFallThroughUnit |
protected Map<Unit,Unit> |
TryCatchTag.handlerUnitToFallThroughUnit |
protected List<Unit> |
CodeAttribute.mUnits |
protected List<Unit> |
CodeAttribute.mUnits |
Modifier and Type | Method and Description |
---|---|
Unit |
TryCatchTag.getFallThroughUnitOf(Unit handlerUnit) |
Unit |
TryCatchTag.getFallThroughUnitOf(Unit handlerUnit) |
Modifier and Type | Method and Description |
---|---|
void |
FirstTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units)
Decide whether this tag should be aggregated by this aggregator.
|
void |
ImportantTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units)
Decide whether this tag should be aggregated by this aggregator.
|
void |
LineNumberTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units) |
abstract void |
TagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units)
Aggregate the given tag assigned to the given unit
|
void |
ImportantTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units)
Decide whether this tag should be aggregated by this aggregator.
|
void |
LineNumberTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units) |
void |
FirstTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units)
Decide whether this tag should be aggregated by this aggregator.
|
abstract void |
TagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units)
Aggregate the given tag assigned to the given unit
|
Unit |
TryCatchTag.getFallThroughUnitOf(Unit handlerUnit) |
Unit |
TryCatchTag.getFallThroughUnitOf(Unit handlerUnit) |
void |
TryCatchTag.register(Unit handler,
Unit fallThrough) |
void |
TryCatchTag.register(Unit handler,
Unit fallThrough) |
Modifier and Type | Method and Description |
---|---|
void |
FirstTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units)
Decide whether this tag should be aggregated by this aggregator.
|
void |
ImportantTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units)
Decide whether this tag should be aggregated by this aggregator.
|
void |
LineNumberTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units) |
abstract void |
TagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units)
Aggregate the given tag assigned to the given unit
|
void |
ImportantTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units)
Decide whether this tag should be aggregated by this aggregator.
|
void |
LineNumberTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units) |
void |
FirstTagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units)
Decide whether this tag should be aggregated by this aggregator.
|
abstract void |
TagAggregator.considerTag(Tag t,
Unit u,
LinkedList<Tag> tags,
LinkedList<Unit> units)
Aggregate the given tag assigned to the given unit
|
String |
CodeAttribute.getJasminValue(Map<Unit,String> instToLabel)
Generates Jasmin Value String
|
abstract String |
JasminAttribute.getJasminValue(Map<Unit,String> instToLabel) |
abstract String |
JasminAttribute.getJasminValue(Map<Unit,String> instToLabel) |
String |
CodeAttribute.getJasminValue(Map<Unit,String> instToLabel)
Generates Jasmin Value String
|
Constructor and Description |
---|
CodeAttribute(String name,
List<Unit> units,
List<Tag> tags)
Create an attribute object with the name and lists of unit-tag pairs.
|
CodeAttribute(String name,
List<Unit> units,
List<Tag> tags)
Create an attribute object with the name and lists of unit-tag pairs.
|
Modifier and Type | Method and Description |
---|---|
Set<Unit> |
DexArrayInitDetector.getIgnoreUnits() |
Set<Unit> |
DexArrayInitDetector.getIgnoreUnits() |
Modifier and Type | Method and Description |
---|---|
List<Value> |
DexArrayInitDetector.getValuesForArrayInit(Unit arrayInit) |
List<Value> |
DexArrayInitDetector.getValuesForArrayInit(Unit arrayInit) |
Modifier and Type | Method and Description |
---|---|
static int |
SootToDexUtils.getOutWordCount(Collection<Unit> units) |
static int |
SootToDexUtils.getOutWordCount(Collection<Unit> units) |
Modifier and Type | Field and Description |
---|---|
protected List<Unit> |
SwitchPayload.targets |
protected List<Unit> |
SwitchPayload.targets |
Constructor and Description |
---|
PackedSwitchPayload(int firstKey,
List<Unit> targets) |
PackedSwitchPayload(int firstKey,
List<Unit> targets) |
SparseSwitchPayload(int[] keys,
List<Unit> targets) |
SparseSwitchPayload(int[] keys,
List<Unit> targets) |
SwitchPayload(List<Unit> targets) |
SwitchPayload(List<Unit> targets) |
Modifier and Type | Method and Description |
---|---|
Set<Unit> |
TrapTransformer.getUnitsWithMonitor(UnitGraph ug) |
Set<Unit> |
TrapTransformer.getUnitsWithMonitor(UnitGraph ug) |
Modifier and Type | Method and Description |
---|---|
abstract ThrowableSet |
AbstractThrowAnalysis.mightThrow(Unit u) |
ThrowableSet |
PedanticThrowAnalysis.mightThrow(Unit u)
Returns the set of all
Throwable s as the set
of types that the specified unit might throw, regardless of the
unit's identity. |
ThrowableSet |
ThrowAnalysis.mightThrow(Unit u)
Returns a set representing the
Throwable types that
the specified unit might throw. |
ThrowableSet |
UnitThrowAnalysis.mightThrow(Unit u) |
ThrowableSet |
ThrowAnalysis.mightThrow(Unit u)
Returns a set representing the
Throwable types that
the specified unit might throw. |
ThrowableSet |
PedanticThrowAnalysis.mightThrow(Unit u)
Returns the set of all
Throwable s as the set
of types that the specified unit might throw, regardless of the
unit's identity. |
ThrowableSet |
UnitThrowAnalysis.mightThrow(Unit u) |
abstract ThrowableSet |
AbstractThrowAnalysis.mightThrow(Unit u) |
protected boolean |
TrapTightener.mightThrowTo(ExceptionalUnitGraph g,
Unit u,
Trap t)
|
protected boolean |
TrapTightener.mightThrowTo(ExceptionalUnitGraph g,
Unit u,
Trap t)
|
Modifier and Type | Field and Description |
---|---|
protected List<Unit> |
UnitGraph.heads |
protected List<Unit> |
UnitGraph.heads |
protected Chain<Unit> |
BlockGraph.mUnits |
protected Chain<Unit> |
BlockGraph.mUnits |
protected List<Unit> |
UnitGraph.tails |
protected List<Unit> |
UnitGraph.tails |
protected Chain<Unit> |
UnitGraph.unitChain |
protected Chain<Unit> |
UnitGraph.unitChain |
protected Map<Unit,List<Unit>> |
ExceptionalUnitGraph.unitToExceptionalPreds |
protected Map<Unit,List<Unit>> |
ExceptionalUnitGraph.unitToExceptionalPreds |
protected Map<Unit,List<Unit>> |
ExceptionalUnitGraph.unitToExceptionalPreds |
protected Map<Unit,List<Unit>> |
ExceptionalUnitGraph.unitToExceptionalPreds |
protected Map<Unit,List<Unit>> |
ExceptionalUnitGraph.unitToExceptionalSuccs |
protected Map<Unit,List<Unit>> |
ExceptionalUnitGraph.unitToExceptionalSuccs |
protected Map<Unit,List<Unit>> |
ExceptionalUnitGraph.unitToExceptionalSuccs |
protected Map<Unit,List<Unit>> |
ExceptionalUnitGraph.unitToExceptionalSuccs |
protected Map<Unit,Collection<ExceptionalUnitGraph.ExceptionDest>> |
ExceptionalUnitGraph.unitToExceptionDests |
protected Map<Unit,Collection<ExceptionalUnitGraph.ExceptionDest>> |
ExceptionalUnitGraph.unitToExceptionDests |
protected Map<Unit,List<Unit>> |
UnitGraph.unitToPreds |
protected Map<Unit,List<Unit>> |
UnitGraph.unitToPreds |
protected Map<Unit,List<Unit>> |
UnitGraph.unitToPreds |
protected Map<Unit,List<Unit>> |
UnitGraph.unitToPreds |
protected Map<Unit,List<Unit>> |
UnitGraph.unitToSuccs |
protected Map<Unit,List<Unit>> |
UnitGraph.unitToSuccs |
protected Map<Unit,List<Unit>> |
UnitGraph.unitToSuccs |
protected Map<Unit,List<Unit>> |
UnitGraph.unitToSuccs |
protected Map<Unit,List<Unit>> |
ExceptionalUnitGraph.unitToUnexceptionalPreds |
protected Map<Unit,List<Unit>> |
ExceptionalUnitGraph.unitToUnexceptionalPreds |
protected Map<Unit,List<Unit>> |
ExceptionalUnitGraph.unitToUnexceptionalPreds |
protected Map<Unit,List<Unit>> |
ExceptionalUnitGraph.unitToUnexceptionalPreds |
protected Map<Unit,List<Unit>> |
ExceptionalUnitGraph.unitToUnexceptionalSuccs |
protected Map<Unit,List<Unit>> |
ExceptionalUnitGraph.unitToUnexceptionalSuccs |
protected Map<Unit,List<Unit>> |
ExceptionalUnitGraph.unitToUnexceptionalSuccs |
protected Map<Unit,List<Unit>> |
ExceptionalUnitGraph.unitToUnexceptionalSuccs |
Modifier and Type | Method and Description |
---|---|
Unit |
ExceptionalUnitGraph.ExceptionDest.getHandlerNode() |
Unit |
ExceptionalUnitGraph.ExceptionDest.getHandlerNode() |
Unit |
Block.getHead()
Returns the first unit in this block.
|
Unit |
Block.getHead()
Returns the first unit in this block.
|
Unit |
Block.getPredOf(Unit aItem)
Returns the Unit occurring immediately before some other Unit in the block.
|
Unit |
Block.getPredOf(Unit aItem)
Returns the Unit occurring immediately before some other Unit in the block.
|
Unit |
Block.getSuccOf(Unit aItem)
Returns the Unit occurring immediately after some other Unit in the block.
|
Unit |
Block.getSuccOf(Unit aItem)
Returns the Unit occurring immediately after some other Unit in the block.
|
Unit |
Block.getTail()
Returns the last unit in this block.
|
Unit |
Block.getTail()
Returns the last unit in this block.
|
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> |
ExceptionalUnitGraph.buildExceptionalEdges(ThrowAnalysis throwAnalysis,
Map<Unit,Collection<ExceptionalUnitGraph.ExceptionDest>> unitToExceptionDests,
Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
boolean omitExceptingUnitEdges)
Method to compute the edges corresponding to exceptional control flow.
|
protected Set<Unit> |
ExceptionalUnitGraph.buildExceptionalEdges(ThrowAnalysis throwAnalysis,
Map<Unit,Collection<ExceptionalUnitGraph.ExceptionDest>> unitToExceptionDests,
Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
boolean omitExceptingUnitEdges)
Method to compute the edges corresponding to exceptional control flow.
|
protected Map<Unit,Collection<ExceptionalUnitGraph.ExceptionDest>> |
ExceptionalUnitGraph.buildExceptionDests(ThrowAnalysis throwAnalysis)
Utility method used in the construction of
UnitGraph variants which include
exceptional control flow. |
protected Map<Unit,Collection<ExceptionalUnitGraph.ExceptionDest>> |
ExceptionalUnitGraph.buildExceptionDests(ThrowAnalysis throwAnalysis)
Utility method used in the construction of
UnitGraph variants which include
exceptional control flow. |
protected Map<Unit,List<Unit>> |
UnitGraph.combineMapValues(Map<Unit,List<Unit>> mapA,
Map<Unit,List<Unit>> mapB)
|
protected Map<Unit,List<Unit>> |
UnitGraph.combineMapValues(Map<Unit,List<Unit>> mapA,
Map<Unit,List<Unit>> mapB)
|
protected Map<Unit,List<Unit>> |
UnitGraph.combineMapValues(Map<Unit,List<Unit>> mapA,
Map<Unit,List<Unit>> mapB)
|
protected Map<Unit,List<Unit>> |
UnitGraph.combineMapValues(Map<Unit,List<Unit>> mapA,
Map<Unit,List<Unit>> mapB)
|
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)
|
protected FlowSet<Unit> |
DominatorAnalysis.entryInitialFlow()
Deprecated.
|
protected FlowSet<Unit> |
PostDominatorAnalysis.entryInitialFlow()
Deprecated.
|
protected FlowSet<Unit> |
PostDominatorAnalysis.entryInitialFlow()
Deprecated.
|
protected FlowSet<Unit> |
DominatorAnalysis.entryInitialFlow()
Deprecated.
|
List<Unit> |
ExceptionalUnitGraph.getExceptionalPredsOf(Unit u) |
List<Unit> |
ExceptionalUnitGraph.getExceptionalPredsOf(Unit u) |
List<Unit> |
ExceptionalUnitGraph.getExceptionalSuccsOf(Unit u) |
List<Unit> |
ExceptionalUnitGraph.getExceptionalSuccsOf(Unit u) |
List<Unit> |
UnitGraph.getExtendedBasicBlockPathBetween(Unit from,
Unit to)
Look for a path in graph, from def to use.
|
List<Unit> |
UnitGraph.getExtendedBasicBlockPathBetween(Unit from,
Unit to)
Look for a path in graph, from def to use.
|
List<Unit> |
UnitGraph.getHeads() |
List<Unit> |
UnitGraph.getHeads() |
List<Unit> |
UnitGraph.getPredsOf(Unit u) |
List<Unit> |
UnitGraph.getPredsOf(Unit u) |
List<Unit> |
UnitGraph.getSuccsOf(Unit u) |
List<Unit> |
UnitGraph.getSuccsOf(Unit u) |
List<Unit> |
UnitGraph.getTails() |
List<Unit> |
UnitGraph.getTails() |
List<Unit> |
ExceptionalUnitGraph.getUnexceptionalPredsOf(Unit u) |
List<Unit> |
ExceptionalUnitGraph.getUnexceptionalPredsOf(Unit u) |
List<Unit> |
ExceptionalUnitGraph.getUnexceptionalSuccsOf(Unit u) |
List<Unit> |
ExceptionalUnitGraph.getUnexceptionalSuccsOf(Unit u) |
Iterator<Unit> |
Block.iterator()
Returns an iterator for the linear chain of Units that make up the block.
|
Iterator<Unit> |
UnitGraph.iterator() |
Iterator<Unit> |
Block.iterator()
Returns an iterator for the linear chain of Units that make up the block.
|
Iterator<Unit> |
UnitGraph.iterator() |
protected FlowSet<Unit> |
DominatorAnalysis.newInitialFlow()
Deprecated.
|
protected FlowSet<Unit> |
PostDominatorAnalysis.newInitialFlow()
Deprecated.
|
protected FlowSet<Unit> |
PostDominatorAnalysis.newInitialFlow()
Deprecated.
|
protected FlowSet<Unit> |
DominatorAnalysis.newInitialFlow()
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
protected void |
UnitGraph.addEdge(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
Unit head,
Unit tail)
Utility method for adding an edge to maps representing the CFG.
|
protected void |
UnitGraph.addEdge(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
Unit head,
Unit tail)
Utility method for adding an edge to maps representing the CFG.
|
protected void |
DominatorAnalysis.flowThrough(FlowSet<Unit> in,
Unit s,
FlowSet<Unit> out)
Deprecated.
|
protected void |
PostDominatorAnalysis.flowThrough(FlowSet<Unit> in,
Unit s,
FlowSet<Unit> out)
Deprecated.
|
protected void |
PostDominatorAnalysis.flowThrough(FlowSet<Unit> in,
Unit s,
FlowSet<Unit> out)
Deprecated.
|
protected void |
DominatorAnalysis.flowThrough(FlowSet<Unit> in,
Unit s,
FlowSet<Unit> out)
Deprecated.
|
List<Unit> |
ExceptionalUnitGraph.getExceptionalPredsOf(Unit u) |
List<Unit> |
ExceptionalUnitGraph.getExceptionalPredsOf(Unit u) |
List<Unit> |
ExceptionalUnitGraph.getExceptionalSuccsOf(Unit u) |
List<Unit> |
ExceptionalUnitGraph.getExceptionalSuccsOf(Unit u) |
Collection<ExceptionalUnitGraph.ExceptionDest> |
ExceptionalUnitGraph.getExceptionDests(Unit u)
Returns a collection of
ExceptionDest objects which represent how exceptions thrown by a
specified unit will be handled. |
Collection<ExceptionalUnitGraph.ExceptionDest> |
ExceptionalUnitGraph.getExceptionDests(Unit u)
Returns a collection of
ExceptionDest objects which represent how exceptions thrown by a
specified unit will be handled. |
List<Unit> |
UnitGraph.getExtendedBasicBlockPathBetween(Unit from,
Unit to)
Look for a path in graph, from def to use.
|
List<Unit> |
UnitGraph.getExtendedBasicBlockPathBetween(Unit from,
Unit to)
Look for a path in graph, from def to use.
|
Unit |
Block.getPredOf(Unit aItem)
Returns the Unit occurring immediately before some other Unit in the block.
|
Unit |
Block.getPredOf(Unit aItem)
Returns the Unit occurring immediately before some other Unit in the block.
|
List<Unit> |
UnitGraph.getPredsOf(Unit u) |
List<Unit> |
UnitGraph.getPredsOf(Unit u) |
Unit |
Block.getSuccOf(Unit aItem)
Returns the Unit occurring immediately after some other Unit in the block.
|
Unit |
Block.getSuccOf(Unit aItem)
Returns the Unit occurring immediately after some other Unit in the block.
|
List<Unit> |
UnitGraph.getSuccsOf(Unit u) |
List<Unit> |
UnitGraph.getSuccsOf(Unit u) |
List<Unit> |
ExceptionalUnitGraph.getUnexceptionalPredsOf(Unit u) |
List<Unit> |
ExceptionalUnitGraph.getUnexceptionalPredsOf(Unit u) |
List<Unit> |
ExceptionalUnitGraph.getUnexceptionalSuccsOf(Unit u) |
List<Unit> |
ExceptionalUnitGraph.getUnexceptionalSuccsOf(Unit u) |
void |
Block.insertAfter(Unit toInsert,
Unit point)
Inserts a Unit after some other Unit in the Block.
|
void |
Block.insertAfter(Unit toInsert,
Unit point)
Inserts a Unit after some other Unit in the Block.
|
void |
Block.insertBefore(Unit toInsert,
Unit point)
Inserts a Unit before some other Unit in this block.
|
void |
Block.insertBefore(Unit toInsert,
Unit point)
Inserts a Unit before some other Unit in this block.
|
boolean |
Block.remove(Unit item)
Removes a Unit occurring before some other Unit in the Block.
|
boolean |
Block.remove(Unit item)
Removes a Unit occurring before some other Unit in the Block.
|
Modifier and Type | Method and Description |
---|---|
protected void |
UnitGraph.addEdge(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
Unit head,
Unit tail)
Utility method for adding an edge to maps representing the CFG.
|
protected void |
UnitGraph.addEdge(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
Unit head,
Unit tail)
Utility method for adding an edge to maps representing the CFG.
|
protected void |
UnitGraph.addEdge(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
Unit head,
Unit tail)
Utility method for adding an edge to maps representing the CFG.
|
protected void |
UnitGraph.addEdge(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
Unit head,
Unit tail)
Utility method for adding an edge to maps representing the CFG.
|
protected void |
UnitGraph.addEdge(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
Unit head,
Unit tail)
Utility method for adding an edge to maps representing the CFG.
|
protected void |
UnitGraph.addEdge(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
Unit head,
Unit tail)
Utility method for adding an edge to maps representing the CFG.
|
protected void |
UnitGraph.addEdge(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
Unit head,
Unit tail)
Utility method for adding an edge to maps representing the CFG.
|
protected void |
UnitGraph.addEdge(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
Unit head,
Unit tail)
Utility method for adding an edge to maps representing the CFG.
|
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 void |
ClassicCompleteUnitGraph.buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Method to compute the edges corresponding to exceptional
control flow.
|
protected void |
ClassicCompleteUnitGraph.buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Method to compute the edges corresponding to exceptional
control flow.
|
protected void |
ClassicCompleteUnitGraph.buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Method to compute the edges corresponding to exceptional
control flow.
|
protected void |
ClassicCompleteUnitGraph.buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Method to compute the edges corresponding to exceptional
control flow.
|
protected void |
TrapUnitGraph.buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Method to compute the edges corresponding to exceptional
control flow.
|
protected void |
TrapUnitGraph.buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Method to compute the edges corresponding to exceptional
control flow.
|
protected void |
TrapUnitGraph.buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Method to compute the edges corresponding to exceptional
control flow.
|
protected void |
TrapUnitGraph.buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Method to compute the edges corresponding to exceptional
control flow.
|
protected void |
TrapUnitGraph.buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Method to compute the edges corresponding to exceptional
control flow.
|
protected void |
TrapUnitGraph.buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Method to compute the edges corresponding to exceptional
control flow.
|
protected void |
TrapUnitGraph.buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Method to compute the edges corresponding to exceptional
control flow.
|
protected void |
TrapUnitGraph.buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Method to compute the edges corresponding to exceptional
control flow.
|
protected void |
ClassicCompleteUnitGraph.buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Method to compute the edges corresponding to exceptional
control flow.
|
protected void |
ClassicCompleteUnitGraph.buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Method to compute the edges corresponding to exceptional
control flow.
|
protected void |
ClassicCompleteUnitGraph.buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Method to compute the edges corresponding to exceptional
control flow.
|
protected void |
ClassicCompleteUnitGraph.buildExceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Method to compute the edges corresponding to exceptional
control flow.
|
protected Set<Unit> |
ExceptionalUnitGraph.buildExceptionalEdges(ThrowAnalysis throwAnalysis,
Map<Unit,Collection<ExceptionalUnitGraph.ExceptionDest>> unitToExceptionDests,
Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
boolean omitExceptingUnitEdges)
Method to compute the edges corresponding to exceptional control flow.
|
protected Set<Unit> |
ExceptionalUnitGraph.buildExceptionalEdges(ThrowAnalysis throwAnalysis,
Map<Unit,Collection<ExceptionalUnitGraph.ExceptionDest>> unitToExceptionDests,
Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
boolean omitExceptingUnitEdges)
Method to compute the edges corresponding to exceptional control flow.
|
protected Set<Unit> |
ExceptionalUnitGraph.buildExceptionalEdges(ThrowAnalysis throwAnalysis,
Map<Unit,Collection<ExceptionalUnitGraph.ExceptionDest>> unitToExceptionDests,
Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
boolean omitExceptingUnitEdges)
Method to compute the edges corresponding to exceptional control flow.
|
protected Set<Unit> |
ExceptionalUnitGraph.buildExceptionalEdges(ThrowAnalysis throwAnalysis,
Map<Unit,Collection<ExceptionalUnitGraph.ExceptionDest>> unitToExceptionDests,
Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
boolean omitExceptingUnitEdges)
Method to compute the edges corresponding to exceptional control flow.
|
protected Set<Unit> |
ExceptionalUnitGraph.buildExceptionalEdges(ThrowAnalysis throwAnalysis,
Map<Unit,Collection<ExceptionalUnitGraph.ExceptionDest>> unitToExceptionDests,
Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
boolean omitExceptingUnitEdges)
Method to compute the edges corresponding to exceptional control flow.
|
protected Set<Unit> |
ExceptionalUnitGraph.buildExceptionalEdges(ThrowAnalysis throwAnalysis,
Map<Unit,Collection<ExceptionalUnitGraph.ExceptionDest>> unitToExceptionDests,
Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
boolean omitExceptingUnitEdges)
Method to compute the edges corresponding to exceptional control flow.
|
protected Set<Unit> |
ExceptionalUnitGraph.buildExceptionalEdges(ThrowAnalysis throwAnalysis,
Map<Unit,Collection<ExceptionalUnitGraph.ExceptionDest>> unitToExceptionDests,
Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
boolean omitExceptingUnitEdges)
Method to compute the edges corresponding to exceptional control flow.
|
protected Set<Unit> |
ExceptionalUnitGraph.buildExceptionalEdges(ThrowAnalysis throwAnalysis,
Map<Unit,Collection<ExceptionalUnitGraph.ExceptionDest>> unitToExceptionDests,
Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
boolean omitExceptingUnitEdges)
Method to compute the edges corresponding to exceptional control flow.
|
protected Set<Unit> |
ExceptionalUnitGraph.buildExceptionalEdges(ThrowAnalysis throwAnalysis,
Map<Unit,Collection<ExceptionalUnitGraph.ExceptionDest>> unitToExceptionDests,
Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
boolean omitExceptingUnitEdges)
Method to compute the edges corresponding to exceptional control flow.
|
protected Set<Unit> |
ExceptionalUnitGraph.buildExceptionalEdges(ThrowAnalysis throwAnalysis,
Map<Unit,Collection<ExceptionalUnitGraph.ExceptionDest>> unitToExceptionDests,
Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds,
boolean omitExceptingUnitEdges)
Method to compute the edges corresponding to exceptional control flow.
|
protected void |
UnitGraph.buildUnexceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Utility method for UnitGraph constructors.
|
protected void |
UnitGraph.buildUnexceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Utility method for UnitGraph constructors.
|
protected void |
UnitGraph.buildUnexceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Utility method for UnitGraph constructors.
|
protected void |
UnitGraph.buildUnexceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Utility method for UnitGraph constructors.
|
protected void |
UnitGraph.buildUnexceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Utility method for UnitGraph constructors.
|
protected void |
UnitGraph.buildUnexceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Utility method for UnitGraph constructors.
|
protected void |
UnitGraph.buildUnexceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Utility method for UnitGraph constructors.
|
protected void |
UnitGraph.buildUnexceptionalEdges(Map<Unit,List<Unit>> unitToSuccs,
Map<Unit,List<Unit>> unitToPreds)
Utility method for UnitGraph constructors.
|
protected Map<Unit,List<Unit>> |
UnitGraph.combineMapValues(Map<Unit,List<Unit>> mapA,
Map<Unit,List<Unit>> mapB)
|
protected Map<Unit,List<Unit>> |
UnitGraph.combineMapValues(Map<Unit,List<Unit>> mapA,
Map<Unit,List<Unit>> mapB)
|
protected Map<Unit,List<Unit>> |
UnitGraph.combineMapValues(Map<Unit,List<Unit>> mapA,
Map<Unit,List<Unit>> mapB)
|
protected Map<Unit,List<Unit>> |
UnitGraph.combineMapValues(Map<Unit,List<Unit>> mapA,
Map<Unit,List<Unit>> mapB)
|
protected Map<Unit,List<Unit>> |
UnitGraph.combineMapValues(Map<Unit,List<Unit>> mapA,
Map<Unit,List<Unit>> mapB)
|
protected Map<Unit,List<Unit>> |
UnitGraph.combineMapValues(Map<Unit,List<Unit>> mapA,
Map<Unit,List<Unit>> mapB)
|
protected Map<Unit,List<Unit>> |
UnitGraph.combineMapValues(Map<Unit,List<Unit>> mapA,
Map<Unit,List<Unit>> mapB)
|
protected Map<Unit,List<Unit>> |
UnitGraph.combineMapValues(Map<Unit,List<Unit>> mapA,
Map<Unit,List<Unit>> mapB)
|
protected void |
DominatorAnalysis.copy(FlowSet<Unit> source,
FlowSet<Unit> dest)
Deprecated.
|
protected void |
DominatorAnalysis.copy(FlowSet<Unit> source,
FlowSet<Unit> dest)
Deprecated.
|
protected void |
PostDominatorAnalysis.copy(FlowSet<Unit> source,
FlowSet<Unit> dest)
Deprecated.
|
protected void |
PostDominatorAnalysis.copy(FlowSet<Unit> source,
FlowSet<Unit> dest)
Deprecated.
|
protected void |
PostDominatorAnalysis.copy(FlowSet<Unit> source,
FlowSet<Unit> dest)
Deprecated.
|
protected void |
PostDominatorAnalysis.copy(FlowSet<Unit> source,
FlowSet<Unit> dest)
Deprecated.
|
protected void |
DominatorAnalysis.copy(FlowSet<Unit> source,
FlowSet<Unit> dest)
Deprecated.
|
protected void |
DominatorAnalysis.copy(FlowSet<Unit> source,
FlowSet<Unit> dest)
Deprecated.
|
protected void |
DominatorAnalysis.flowThrough(FlowSet<Unit> in,
Unit s,
FlowSet<Unit> out)
Deprecated.
|
protected void |
DominatorAnalysis.flowThrough(FlowSet<Unit> in,
Unit s,
FlowSet<Unit> out)
Deprecated.
|
protected void |
PostDominatorAnalysis.flowThrough(FlowSet<Unit> in,
Unit s,
FlowSet<Unit> out)
Deprecated.
|
protected void |
PostDominatorAnalysis.flowThrough(FlowSet<Unit> in,
Unit s,
FlowSet<Unit> out)
Deprecated.
|
protected void |
PostDominatorAnalysis.flowThrough(FlowSet<Unit> in,
Unit s,
FlowSet<Unit> out)
Deprecated.
|
protected void |
PostDominatorAnalysis.flowThrough(FlowSet<Unit> in,
Unit s,
FlowSet<Unit> out)
Deprecated.
|
protected void |
DominatorAnalysis.flowThrough(FlowSet<Unit> in,
Unit s,
FlowSet<Unit> out)
Deprecated.
|
protected void |
DominatorAnalysis.flowThrough(FlowSet<Unit> in,
Unit s,
FlowSet<Unit> out)
Deprecated.
|
protected void |
DominatorAnalysis.merge(FlowSet<Unit> in1,
FlowSet<Unit> in2,
FlowSet<Unit> out)
Deprecated.
|
protected void |
DominatorAnalysis.merge(FlowSet<Unit> in1,
FlowSet<Unit> in2,
FlowSet<Unit> out)
Deprecated.
|
protected void |
DominatorAnalysis.merge(FlowSet<Unit> in1,
FlowSet<Unit> in2,
FlowSet<Unit> out)
Deprecated.
|
protected void |
PostDominatorAnalysis.merge(FlowSet<Unit> in1,
FlowSet<Unit> in2,
FlowSet<Unit> out)
Deprecated.
|
protected void |
PostDominatorAnalysis.merge(FlowSet<Unit> in1,
FlowSet<Unit> in2,
FlowSet<Unit> out)
Deprecated.
|
protected void |
PostDominatorAnalysis.merge(FlowSet<Unit> in1,
FlowSet<Unit> in2,
FlowSet<Unit> out)
Deprecated.
|
protected void |
PostDominatorAnalysis.merge(FlowSet<Unit> in1,
FlowSet<Unit> in2,
FlowSet<Unit> out)
Deprecated.
|
protected void |
PostDominatorAnalysis.merge(FlowSet<Unit> in1,
FlowSet<Unit> in2,
FlowSet<Unit> out)
Deprecated.
|
protected void |
PostDominatorAnalysis.merge(FlowSet<Unit> in1,
FlowSet<Unit> in2,
FlowSet<Unit> out)
Deprecated.
|
protected void |
DominatorAnalysis.merge(FlowSet<Unit> in1,
FlowSet<Unit> in2,
FlowSet<Unit> out)
Deprecated.
|
protected void |
DominatorAnalysis.merge(FlowSet<Unit> in1,
FlowSet<Unit> in2,
FlowSet<Unit> out)
Deprecated.
|
protected void |
DominatorAnalysis.merge(FlowSet<Unit> in1,
FlowSet<Unit> in2,
FlowSet<Unit> out)
Deprecated.
|
Constructor and Description |
---|
Block(Unit aHead,
Unit aTail,
Body aBody,
int aIndexInMethod,
int aBlockLength,
BlockGraph aBlockGraph)
Constructs a Block in the context of a BlockGraph, and enclosing Body instances.
|
Block(Unit aHead,
Unit aTail,
Body aBody,
int aIndexInMethod,
int aBlockLength,
BlockGraph aBlockGraph)
Constructs a Block in the context of a BlockGraph, and enclosing Body instances.
|
Modifier and Type | Field and Description |
---|---|
protected Hashtable<Unit,Unit> |
EnhancedUnitGraph.handler2header |
protected Hashtable<Unit,Unit> |
EnhancedUnitGraph.handler2header |
protected Hashtable<Unit,Unit> |
EnhancedUnitGraph.handler2header |
protected Hashtable<Unit,Unit> |
EnhancedUnitGraph.handler2header |
protected Hashtable<Unit,Unit> |
EnhancedUnitGraph.try2nop |
protected Hashtable<Unit,Unit> |
EnhancedUnitGraph.try2nop |
protected Hashtable<Unit,Unit> |
EnhancedUnitGraph.try2nop |
protected Hashtable<Unit,Unit> |
EnhancedUnitGraph.try2nop |
Modifier and Type | Method and Description |
---|---|
Unit |
IRegion.getFirst() |
Unit |
PDGRegion.getFirst() |
Unit |
Region.getFirst() |
Unit |
Region.getFirst() |
Unit |
PDGRegion.getFirst() |
Unit |
IRegion.getFirst() |
Unit |
IRegion.getLast() |
Unit |
PDGRegion.getLast() |
Unit |
Region.getLast() |
Unit |
Region.getLast() |
Unit |
PDGRegion.getLast() |
Unit |
IRegion.getLast() |
Modifier and Type | Method and Description |
---|---|
Hashtable<Unit,Region> |
RegionAnalysis.getUnit2RegionMap() |
Hashtable<Unit,Region> |
RegionAnalysis.getUnit2RegionMap() |
List<Unit> |
IRegion.getUnits() |
List<Unit> |
PDGRegion.getUnits() |
List<Unit> |
Region.getUnits() |
List<Unit> |
Region.getUnits() |
List<Unit> |
PDGRegion.getUnits() |
List<Unit> |
IRegion.getUnits() |
List<Unit> |
IRegion.getUnits(Unit from,
Unit to) |
List<Unit> |
PDGRegion.getUnits(Unit from,
Unit to) |
List<Unit> |
Region.getUnits(Unit from,
Unit to) |
List<Unit> |
Region.getUnits(Unit from,
Unit to) |
List<Unit> |
PDGRegion.getUnits(Unit from,
Unit to) |
List<Unit> |
IRegion.getUnits(Unit from,
Unit to) |
Modifier and Type | Method and Description |
---|---|
List<Unit> |
IRegion.getUnits(Unit from,
Unit to) |
List<Unit> |
PDGRegion.getUnits(Unit from,
Unit to) |
List<Unit> |
Region.getUnits(Unit from,
Unit to) |
List<Unit> |
Region.getUnits(Unit from,
Unit to) |
List<Unit> |
PDGRegion.getUnits(Unit from,
Unit to) |
List<Unit> |
IRegion.getUnits(Unit from,
Unit to) |
boolean |
IRegion.occursBefore(Unit u1,
Unit u2) |
boolean |
PDGRegion.occursBefore(Unit u1,
Unit u2) |
boolean |
Region.occursBefore(Unit u1,
Unit u2) |
boolean |
Region.occursBefore(Unit u1,
Unit u2) |
boolean |
PDGRegion.occursBefore(Unit u1,
Unit u2) |
boolean |
IRegion.occursBefore(Unit u1,
Unit u2) |
PDGNode |
PDGRegion.unit2PDGNode(Unit u) |
PDGNode |
PDGRegion.unit2PDGNode(Unit u) |
Modifier and Type | Class and Description |
---|---|
class |
BranchedFlowAnalysis<N extends Unit,A>
Abstract class providing functionality for branched flow analysis.
|
class |
BranchedFlowAnalysis<N extends Unit,A>
Abstract class providing functionality for branched flow analysis.
|
Modifier and Type | Field and Description |
---|---|
Unit |
UnitValueBoxPair.unit |
protected Unit |
ValueUnitPair.unit |
Unit |
UnitValueBoxPair.unit |
protected Unit |
ValueUnitPair.unit |
Modifier and Type | Field and Description |
---|---|
protected Map<Unit,List<A>> |
BranchedFlowAnalysis.unitToAfterBranchFlow |
protected Map<Unit,List<A>> |
BranchedFlowAnalysis.unitToAfterBranchFlow |
protected Map<Unit,List<A>> |
BranchedFlowAnalysis.unitToAfterFallFlow
Maps graph nodes to OUT sets.
|
protected Map<Unit,List<A>> |
BranchedFlowAnalysis.unitToAfterFallFlow
Maps graph nodes to OUT sets.
|
protected Map<Unit,List> |
GuaranteedDefs.unitToGuaranteedDefs |
protected Map<Unit,List> |
GuaranteedDefs.unitToGuaranteedDefs |
Modifier and Type | Method and Description |
---|---|
Unit |
LocalUnitPair.getUnit() |
Unit |
UnitValueBoxPair.getUnit() |
Unit |
ValueUnitPair.getUnit() |
Unit |
UnitValueBoxPair.getUnit() |
Unit |
LocalUnitPair.getUnit() |
Unit |
ValueUnitPair.getUnit() |
Modifier and Type | Method and Description |
---|---|
List<Unit> |
CombinedDUAnalysis.getDefsOf(Local l) |
List<Unit> |
LocalDefs.getDefsOf(Local l)
Returns the definition sites for a Local merged over all points
in a method.
|
List<Unit> |
SimpleLocalDefs.getDefsOf(Local l) |
List<Unit> |
SmartLocalDefs.getDefsOf(Local l) |
List<Unit> |
SimpleLocalDefs.getDefsOf(Local l) |
List<Unit> |
CombinedDUAnalysis.getDefsOf(Local l) |
List<Unit> |
LocalDefs.getDefsOf(Local l)
Returns the definition sites for a Local merged over all points
in a method.
|
List<Unit> |
SmartLocalDefs.getDefsOf(Local l) |
List<Unit> |
CombinedDUAnalysis.getDefsOfAt(Local l,
Unit s) |
List<Unit> |
LocalDefs.getDefsOfAt(Local l,
Unit s)
Returns the definition sites for a Local at a certain
point (Unit) in a method.
|
List<Unit> |
SimpleLocalDefs.getDefsOfAt(Local l,
Unit s) |
List<Unit> |
SmartLocalDefs.getDefsOfAt(Local l,
Unit s) |
List<Unit> |
SimpleLocalDefs.getDefsOfAt(Local l,
Unit s) |
List<Unit> |
CombinedDUAnalysis.getDefsOfAt(Local l,
Unit s) |
List<Unit> |
LocalDefs.getDefsOfAt(Local l,
Unit s)
Returns the definition sites for a Local at a certain
point (Unit) in a method.
|
List<Unit> |
SmartLocalDefs.getDefsOfAt(Local l,
Unit s) |
Modifier and Type | Method and Description |
---|---|
boolean |
ValueUnitPair.canContainUnit(Unit u) |
boolean |
ValueUnitPair.canContainUnit(Unit u) |
protected abstract void |
BranchedFlowAnalysis.flowThrough(A in,
Unit s,
List<A> fallOut,
List<A> branchOuts)
Given the merge of the
in sets,
compute the fallOut and branchOuts
set for s . |
protected abstract void |
BranchedFlowAnalysis.flowThrough(A in,
Unit s,
List<A> fallOut,
List<A> branchOuts)
Given the merge of the
in sets,
compute the fallOut and branchOuts
set for s . |
protected void |
InitAnalysis.flowThrough(FlowSet<Local> in,
Unit unit,
FlowSet<Local> out) |
protected void |
InitAnalysis.flowThrough(FlowSet<Local> in,
Unit unit,
FlowSet<Local> out) |
protected void |
CombinedDUAnalysis.flowThrough(FlowSet<ValueBox> out,
Unit u,
FlowSet<ValueBox> in) |
protected void |
CombinedDUAnalysis.flowThrough(FlowSet<ValueBox> out,
Unit u,
FlowSet<ValueBox> in) |
List<A> |
BranchedFlowAnalysis.getBranchFlowAfter(Unit s) |
List<A> |
BranchedFlowAnalysis.getBranchFlowAfter(Unit s) |
List<Unit> |
CombinedDUAnalysis.getDefsOfAt(Local l,
Unit s) |
List<Unit> |
LocalDefs.getDefsOfAt(Local l,
Unit s)
Returns the definition sites for a Local at a certain
point (Unit) in a method.
|
List<Unit> |
SimpleLocalDefs.getDefsOfAt(Local l,
Unit s) |
List<Unit> |
SmartLocalDefs.getDefsOfAt(Local l,
Unit s) |
List<Unit> |
SimpleLocalDefs.getDefsOfAt(Local l,
Unit s) |
List<Unit> |
CombinedDUAnalysis.getDefsOfAt(Local l,
Unit s) |
List<Unit> |
LocalDefs.getDefsOfAt(Local l,
Unit s)
Returns the definition sites for a Local at a certain
point (Unit) in a method.
|
List<Unit> |
SmartLocalDefs.getDefsOfAt(Local l,
Unit s) |
A |
BranchedFlowAnalysis.getFallFlowAfter(Unit s) |
A |
BranchedFlowAnalysis.getFallFlowAfter(Unit s) |
List |
GuaranteedDefs.getGuaranteedDefs(Unit s)
Returns a list of locals guaranteed to be defined at (just
before) program point s.
|
List |
GuaranteedDefs.getGuaranteedDefs(Unit s)
Returns a list of locals guaranteed to be defined at (just
before) program point s.
|
List<Local> |
CombinedDUAnalysis.getLiveLocalsAfter(Unit u) |
List<Local> |
LiveLocals.getLiveLocalsAfter(Unit s)
Returns the list of Locals that are live after the specified
Unit.
|
List<Local> |
SimpleLiveLocals.getLiveLocalsAfter(Unit s) |
List<Local> |
CombinedDUAnalysis.getLiveLocalsAfter(Unit u) |
List<Local> |
SimpleLiveLocals.getLiveLocalsAfter(Unit s) |
List<Local> |
LiveLocals.getLiveLocalsAfter(Unit s)
Returns the list of Locals that are live after the specified
Unit.
|
List<Local> |
CombinedDUAnalysis.getLiveLocalsBefore(Unit u) |
List<Local> |
LiveLocals.getLiveLocalsBefore(Unit s)
Returns the list of Locals that are live before the specified
Unit.
|
List<Local> |
SimpleLiveLocals.getLiveLocalsBefore(Unit s) |
List<Local> |
CombinedDUAnalysis.getLiveLocalsBefore(Unit u) |
List<Local> |
SimpleLiveLocals.getLiveLocalsBefore(Unit s) |
List<Local> |
LiveLocals.getLiveLocalsBefore(Unit s)
Returns the list of Locals that are live before the specified
Unit.
|
List<UnitValueBoxPair> |
CombinedDUAnalysis.getUsesOf(Unit u) |
List<UnitValueBoxPair> |
LocalUses.getUsesOf(Unit s)
Returns a list of the Units that use the Local that is
defined by a given Unit.
|
List<UnitValueBoxPair> |
SimpleLocalUses.getUsesOf(Unit s)
Uses for a Local defined at a given Unit are returned as
a list of UnitValueBoxPairs each containing a Unit that use the
local and the Local itself wrapped in a ValueBox.
|
List<UnitValueBoxPair> |
CombinedDUAnalysis.getUsesOf(Unit u) |
List<UnitValueBoxPair> |
SimpleLocalUses.getUsesOf(Unit s)
Uses for a Local defined at a given Unit are returned as
a list of UnitValueBoxPairs each containing a Unit that use the
local and the Local itself wrapped in a ValueBox.
|
List<UnitValueBoxPair> |
LocalUses.getUsesOf(Unit s)
Returns a list of the Units that use the Local that is
defined by a given Unit.
|
void |
ValueUnitPair.setUnit(Unit unit) |
void |
ValueUnitPair.setUnit(Unit unit) |
Constructor and Description |
---|
LocalUnitPair(Local local,
Unit unit)
Constructs a LocalUnitPair from a Unit object and a Local object.
|
LocalUnitPair(Local local,
Unit unit)
Constructs a LocalUnitPair from a Unit object and a Local object.
|
UnitValueBoxPair(Unit unit,
ValueBox valueBox)
Constructs a UnitValueBoxPair form a Unit object and a ValueBox object.
|
UnitValueBoxPair(Unit unit,
ValueBox valueBox)
Constructs a UnitValueBoxPair form a Unit object and a ValueBox object.
|
ValueUnitPair(Value value,
Unit unit)
Constructs a ValueUnitPair from a Unit object and a Value object.
|
ValueUnitPair(Value value,
Unit unit)
Constructs a ValueUnitPair from a Unit object and a Value object.
|
Modifier and Type | Method and Description |
---|---|
Set<Map.Entry<Unit,T>> |
UnitMap.entrySet() |
Set<Map.Entry<Unit,T>> |
UnitMap.entrySet() |
Set<Unit> |
UnitMap.keySet() |
Set<Unit> |
UnitMap.keySet() |
Modifier and Type | Method and Description |
---|---|
protected abstract T |
UnitMap.mapTo(Unit unit)
maps a unit to an object.
|
protected abstract T |
UnitMap.mapTo(Unit unit)
maps a unit to an object.
|
T |
UnitMap.put(Unit key,
T value) |
T |
UnitMap.put(Unit key,
T value) |
Modifier and Type | Method and Description |
---|---|
void |
UnitMap.putAll(Map<? extends Unit,? extends T> t) |
void |
UnitMap.putAll(Map<? extends Unit,? extends T> t) |
Constructor and Description |
---|
UnitValidationException(Unit concerned,
Body body,
String strMessage)
Creates a new ValidationException, treated as an error.
|
UnitValidationException(Unit concerned,
Body body,
String strMessage)
Creates a new ValidationException, treated as an error.
|
UnitValidationException(Unit concerned,
Body body,
String strMessage,
boolean isWarning)
Creates a new ValidationException.
|
UnitValidationException(Unit concerned,
Body body,
String strMessage,
boolean isWarning)
Creates a new ValidationException.
|