public class BasicBlock extends java.lang.Object implements java.lang.Comparable<BasicBlock>
| Modifier and Type | Field and Description |
|---|---|
int |
endPos |
MethodFlow |
flow
The flow to which this BB belongs.
|
java.util.ArrayList<Handler> |
handlers |
int |
id
A number handed out in increasing order of starting position, to ease
sorting as well as for debug information
|
Frame |
startFrame
The frame at the BB's entry point.
|
LabelNode |
startLabel
The label that starts this BB.
|
int |
startPos
Start and end points (both inclusive) in the current method's list of
instructions (this.flow.instructions)
|
java.util.ArrayList<BasicBlock> |
successors
List of successors (follower and all branch targets).
|
Usage |
usage
usage initially contains the usage of local variables in this block
(without reference to any other block).
|
| Constructor and Description |
|---|
BasicBlock(MethodFlow aflow,
LabelNode aStartLabel) |
| Modifier and Type | Method and Description |
|---|---|
void |
chooseCatchHandlers(java.util.ArrayList<Handler> handlerList) |
int |
compareTo(BasicBlock o) |
boolean |
flowVarUsage()
calculate the liveness usage by evolution (assume born usage has already been calculated)
|
AbstractInsnNode |
getInstruction(int pos) |
BasicBlock |
getJSRTarget() |
java.util.ArrayList<BasicBlock> |
getSubBlocks() |
Usage |
getVarUsage() |
boolean |
hasFlag(int bitFlag) |
boolean |
isCatchHandler() |
boolean |
isGetCurrentTask() |
boolean |
isPausable() |
void |
setFlag(int bitFlag) |
java.lang.String |
toString() |
void |
unsetFlag(int bitFlag) |
public int id
public MethodFlow flow
public LabelNode startLabel
public int startPos
public int endPos
public java.util.ArrayList<BasicBlock> successors
public java.util.ArrayList<Handler> handlers
public Usage usage
public Frame startFrame
public BasicBlock(MethodFlow aflow, LabelNode aStartLabel)
public Usage getVarUsage()
public void setFlag(int bitFlag)
public void unsetFlag(int bitFlag)
public boolean hasFlag(int bitFlag)
public int compareTo(BasicBlock o)
compareTo in interface java.lang.Comparable<BasicBlock>public boolean isCatchHandler()
public void chooseCatchHandlers(java.util.ArrayList<Handler> handlerList)
public AbstractInsnNode getInstruction(int pos)
public boolean flowVarUsage()
public BasicBlock getJSRTarget()
public java.util.ArrayList<BasicBlock> getSubBlocks() throws KilimException
KilimExceptionpublic java.lang.String toString()
toString in class java.lang.Objectpublic boolean isPausable()
public boolean isGetCurrentTask()