Package | Description |
---|---|
org.jikesrvm.compilers.opt.controlflow | |
org.jikesrvm.compilers.opt.dfsolver | |
org.jikesrvm.compilers.opt.ssa |
SSA implementation (disabled because of bugs, see entry in issue tracker).
|
Modifier and Type | Class and Description |
---|---|
(package private) class |
DominatorCell
DominatorCell represents a set of basic blocks, used in
the dataflow calculation
|
Modifier and Type | Method and Description |
---|---|
(package private) DF_LatticeCell[] |
DominatorSystem.getCellsForPredecessors(BasicBlock bb) |
protected DF_LatticeCell |
DominatorSystem.makeCell(Object key)
Make a new DF_LatticeCell key corresponding to a basic block
|
Modifier and Type | Method and Description |
---|---|
boolean |
DominatorOperator.evaluate(DF_LatticeCell[] operands)
Evaluate an equation with the MEET operation
|
Modifier and Type | Class and Description |
---|---|
class |
DF_AbstractCell
Represents a single lattice cell in a dataflow system.
|
Modifier and Type | Field and Description |
---|---|
protected DF_LatticeCell[] |
DF_Equation.operands
The operands.
|
Modifier and Type | Method and Description |
---|---|
protected DF_LatticeCell |
DF_System.findOrCreateCell(Object key)
Finds the cell matching this key.
|
DF_LatticeCell |
DF_System.getCell(Object key)
Return the DF_LatticeCell corresponding to a key.
|
(package private) DF_LatticeCell |
DF_Equation.getLHS()
Return the left-hand side of this equation.
|
DF_LatticeCell[] |
DF_Equation.getOperands()
Return the operands in this equation.
|
protected abstract DF_LatticeCell |
DF_System.makeCell(Object key)
Create a new lattice cell, referenced by a given key
|
Modifier and Type | Method and Description |
---|---|
void |
DF_System.addCellAppearancesToWorkList(DF_LatticeCell cell)
Add all equations which contain a given cell to the work list.
|
void |
DF_System.changedCell(DF_LatticeCell cell)
Call this method when the contents of a lattice cell
changes.
|
abstract boolean |
DF_Operator.evaluate(DF_LatticeCell[] operands)
Evaluate this equation, setting a new value for the
left-hand side.
|
boolean |
DF_Equation.hasCell(DF_LatticeCell cell)
Does this equation contain an appearance of a given cell?
|
protected void |
DF_System.newEquation(DF_LatticeCell lhs,
DF_Operator operator,
DF_LatticeCell op1)
Add an equation with one operand on the right-hand side.
|
protected void |
DF_System.newEquation(DF_LatticeCell lhs,
DF_Operator operator,
DF_LatticeCell[] rhs)
Add an equation to the system with an arbitrary number of operands on
the right-hand side.
|
protected void |
DF_System.newEquation(DF_LatticeCell lhs,
DF_Operator operator,
DF_LatticeCell[] rhs)
Add an equation to the system with an arbitrary number of operands on
the right-hand side.
|
(package private) void |
DF_System.newEquation(DF_LatticeCell lhs,
DF_Operator operator,
DF_LatticeCell op1,
DF_LatticeCell op2)
Add an equation with two operands on the right-hand side.
|
(package private) void |
DF_System.newEquation(DF_LatticeCell lhs,
DF_Operator operator,
DF_LatticeCell op1,
DF_LatticeCell op2,
DF_LatticeCell op3)
Add an equation with three operands on the right-hand side.
|
Constructor and Description |
---|
DF_Equation(DF_LatticeCell lhs,
DF_Operator operator,
DF_LatticeCell op1)
Constructor for case of one operand on the right-hand side.
|
DF_Equation(DF_LatticeCell lhs,
DF_Operator operator,
DF_LatticeCell[] rhs)
Constructor for case of more than three operands on the right-hand side.
|
DF_Equation(DF_LatticeCell lhs,
DF_Operator operator,
DF_LatticeCell[] rhs)
Constructor for case of more than three operands on the right-hand side.
|
DF_Equation(DF_LatticeCell lhs,
DF_Operator operator,
DF_LatticeCell op1,
DF_LatticeCell op2)
Constructor for case of two operands on the right-hand side.
|
DF_Equation(DF_LatticeCell lhs,
DF_Operator operator,
DF_LatticeCell op1,
DF_LatticeCell op2,
DF_LatticeCell op3)
Constructor for case of three operands on the right-hand side.
|
Modifier and Type | Class and Description |
---|---|
(package private) static class |
IndexPropagation.ArrayCell
An ArrayCell is a lattice cell for the index propagation
problem, used in redundant load elimination for one-dimensional arrays.
|
(package private) static class |
IndexPropagation.ObjectCell
An ObjectCell is a lattice cell for the index propagation
problem, used in redundant load elimination for fields.
|
Modifier and Type | Method and Description |
---|---|
protected DF_LatticeCell |
IndexPropagationSystem.makeCell(Object o)
Create an DF_LatticeCell corresponding to an HeapVariable
|
Modifier and Type | Method and Description |
---|---|
boolean |
IndexPropagationSystem.MeetOperator.evaluate(DF_LatticeCell[] operands)
Evaluate a dataflow equation with the MEET operator
|
boolean |
IndexPropagationSystem.UpdateDefObjectOperator.evaluate(DF_LatticeCell[] operands)
Evaluate the dataflow equation with this operator.
|
boolean |
IndexPropagationSystem.UpdateUseObjectOperator.evaluate(DF_LatticeCell[] operands)
Evaluate the dataflow equation with this operator.
|
boolean |
IndexPropagationSystem.UpdateDefArrayOperator.evaluate(DF_LatticeCell[] operands)
Evaluate the dataflow equation with this operator.
|
boolean |
IndexPropagationSystem.UpdateUseArrayOperator.evaluate(DF_LatticeCell[] operands)
Evaluate the dataflow equation with this operator.
|
(package private) boolean |
IndexPropagationSystem.MeetOperator.evaluateArrayMeet(DF_LatticeCell[] operands)
Evaluate a dataflow equation with the MEET operator
for lattice cells representing array heap variables.
|
(package private) boolean |
IndexPropagationSystem.MeetOperator.evaluateObjectMeet(DF_LatticeCell[] operands)
Evaluate a dataflow equation with the MEET operator
for lattice cells representing field heap variables.
|