|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectsoot.toolkits.graph.BlockGraph
soot.toolkits.graph.ArrayRefBlockGraph
public class ArrayRefBlockGraph
A CFG where the nodes are Block instances, and where
Units which include array references start new blocks.
Exceptional control flow is ignored, so
the graph will be a forest where each exception handler
constitutes a disjoint subgraph.
| Field Summary |
|---|
| Fields inherited from class soot.toolkits.graph.BlockGraph |
|---|
mBlocks, mBody, mHeads, mTails, mUnits |
| Constructor Summary | |
|---|---|
ArrayRefBlockGraph(Body body)
Constructs an ArrayRefBlockGraph from the given
Body. |
|
ArrayRefBlockGraph(BriefUnitGraph unitGraph)
Constructs an ArrayRefBlockGraph corresponding to the Unit-level control flow represented by the passed BriefUnitGraph. |
|
| Method Summary | |
|---|---|
protected Set<Unit> |
computeLeaders(UnitGraph unitGraph)
Utility method for computing the basic block leaders for a Body, given its UnitGraph (i.e., the
instructions which begin new basic blocks). |
| Methods inherited from class soot.toolkits.graph.BlockGraph |
|---|
buildBlocks, getBlocks, getBody, getHeads, getPredsOf, getSuccsOf, getTails, iterator, size, toString |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public ArrayRefBlockGraph(Body body)
Constructs an ArrayRefBlockGraph from the given
Body.
Note that this constructor builds a BriefUnitGraph internally when splitting body's
Units into Blocks. Callers who need both a
BriefUnitGraph and an ArrayRefBlockGraph
should use the constructor taking the BriefUnitGraph as a
parameter, as a minor optimization.
the - Body instance from which the graph is built.public ArrayRefBlockGraph(BriefUnitGraph unitGraph)
BriefUnitGraph.
unitGraph - The BriefUnitGraph for which
to build an ArrayRefBlockGraph.| Method Detail |
|---|
protected Set<Unit> computeLeaders(UnitGraph unitGraph)
Utility method for computing the basic block leaders for a
Body, given its UnitGraph (i.e., the
instructions which begin new basic blocks).
This implementation chooses as block leaders all
the Units that BlockGraph.computerLeaders(),
and adds:
Stmt.containsArrayRef() and
Inst.containsArrayRef().
Trap (i.e.,
the Unit returned by Trap.getLastUnit().
computeLeaders in class BlockGraphunitGraph - is the Unit-level CFG which is to be split
into basic blocks.
Set of Units in unitGraph which
are block leaders.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||