| Package | Description |
|---|---|
| soot |
Base Soot classes, shared by different intermediate representations.
|
| soot.coffi |
Contains classes from the Coffi tool, by Clark Verbrugge.
|
| soot.javaToJimple | |
| soot.jimple |
Public classes for the Jimple intermediate representation.
|
| soot.jimple.toolkits.annotation |
A toolkit to annotate classfiles with array and null bounds check information.
|
| soot.jimple.toolkits.annotation.arraycheck |
Classes that carry out an analysis to determine whether or not array bounds
checks are necessary.
|
| soot.jimple.toolkits.annotation.callgraph | |
| soot.jimple.toolkits.annotation.defs | |
| soot.jimple.toolkits.annotation.liveness | |
| soot.jimple.toolkits.annotation.logic | |
| soot.jimple.toolkits.annotation.nullcheck |
Classes that carry out an analysis to determine whether or not null pointer
checks are necessary.
|
| soot.jimple.toolkits.annotation.parity | |
| soot.jimple.toolkits.annotation.profiling | |
| soot.jimple.toolkits.base |
A toolkit to optimize the Jimple IR.
|
| soot.jimple.toolkits.callgraph | |
| soot.jimple.toolkits.graph |
A set of utility classes for program transformation and optimizations.
|
| 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.typing |
Implements a typing algorithm for Jimple.
|
| soot.toolkits.exceptions | |
| soot.toolkits.graph |
Toolkit to produce and manipulate various types of control flow
graphs.
|
| soot.toolkits.graph.interaction | |
| soot.toolkits.graph.pdg | |
| soot.toolkits.scalar |
A number of scalar optimizations, and the flow analysis framework.
|
| soot.util |
Generally useful utility classes for Soot.
|
| Modifier and Type | Method and Description |
|---|---|
Body |
SootMethod.getActiveBody()
Retrieves the active body for this method.
|
Body |
UnknownMethodSource.getBody(SootMethod m,
java.lang.String phaseName) |
Body |
MethodSource.getBody(SootMethod m,
java.lang.String phaseName)
Returns a filled-out body for the given SootMethod.
|
Body |
SootMethod.retrieveActiveBody()
Returns the active body if present, else constructs an active body and returns that.
|
| Modifier and Type | Method and Description |
|---|---|
void |
Transform.apply(Body b) |
void |
Pack.apply(Body b) |
static java.util.List |
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 java.util.Set |
TrapManager.getTrappedUnitsOf(Body b)
Returns a set of units which lie inside the range of any trap.
|
static java.util.List<Trap> |
TrapManager.getTrapsAt(Unit unit,
Body b)
Returns the list of traps caught at Unit u in Body b.
|
java.util.Map<java.lang.Object,java.lang.Object> |
Body.importBodyContentsFrom(Body b)
Copies the contents of the given Body into this one.
|
protected void |
Pack.internalApply(Body b) |
protected void |
JimpleBodyPack.internalApply(Body b) |
protected void |
JavaToJimpleBodyPack.internalApply(Body b) |
protected void |
BodyPack.internalApply(Body b) |
protected abstract void |
BodyTransformer.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options)
This method is called to perform the transformation itself.
|
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 |
Printer.printTo(Body b,
java.io.PrintWriter out)
Prints out the method corresponding to b Body, (declaration and body),
in the textual format corresponding to the IR used to encode b body.
|
void |
SootMethod.setActiveBody(Body body)
Sets the active body for this method.
|
static void |
TrapManager.splitTrapsAgainst(Body b,
Unit rangeStart,
Unit rangeEnd)
Splits all traps so that they do not cross the range rangeStart - rangeEnd.
|
void |
BodyTransformer.transform(Body b) |
void |
BodyTransformer.transform(Body b,
java.lang.String phaseName) |
void |
BodyTransformer.transform(Body b,
java.lang.String phaseName,
java.util.Map options)
Called by clients of the transformation.
|
| Constructor and Description |
|---|
BriefUnitPrinter(Body body) |
LabeledUnitPrinter(Body b) |
NormalUnitPrinter(Body body) |
| Modifier and Type | Method and Description |
|---|---|
Body |
CoffiMethodSource.getBody(SootMethod m,
java.lang.String phaseName) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
Util.declaresLocal(Body b,
java.lang.String localName) |
Local |
Util.getLocal(Body b,
java.lang.String name) |
| Constructor and Description |
|---|
LocalGenerator(Body b) |
| Modifier and Type | Class and Description |
|---|---|
class |
JimpleBody
Implementation of the Body class for the Jimple IR.
|
class |
StmtBody
Abstract base class for Body's on Stmts (Jimple and Grimp).
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
DominatorsTagger.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map opts) |
protected void |
AvailExprTagger.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map opts) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
ArrayBoundsChecker.internalTransform(Body body,
java.lang.String phaseName,
java.util.Map opts) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
CallGraphTagger.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
ReachingDefsTagger.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
LiveVarsTagger.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
LoopInvariantFinder.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options)
this one uses the side effect tester
|
protected void |
LoopFinder.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
NullPointerColorer.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options) |
protected void |
NullPointerChecker.internalTransform(Body body,
java.lang.String phaseName,
java.util.Map options) |
void |
NullCheckEliminator.internalTransform(Body body,
java.lang.String phaseName,
java.util.Map options) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
ParityTagger.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
ProfilingGenerator.internalTransform(Body body,
java.lang.String phaseName,
java.util.Map opts) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
ExceptionChecker.checkInvoke(Body b,
InvokeStmt is) |
protected void |
ExceptionChecker.checkInvokeExpr(Body b,
InvokeExpr ie,
Stmt s) |
protected void |
ExceptionChecker.checkThrow(Body b,
ThrowStmt ts) |
void |
ThisInliner.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options) |
void |
PartialConstructorFolder.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options)
This method pushes all newExpr down to be the stmt directly before every
invoke of the init only if they are in the types list
|
void |
JimpleConstructorFolder.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options)
This method pushes all newExpr down to be the stmt directly before every
invoke of the init
|
protected void |
ExceptionChecker.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options) |
protected void |
Aggregator.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options)
Traverse the statements in the given body, looking for
aggregation possibilities; that is, given a def d and a use u,
d has no other uses, u has no other defs, collapse d and u.
|
protected boolean |
ExceptionChecker.isExceptionCaught(Body b,
Stmt s,
RefType throwType) |
protected boolean |
ExceptionChecker.isThrowDeclared(Body b,
SootClass throwClass) |
protected boolean |
ExceptionChecker.isThrowInStmtRange(Body b,
Stmt begin,
Stmt end,
Stmt s) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
UnreachableMethodTransformer.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options) |
protected void |
ClinitElimTransformer.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
LoopConditionUnroller.internalTransform(Body body,
java.lang.String phaseName,
java.util.Map options)
unrolls conditions.
|
protected void |
CriticalEdgeRemover.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options)
performs critical edge-removing.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
SideEffectTagger.internalTransform(Body body,
java.lang.String phaseName,
java.util.Map options) |
protected void |
ParameterAliasTagger.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options) |
protected void |
FieldRWTagger.internalTransform(Body body,
java.lang.String phaseName,
java.util.Map options) |
protected void |
CastCheckEliminatorDumper.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
UnreachableCodeEliminator.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options) |
protected void |
UnconditionalBranchFolder.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options) |
protected void |
NopEliminator.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options)
Removes
NopStmts from the passed body (which must be
a JimpleBody). |
protected void |
LocalNameStandardizer.internalTransform(Body body,
java.lang.String phaseName,
java.util.Map options) |
protected void |
DeadAssignmentEliminator.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options)
Eliminates dead code in a linear fashion.
|
protected void |
CopyPropagator.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map opts)
Cascaded copy propagator.
|
protected void |
ConstantPropagatorAndFolder.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options) |
protected void |
ConditionalBranchFolder.internalTransform(Body body,
java.lang.String phaseName,
java.util.Map options) |
protected void |
CommonSubexpressionEliminator.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options)
Common subexpression eliminator.
|
| Constructor and Description |
|---|
FastAvailableExpressions(Body b,
SideEffectTester st)
Wrapper for AvailableExpressionsAnalysis.
|
SlowAvailableExpressions(Body b)
Wrapper for SlowAvailableExpressionsAnalysis.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
LazyCodeMotion.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map opts)
performs the lazy code motion.
|
protected void |
BusyCodeMotion.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map opts)
performs the busy code motion.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
TypeAssigner.internalTransform(Body b,
java.lang.String phaseName,
java.util.Map options)
Assign types to local variables.
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
TrapTightener.internalTransform(Body body,
java.lang.String phaseName,
java.util.Map options) |
| Modifier and Type | Field and Description |
|---|---|
protected Body |
UnitGraph.body |
protected Body |
BlockGraph.mBody |
| Modifier and Type | Method and Description |
|---|---|
Body |
UnitGraph.getBody() |
Body |
ExceptionalGraph.getBody()
Returns the
Body from which this graph was built. |
Body |
BlockGraph.getBody()
Returns the
Body this BlockGraph is derived from. |
Body |
Block.getBody()
Returns the Block's enclosing Body instance.
|
| Constructor and Description |
|---|
ArrayRefBlockGraph(Body body)
Constructs an
ArrayRefBlockGraph from the given
Body. |
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.
|
BriefBlockGraph(Body body)
Constructs a
BriefBlockGraph from a given Body. |
BriefUnitGraph(Body body)
Constructs a BriefUnitGraph given a Body instance.
|
ClassicCompleteBlockGraph(Body body)
Constructs a ClassicCompleteBlockGraph for the blocks
found by partitioning the the units of the provided
Body instance into basic blocks. |
ClassicCompleteUnitGraph(Body body)
Constructs the graph from a given Body instance.
|
CompleteBlockGraph(Body b) |
CompleteUnitGraph(Body b) |
ExceptionalBlockGraph(Body body)
Constructs an
ExceptionalBlockGraph for the
blocks found by partitioning the the units of the provided
Body instance into basic blocks. |
ExceptionalUnitGraph(Body body)
Constructs the graph from a given Body instance, using the
Scene's default ThrowAnalysis to estimate the
set of exceptions that each Unit might throw and a
default value, provided by the Options class, for the
omitExceptingUnitEdges parameter. |
ExceptionalUnitGraph(Body body,
boolean ignoredBogusParameter)
Allocates an
ExceptionalUnitGraph object
without initializing it. |
ExceptionalUnitGraph(Body body,
ThrowAnalysis throwAnalysis)
Constructs the graph from a given Body instance using the
passed
ThrowAnalysis and a default value, provided by
the Options class, for the
omitExceptingUnitEdges parameter. |
ExceptionalUnitGraph(Body body,
ThrowAnalysis throwAnalysis,
boolean omitExceptingUnitEdges)
Constructs the graph for a given Body instance, using the
ThrowAnalysis and omitExceptingUnitEdges
value that are passed as parameters. |
LoopNestTree(Body b)
Builds a loop nest tree from a method body using
LoopFinder. |
TrapUnitGraph(Body body)
Constructs the graph from a given Body instance.
|
UnitGraph(Body body)
Performs the work that is required to construct any sort of
UnitGraph.
|
ZonedBlockGraph(Body body)
Constructs a ZonedBlockGraph for the Units
comprising the passed
Body. |
| Modifier and Type | Method and Description |
|---|---|
void |
InteractionHandler.handleNewAnalysis(Transform t,
Body b) |
void |
InteractionHandler.handleTransformDone(Transform t,
Body b) |
| Modifier and Type | Field and Description |
|---|---|
protected Body |
HashMutablePDG.m_body |
protected Body |
RegionAnalysis.m_methodBody |
| Constructor and Description |
|---|
EnhancedBlockGraph(Body body) |
EnhancedUnitGraph(Body body) |
| Modifier and Type | Method and Description |
|---|---|
static void |
FastColorer.assignColorsToLocals(Body unitBody,
java.util.Map<Local,java.lang.Object> localToGroup,
java.util.Map<Local,java.lang.Integer> localToColor,
java.util.Map<java.lang.Object,java.lang.Integer> groupToColorCount)
Provides an economical coloring for the locals of
unitBody. |
protected void |
UnusedLocalEliminator.internalTransform(Body body,
java.lang.String phaseName,
java.util.Map options) |
protected void |
RoboVmLocalPacker.internalTransform(Body body,
java.lang.String phaseName,
java.util.Map options) |
protected void |
LocalSplitter.internalTransform(Body body,
java.lang.String phaseName,
java.util.Map options) |
protected void |
LocalPacker.internalTransform(Body body,
java.lang.String phaseName,
java.util.Map options) |
static void |
FastColorer.unsplitAssignColorsToLocals(Body unitBody,
java.util.Map<Local,java.lang.Object> localToGroup,
java.util.Map<Local,java.lang.Integer> localToColor,
java.util.Map<java.lang.Object,java.lang.Integer> groupToColorCount)
Provides a coloring for the locals of
unitBody, attempting to not
split locals assigned the same name in the original Jimple. |
| Constructor and Description |
|---|
SimpleLocalUses(Body body,
LocalDefs localDefs)
Construct the analysis from a method body and a LocalDefs
interface.
|
UnitInterferenceGraph(Body body,
java.util.Map<Local,java.lang.Object> localToGroup,
LiveLocals liveLocals) |
| Constructor and Description |
|---|
UnitMap(Body b)
maps each unit of this body to the result of
mapTo.before the mapping the method init is called.the internal hashtable is initialized without any parameter. |
UnitMap(Body b,
int initialCapacity)
maps each unit of this body to the result of
mapTo.before the mapping the method init is called.the internal hashtable is initialized to initialCapacity. |
UnitMap(Body b,
int initialCapacity,
float loadFactor)
maps each unit of this body to the result of
mapTo.before the mapping the method init is called.the internal hashtable is initialized to initialCapacity and
loadFactor. |
Copyright © 2012-2019 RoboVM AB. All Rights Reserved.