|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jikesrvm.compilers.baseline.BasicBlock
final class BasicBlock
Structure to describe the basic blocks of the byte code Used in calculating stack map and local variable map for the garbage collector.
Field Summary | |
---|---|
private int |
blockNumber
ID number (index into block array) |
private int |
end
ending byte in byte code array |
static int |
EXITBLOCK
|
(package private) static byte |
INJSR
|
(package private) static byte |
JSRENTRY
|
(package private) static byte |
JSREXIT
|
(package private) static byte |
METHODENTRY
|
static int |
NOTBLOCK
|
private short |
pred1
|
private short |
pred2
|
private int |
predcount
number of preceding basic blocks |
private short[] |
restPredecessors
list of rest preceding basic blocks |
private int |
start
starting byte in byte code array |
static int |
STARTBBNUMBER
|
static int |
STARTPREDSIZE
|
private byte |
state
additional state info for jsr handling, and other flags |
(package private) static byte |
TRYBLOCK
|
(package private) static byte |
TRYHANDLERSTART
|
(package private) static byte |
TRYSTART
|
Constructor Summary | |
---|---|
BasicBlock(int startval,
int bn)
This should be called only from the factory. |
|
BasicBlock(int startval,
int endval,
int blockNumber)
This should be used when building the EXIT block EXIT is likely to have several predecessors. |
Method Summary | |
---|---|
void |
addPredecessor(BasicBlock predbb)
|
void |
addUniquePredecessor(BasicBlock predbb)
This method first checks if a block is already on the predecessor list. |
int |
getBlockNumber()
|
int |
getEnd()
|
int[] |
getPredecessors()
|
int |
getStart()
|
byte |
getState()
|
boolean |
isInJSR()
|
boolean |
isJSREntry()
|
boolean |
isJSRExit()
|
boolean |
isMethodEntry()
|
boolean |
isTryBlock()
|
boolean |
isTryHandlerStart()
|
boolean |
isTryStart()
|
(package private) void |
setEnd(int endval)
|
(package private) void |
setStart(int startval)
|
(package private) void |
setState(byte stateval)
|
static void |
transferPredecessors(BasicBlock fromBB,
BasicBlock toBB)
transfer predecessor blocks from one block to another |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int NOTBLOCK
public static final int EXITBLOCK
public static final int STARTPREDSIZE
public static final int STARTBBNUMBER
static final byte JSRENTRY
static final byte JSREXIT
static final byte METHODENTRY
static final byte TRYSTART
static final byte TRYBLOCK
static final byte INJSR
static final byte TRYHANDLERSTART
private final int blockNumber
private int start
private int end
private int predcount
private short pred1
private short pred2
private short[] restPredecessors
private byte state
Constructor Detail |
---|
BasicBlock(int startval, int bn)
BasicBlock(int startval, int endval, int blockNumber)
Method Detail |
---|
public static void transferPredecessors(BasicBlock fromBB, BasicBlock toBB)
void setStart(int startval)
void setEnd(int endval)
void setState(byte stateval)
public int getStart()
public int getEnd()
public int getBlockNumber()
public byte getState()
public boolean isJSRExit()
public boolean isJSREntry()
public boolean isInJSR()
public boolean isMethodEntry()
public boolean isTryStart()
public boolean isTryBlock()
public boolean isTryHandlerStart()
public void addPredecessor(BasicBlock predbb)
public void addUniquePredecessor(BasicBlock predbb)
public int[] getPredecessors()
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |