public class ConditionalBlockImpl extends BlockImpl implements ConditionalBlock
Block.BlockType| Modifier and Type | Field and Description |
|---|---|
protected Store.FlowRule |
elseFlowRule
The initial value says that the ELSE store before a conditional block flows to BOTH of the
stores of the else successor.
|
protected @Nullable BlockImpl |
elseSuccessor
Successor of the else branch.
|
protected Store.FlowRule |
thenFlowRule
The initial value says that the THEN store before a conditional block flows to BOTH of the
stores of the then successor.
|
protected @Nullable BlockImpl |
thenSuccessor
Successor of the then branch.
|
predecessors, type| Constructor and Description |
|---|
ConditionalBlockImpl()
Initialize an empty conditional basic block to be filled with contents and linked to other
basic blocks later.
|
| Modifier and Type | Method and Description |
|---|---|
Store.FlowRule |
getElseFlowRule()
Returns the flow rule for information flowing from this block to its else successor.
|
Block |
getElseSuccessor()
Returns the entry block of the else branch.
|
@Nullable Node |
getLastNode()
Returns the last node of this block, or null if none.
|
List<Node> |
getNodes()
Returns the nodes contained within this basic block.
|
Set<Block> |
getSuccessors()
Returns the successors of this basic block.
|
Store.FlowRule |
getThenFlowRule()
Returns the flow rule for information flowing from this block to its then successor.
|
Block |
getThenSuccessor()
Returns the entry block of the then branch.
|
void |
setElseFlowRule(Store.FlowRule rule)
Set the flow rule for information flowing from this block to its else successor.
|
void |
setElseSuccessor(BlockImpl b)
Set the else branch successor.
|
void |
setThenFlowRule(Store.FlowRule rule)
Set the flow rule for information flowing from this block to its then successor.
|
void |
setThenSuccessor(BlockImpl b)
Set the then branch successor.
|
String |
toString() |
addPredecessor, getPredecessors, getType, getUid, removePredecessorclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetPredecessors, getTypeprotected Store.FlowRule thenFlowRule
protected Store.FlowRule elseFlowRule
public ConditionalBlockImpl()
public void setThenSuccessor(BlockImpl b)
public void setElseSuccessor(BlockImpl b)
public Block getThenSuccessor()
ConditionalBlockgetThenSuccessor in interface ConditionalBlockpublic Block getElseSuccessor()
ConditionalBlockgetElseSuccessor in interface ConditionalBlockpublic Set<Block> getSuccessors()
BlockgetSuccessors in interface Blockpublic Store.FlowRule getThenFlowRule()
ConditionalBlockgetThenFlowRule in interface ConditionalBlockpublic Store.FlowRule getElseFlowRule()
ConditionalBlockgetElseFlowRule in interface ConditionalBlockpublic void setThenFlowRule(Store.FlowRule rule)
ConditionalBlocksetThenFlowRule in interface ConditionalBlockrule - the new flow rule for information flowing from this block to its then successorpublic void setElseFlowRule(Store.FlowRule rule)
ConditionalBlocksetElseFlowRule in interface ConditionalBlockrule - the new flow rule for information flowing from this block to its else successorpublic List<Node> getNodes()
The following invariant holds.
forall n in getNodes() :: n.getBlock() == this
This implementation returns an empty list.
public @Nullable Node getLastNode()
BlockgetLastNode in interface Blocknull