Package | Description |
---|---|
org.jikesrvm.compilers.opt.bc2ir |
Provides classes that implement the transformation from bytecode to the
high-level intermediate representation (HIR).
|
Modifier and Type | Class and Description |
---|---|
(package private) class |
HandlerBlockLE
Extend BasicBlockLE for handler blocks
|
(package private) class |
InliningBlockLE
Extend BasicBlockLE to support inlining during IR generation.
|
Modifier and Type | Field and Description |
---|---|
private BasicBlockLE |
BC2IR.currentBBLE
Current BBLE.
|
private BasicBlockLE |
BBSet.entry
entry block of the CFG
|
(package private) BasicBlockLE |
InliningBlockLE.epilogueBBLE |
(package private) BasicBlockLE |
BasicBlockLE.fallThrough
The desired fallthrough (next in code order) BBLE (may be
null ). |
(package private) BasicBlockLE |
BasicBlockLE.left |
(package private) BasicBlockLE |
BBSet.TreeEnumerator.node |
(package private) BasicBlockLE |
BasicBlockLE.parent |
(package private) BasicBlockLE |
BasicBlockLE.right |
private BasicBlockLE |
BBSet.root
root of the backing red/black tree
|
Modifier and Type | Method and Description |
---|---|
private BasicBlockLE |
BBSet._createBBLE(int bcIndex,
Operand[] simLocals,
BasicBlockLE parent,
boolean left)
Allocate a new BBLE at the given bcIndex.
|
private BasicBlockLE |
BBSet.condCreateAndInit(BasicBlockLE x,
boolean shouldCreate,
int target,
BasicBlockLE from,
OperandStack simStack,
Operand[] simLocals,
boolean left)
Conditionally create a block at the specified target as a child of x.
|
(package private) BasicBlockLE |
BBSet.getEntry() |
(package private) BasicBlockLE |
BBSet.getNextEmptyBlock(BasicBlockLE start)
Finds the next ungenerated block, starting at the argument
block and searching forward, wrapping around to the beginning.
|
private BasicBlockLE |
BBSet.getOrCreateBlock(BasicBlockLE x,
boolean shouldCreate,
int target,
BasicBlockLE from,
OperandStack simStack,
Operand[] simLocals)
Get or create a block at the specified target.
|
private BasicBlockLE |
BC2IR.getOrCreateBlock(int target)
Gets or creates a block at the specified target.
|
(package private) BasicBlockLE |
BBSet.getOrCreateBlock(int target,
BasicBlockLE from,
OperandStack simStack,
Operand[] simLocals)
Get or create a block at the specified target.
|
private BasicBlockLE |
BC2IR.getOrCreateBlock(int target,
BasicBlockLE from,
OperandStack simStack,
Operand[] simLocals)
Get or create a block at the specified target.
|
private BasicBlockLE |
BBSet.getSuccessor(BasicBlockLE x,
int value)
Returns the basic block's sucessor in bytecode sequence.
|
private BasicBlockLE |
BBSet.minimumBB(BasicBlockLE x,
int value) |
BasicBlockLE |
BBSet.TreeEnumerator.next() |
BasicBlockLE |
BBSet.TreeEnumerator.nextElement() |
Modifier and Type | Method and Description |
---|---|
(package private) Enumeration<BasicBlockLE> |
BBSet.contents() |
Modifier and Type | Method and Description |
---|---|
private BasicBlockLE |
BBSet._createBBLE(int bcIndex,
Operand[] simLocals,
BasicBlockLE parent,
boolean left)
Allocate a new BBLE at the given bcIndex.
|
private BasicBlockLE |
BBSet.condCreateAndInit(BasicBlockLE x,
boolean shouldCreate,
int target,
BasicBlockLE from,
OperandStack simStack,
Operand[] simLocals,
boolean left)
Conditionally create a block at the specified target as a child of x.
|
private int |
BBSet.countBlack(BasicBlockLE node) |
(package private) static BBSet.TreeEnumerator |
BBSet.TreeEnumerator.enumFromNode(BasicBlockLE node) |
(package private) static BBSet.TreeEnumerator |
BBSet.TreeEnumerator.enumFromRoot(BasicBlockLE root) |
private void |
BBSet.fixupBBSet(BasicBlockLE x)
Performs tree fixup (restore Red/Black invariants) after adding a
new node to the tree.
|
(package private) int |
BBSet.getNextBlockBytecodeIndex(BasicBlockLE x)
Gets the bytecode index of the block in the set which has the
next-higher bytecode index.
|
(package private) BasicBlockLE |
BBSet.getNextEmptyBlock(BasicBlockLE start)
Finds the next ungenerated block, starting at the argument
block and searching forward, wrapping around to the beginning.
|
private BasicBlockLE |
BBSet.getOrCreateBlock(BasicBlockLE x,
boolean shouldCreate,
int target,
BasicBlockLE from,
OperandStack simStack,
Operand[] simLocals)
Get or create a block at the specified target.
|
(package private) BasicBlockLE |
BBSet.getOrCreateBlock(int target,
BasicBlockLE from,
OperandStack simStack,
Operand[] simLocals)
Get or create a block at the specified target.
|
private BasicBlockLE |
BC2IR.getOrCreateBlock(int target,
BasicBlockLE from,
OperandStack simStack,
Operand[] simLocals)
Get or create a block at the specified target.
|
private BasicBlockLE |
BBSet.getSuccessor(BasicBlockLE x,
int value)
Returns the basic block's sucessor in bytecode sequence.
|
private void |
BBSet.initializeExceptionHandlers(BasicBlockLE bble,
Operand[] simLocals)
Initialize bble's handlers array based on startPCs/endPCs.
|
private void |
BBSet.leftRotateBBSet(BasicBlockLE x) |
private void |
BBSet.markBlockForRegeneration(BasicBlockLE p)
Mark a previously generated block for regeneration.
|
private boolean |
BBSet.matchingJSRcontext(OperandStack simStack,
Operand[] simLocals,
BasicBlockLE candBBLE)
We specialize basic blocks with respect to the return addresses
they have on their expression stack and/or in their local variables
on entry to the block.
|
private BasicBlockLE |
BBSet.minimumBB(BasicBlockLE x,
int value) |
(package private) void |
BBSet.rectifyLocals(Operand[] localState,
BasicBlockLE p)
Rectify the given local variable state with the local variable state
stored in the given BBLE.
|
(package private) void |
BBSet.rectifyStacks(BasicBlock block,
OperandStack stack,
BasicBlockLE p)
Rectify the given stack state with the state contained in the given
BBLE, adding the necessary move instructions to the end of the given
basic block to make register numbers agree and rectify mis-matched constants.
|
private void |
BBSet.rightRotateBBSet(BasicBlockLE x) |
private void |
BBSet.treeInsert(BasicBlockLE parent,
BasicBlockLE newBBLE,
boolean left)
Insert
newBBLE as a child of parent in our Red/Black tree. |
private void |
BBSet.verifyTree(BasicBlockLE node,
int min,
int max) |
Constructor and Description |
---|
InliningBlockLE(GenerationContext c,
BasicBlockLE bble) |
TreeEnumerator(BasicBlockLE node) |