public interface AbstractControlFlowGraph<T extends AbstractBlockBase<T>>
| Modifier and Type | Field and Description |
|---|---|
static int |
BLOCK_ID_INITIAL |
static int |
BLOCK_ID_VISITED |
| Modifier and Type | Method and Description |
|---|---|
static AbstractBlockBase<?> |
commonDominator(AbstractBlockBase<?> a,
AbstractBlockBase<?> b)
Calculates the common dominator of two blocks.
|
static AbstractBlockBase<?> |
commonDominatorHelper(AbstractBlockBase<?> a,
AbstractBlockBase<?> b) |
static <T extends AbstractBlockBase<T>> |
commonDominatorTyped(T a,
T b) |
static boolean |
dominates(AbstractBlockBase<?> a,
AbstractBlockBase<?> b)
True if block
a dominates block b. |
T[] |
getBlocks()
Returns the list blocks contained in this control flow graph.
|
Collection<Loop<T>> |
getLoops() |
T |
getStartBlock() |
static boolean |
isDominatedBy(AbstractBlockBase<?> a,
AbstractBlockBase<?> b)
True if block
a is dominated by block b or a is equal to b. |
static boolean |
strictlyDominates(AbstractBlockBase<?> a,
AbstractBlockBase<?> b)
True if block
a dominates block b and a is not identical block to
b. |
static final int BLOCK_ID_INITIAL
static final int BLOCK_ID_VISITED
T[] getBlocks()
CFGVerifierCollection<Loop<T>> getLoops()
T getStartBlock()
static boolean isDominatedBy(AbstractBlockBase<?> a, AbstractBlockBase<?> b)
a is dominated by block b or a is equal to b.static boolean strictlyDominates(AbstractBlockBase<?> a, AbstractBlockBase<?> b)
a dominates block b and a is not identical block to
b.static boolean dominates(AbstractBlockBase<?> a, AbstractBlockBase<?> b)
a dominates block b.static AbstractBlockBase<?> commonDominator(AbstractBlockBase<?> a, AbstractBlockBase<?> b)
AbstractControlFlowGraph.getBlocks(),
CFGVerifierstatic AbstractBlockBase<?> commonDominatorHelper(AbstractBlockBase<?> a, AbstractBlockBase<?> b)
static <T extends AbstractBlockBase<T>> T commonDominatorTyped(T a, T b)