|
||||||||||
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
Unit
s 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
Unit
s into Block
s. 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 BlockGraph
unitGraph
- is the Unit-level CFG which is to be split
into basic blocks.
Set
of Unit
s in unitGraph which
are block leaders.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |