public class ArrayRefBlockGraph extends BlockGraph
| Constructor and Description |
|---|
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. |
| Modifier and Type | Method and Description |
|---|---|
protected java.util.Set<Unit> |
computeLeaders(UnitGraph unitGraph)
|
buildBlocks, getBlocks, getBody, getHeads, getPredsOf, getSuccsOf, getTails, iterator, size, toStringpublic 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.protected java.util.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.