public class ZonedBlockGraph extends BlockGraph
Block instances, and where exception boundaries are taken into account when finding the
Blocks for the provided Body. Any Unit which is the first Unit to be convered by some exception
handler will start a new Block, and any | Constructor and Description |
|---|
ZonedBlockGraph(Body body)
Constructs a ZonedBlockGraph for the Units comprising the passed
Body. |
ZonedBlockGraph(BriefUnitGraph unitGraph)
Constructs a ZonedBlockGraph corresponding to the Unit-level control flow represented by the passed
BriefUnitGraph. |
| Modifier and Type | Method and Description |
|---|---|
protected Set<Unit> |
computeLeaders(UnitGraph unitGraph)
|
buildBlocks, getBlocks, getBody, getHeads, getPredsOf, getSuccsOf, getTails, iterator, size, toStringclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitforEach, spliteratorpublic ZonedBlockGraph(Body body)
Constructs a ZonedBlockGraph for the Units comprising the passed Body.
Note that this constructor builds a BriefUnitGraph internally when splitting body's Units into
Blocks. Callers who need both a BriefUnitGraph and a ZonedBlockGraph can use the constructor
taking the BriefUnitGraph as a parameter, as a minor optimization.
body - The Body for which to produce a ZonedBlockGraph.public ZonedBlockGraph(BriefUnitGraph unitGraph)
BriefUnitGraph.unitGraph - The BriefUnitGraph for which to produce a ZonedBlockGraph.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:
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.Copyright © 2020 Soot OSS. All rights reserved.