java.lang.Object | |
↳ | com.pnfsoftware.jeb.core.units.code.CFGUtil.RegionFinder |
This class attempts to determine a region in a graph. A region consists of a set of blocks, reachable from an entry block, and reaching an optional set of outputs. The only way to reach a region's node is via the entry block.
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
RegionFinder(CFG<? extends IInstruction> cfg, long entry, Set<Long> outputs, boolean canLoopBackToEntry)
Build a region finder.
| |||||||||||
RegionFinder(CFG<? extends IInstruction> cfg, long entry, long output)
Build a finder for a region having a single output, for which the region blocks cannot
loop back to the entry.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Collection<Long> | getRegionBlocks() | ||||||||||
boolean | process() |
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
Build a region finder.
cfg | CFG |
---|---|
entry | entry block address |
outputs | output block addresses (may be 0, 1, or 2+) |
canLoopBackToEntry | true if the blocks in the region to-be-determined may loop back to the entry node; false if they may not |
Build a finder for a region having a single output, for which the region blocks cannot loop back to the entry.
cfg | CFG |
---|---|
entry | entry block address |
output | exit block address |