| Package | Description |
|---|---|
| soot |
Base Soot classes, shared by different intermediate representations.
|
| soot.shimple |
Public classes for the SSA Shimple intermediate representation.
|
| soot.shimple.internal |
Shimple internal messy stuff.
|
| soot.toolkits.graph |
Toolkit to produce and manipulate various types of control flow
graphs.
|
| soot.toolkits.graph.pdg |
| Modifier and Type | Field and Description |
|---|---|
protected Map<Block,Integer> |
AbstractJasminClass.blockToLogicalStackHeight |
protected Map<Block,Integer> |
AbstractJasminClass.blockToStackHeight |
| Modifier and Type | Field and Description |
|---|---|
protected DominatorsFinder<Block> |
DefaultShimpleFactory.dFinder |
protected DominanceFrontier<Block> |
DefaultShimpleFactory.dFrontier |
protected DominatorTree<Block> |
DefaultShimpleFactory.dTree |
protected ReversibleGraph<Block> |
DefaultShimpleFactory.rbg |
protected DominatorsFinder<Block> |
DefaultShimpleFactory.rdFinder |
protected DominanceFrontier<Block> |
DefaultShimpleFactory.rdFrontier |
protected DominatorTree<Block> |
DefaultShimpleFactory.rdTree |
| Modifier and Type | Method and Description |
|---|---|
boolean |
PhiExpr.addArg(Value arg,
Block pred)
Add the given argument associated with the given CFG predecessor.
|
ValueUnitPair |
PhiExpr.getArgBox(Block pred)
Returns the argument pair corresponding to the given CFG predecessor.
|
int |
PhiExpr.getArgIndex(Block pred)
Returns the index of the argument associated with the given control flow predecessor.
|
Value |
PhiExpr.getValue(Block pred)
Get the PhiExpr argument corresponding to the given control flow predecessor, returns null if not available.
|
boolean |
PhiExpr.removeArg(Block pred)
Remove the argument corresponding to the given CFG predecessor.
|
boolean |
PhiExpr.setArg(int index,
Value arg,
Block pred)
Modify the PhiExpr argument at the given index with the given information.
|
boolean |
PhiExpr.setPred(int index,
Block pred)
Update the CFG predecessor associated with the PhiExpr argument at the given index.
|
boolean |
PhiExpr.setValue(Block pred,
Value arg)
Locate the argument associated with the given CFG predecessor and set the value.
|
| Modifier and Type | Method and Description |
|---|---|
PhiExpr |
Shimple.newPhiExpr(Local leftLocal,
List<Block> preds)
Create a trivial PhiExpr, where preds are an ordered list of the control predecessor Blocks of the Phi expression.
|
| Modifier and Type | Field and Description |
|---|---|
protected ReversibleGraph<Block> |
PiNodeManager.cfg |
protected DominanceFrontier<Block> |
PhiNodeManager.df |
protected DominanceFrontier<Block> |
PiNodeManager.df |
protected DominatorTree<Block> |
PhiNodeManager.dt |
protected DominatorTree<Block> |
PiNodeManager.dt |
protected DominatorTree<Block> |
ShimpleBodyBuilder.dt |
protected Map<Unit,Block> |
PhiNodeManager.unitToBlock |
protected MultiMap<Local,Block> |
PhiNodeManager.varToBlocks |
protected MultiMap<Local,Block> |
PiNodeManager.varToBlocks |
| Modifier and Type | Method and Description |
|---|---|
Map<Unit,Block> |
PhiNodeManager.getUnitToBlockMap(BlockGraph blocks)
Convenience function that maps units to blocks.
|
| Modifier and Type | Method and Description |
|---|---|
boolean |
SPhiExpr.addArg(Value arg,
Block pred) |
ValueUnitPair |
SPhiExpr.getArgBox(Block pred) |
int |
SPhiExpr.getArgIndex(Block pred) |
static List<ValueBox> |
PiNodeManager.getUseBoxesFromBlock(Block block) |
Value |
SPhiExpr.getValue(Block pred) |
void |
PiNodeManager.insertPiNodes(Local local,
Block frontierBlock) |
void |
PhiNodeManager.prependTrivialPhiNode(Local local,
Block frontierBlock)
Inserts a trivial Phi node with the appropriate number of arguments.
|
boolean |
SPhiExpr.removeArg(Block pred) |
void |
ShimpleBodyBuilder.renameLocalsSearch(Block block)
Driven by renameLocals().
|
boolean |
SPhiExpr.setArg(int index,
Value arg,
Block pred) |
boolean |
SPhiExpr.setPred(int index,
Block pred) |
boolean |
SPhiExpr.setValue(Block pred,
Value arg) |
| Constructor and Description |
|---|
SPhiExpr(Local leftLocal,
List<Block> preds)
Create a trivial Phi expression for leftLocal.
|
| Modifier and Type | Field and Description |
|---|---|
protected List<Block> |
BlockGraph.mBlocks |
protected List<Block> |
BlockGraph.mHeads |
protected List<Block> |
BlockGraph.mTails |
| Modifier and Type | Method and Description |
|---|---|
Block |
ExceptionalBlockGraph.ExceptionDest.getHandlerNode() |
| 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.
|
List<Block> |
BlockGraph.getBlocks()
Returns a list of the Blocks composing this graph.
|
List<Block> |
ExceptionalBlockGraph.getExceptionalPredsOf(Block b) |
List<Block> |
ExceptionalBlockGraph.getExceptionalSuccsOf(Block b) |
List<Block> |
BlockGraph.getHeads() |
List<Block> |
Block.getPreds()
Returns the List of Block that are predecessors to this block,
|
List<Block> |
BlockGraph.getPredsOf(Block b) |
List<Block> |
Block.getSuccs()
Returns the List of Blocks that are successors to this block,
|
List<Block> |
BlockGraph.getSuccsOf(Block b) |
List<Block> |
BlockGraph.getTails() |
List<Block> |
ExceptionalBlockGraph.getUnexceptionalPredsOf(Block b) |
List<Block> |
ExceptionalBlockGraph.getUnexceptionalSuccsOf(Block b) |
Iterator<Block> |
BlockGraph.iterator() |
| Modifier and Type | Method and Description |
|---|---|
List<Block> |
ExceptionalBlockGraph.getExceptionalPredsOf(Block b) |
List<Block> |
ExceptionalBlockGraph.getExceptionalSuccsOf(Block b) |
Collection<ExceptionalBlockGraph.ExceptionDest> |
ExceptionalBlockGraph.getExceptionDests(Block b) |
List<Block> |
BlockGraph.getPredsOf(Block b) |
List<Block> |
BlockGraph.getSuccsOf(Block b) |
List<Block> |
ExceptionalBlockGraph.getUnexceptionalPredsOf(Block b) |
List<Block> |
ExceptionalBlockGraph.getUnexceptionalSuccsOf(Block b) |
| Modifier and Type | Method and Description |
|---|---|
void |
Block.setPreds(List<Block> preds)
Sets the list of Blocks that are predecessors of this block in it's enclosing BlockGraph instance.
|
void |
Block.setSuccs(List<Block> succs)
Sets the list of Blocks that are successors of this block in it's enclosing BlockGraph instance.
|
| Constructor and Description |
|---|
ExceptionDest(Trap trap,
ThrowableSet throwables,
Block handler) |
| Modifier and Type | Field and Description |
|---|---|
protected Hashtable<Block,Region> |
RegionAnalysis.m_block2region |
| Modifier and Type | Method and Description |
|---|---|
Hashtable<Block,Region> |
RegionAnalysis.getBlock2RegionMap() |
List<Block> |
Region.getBlocks() |
List<Block> |
PDGRegion.getBlocks() |
List<Block> |
IRegion.getBlocks() |
DominatorTree<Block> |
RegionAnalysis.getDominatorTree() |
DominatorTree<Block> |
RegionAnalysis.getPostDominatorTree() |
| Modifier and Type | Method and Description |
|---|---|
void |
Region.add(Block b) |
void |
Region.add2Back(Block b) |
void |
Region.remove(Block b) |
| Modifier and Type | Method and Description |
|---|---|
static String |
RegionAnalysis.CFGtoString(DirectedGraph<Block> cfg,
boolean blockDetail) |
| Constructor and Description |
|---|
Region(int id,
List<Block> blocks,
SootMethod m,
SootClass c,
UnitGraph ug) |
Copyright © 2020 Soot OSS. All rights reserved.