Package | Description |
---|---|
org.jikesrvm.compilers.opt.ir.operand | |
org.jikesrvm.compilers.opt.ssa |
SSA implementation (disabled because of bugs, see entry in issue tracker).
|
Modifier and Type | Field and Description |
---|---|
HeapVariable<T> |
HeapOperand.value
The heap variable corresponding to this operand.
|
Modifier and Type | Method and Description |
---|---|
HeapVariable<T> |
HeapOperand.getHeapVariable()
Return the heap variable corresponding to this operand.
|
Constructor and Description |
---|
HeapOperand(HeapVariable<T> heap)
Construct an operand corresponding to a heap variable.
|
Modifier and Type | Field and Description |
---|---|
private HeapVariable<?> |
IndexPropagation.ObjectCell.key
The heap variable this lattice cell tracks information for.
|
private HeapVariable<?> |
IndexPropagation.ArrayCell.key
The heap variable this lattice cell tracks information for.
|
Modifier and Type | Field and Description |
---|---|
private HashMap<HeapVariable<Object>,HeapOperand<Object>> |
SSADictionary.DefChain
A mapping from
HeapVariable to HeapOperand . |
private HashMap<SSADictionary.HeapKey<Object>,HeapVariable<Object>> |
SSADictionary.heapVariables
A mapping from
HeapKey to the set of heap
variables introduced for this IR |
private HashMap<HeapVariable<Object>,HashSet<HeapOperand<Object>>> |
SSADictionary.UseChain
A mapping from
HeapVariable to HashSet
of HeapOperand . |
Modifier and Type | Method and Description |
---|---|
private HeapVariable<Object> |
SSADictionary.findOrCreateHeapVariable(Object type)
Return the heap variable for a given type or field with
number 0.
|
(package private) HeapVariable<?> |
IndexPropagation.ObjectCell.getKey() |
(package private) HeapVariable<?> |
IndexPropagation.ArrayCell.getKey() |
Modifier and Type | Method and Description |
---|---|
(package private) Iterator<HeapVariable<Object>> |
SSADictionary.enumerateExposedHeapVariables()
Return an enumeration of all heap variables that may be
exposed on procedure exit.
|
(package private) Iterator<HeapVariable<Object>> |
SSADictionary.getHeapVariables()
Return an enumeration of the heap variables in this IR.
|
Modifier and Type | Method and Description |
---|---|
(package private) void |
LoadElimination.UseRecordSet.add(HeapVariable<?> H,
int valueNumber) |
(package private) void |
LoadElimination.UseRecordSet.add(HeapVariable<?> H,
int v1,
int v2) |
(package private) void |
IndexPropagationSystem.addUpdateArrayDefEquation(HeapVariable<?> A1,
HeapVariable<?> A2,
Object array,
Object index)
Add an equation to the system of the form
L(A1) = updateDef(L(A2), <VALNUM(array),VALNUM(index)>)
|
(package private) void |
IndexPropagationSystem.addUpdateArrayDefEquation(HeapVariable<?> A1,
HeapVariable<?> A2,
Object array,
Object index)
Add an equation to the system of the form
L(A1) = updateDef(L(A2), <VALNUM(array),VALNUM(index)>)
|
(package private) void |
IndexPropagationSystem.addUpdateArrayUseEquation(HeapVariable<?> A1,
HeapVariable<?> A2,
Object array,
Object index)
Add an equation to the system of the form
L(A1) = updateUse(L(A2), <VALNUM(array),VALNUM(index)>)
|
(package private) void |
IndexPropagationSystem.addUpdateArrayUseEquation(HeapVariable<?> A1,
HeapVariable<?> A2,
Object array,
Object index)
Add an equation to the system of the form
L(A1) = updateUse(L(A2), <VALNUM(array),VALNUM(index)>)
|
(package private) void |
IndexPropagationSystem.addUpdateObjectDefEquation(HeapVariable<?> A1,
HeapVariable<?> A2,
int valueNumber)
Add an equation to the system of the form
L(A1) = updateDef(L(A2), VALNUM(address))
|
(package private) void |
IndexPropagationSystem.addUpdateObjectDefEquation(HeapVariable<?> A1,
HeapVariable<?> A2,
int valueNumber)
Add an equation to the system of the form
L(A1) = updateDef(L(A2), VALNUM(address))
|
(package private) void |
IndexPropagationSystem.addUpdateObjectUseEquation(HeapVariable<?> A1,
HeapVariable<?> A2,
int valueNumber)
Add an equation to the system of the form
L(A1) = updateUse(L(A2), VALNUM(address))
|
(package private) void |
IndexPropagationSystem.addUpdateObjectUseEquation(HeapVariable<?> A1,
HeapVariable<?> A2,
int valueNumber)
Add an equation to the system of the form
L(A1) = updateUse(L(A2), VALNUM(address))
|
(package private) boolean |
LoadElimination.UseRecordSet.containsMatchingUse(HeapVariable<?> H,
int valueNumber) |
(package private) boolean |
LoadElimination.UseRecordSet.containsMatchingUse(HeapVariable<?> H,
int v1,
int v2) |
(package private) void |
SSADictionary.createHeapPhiInstruction(BasicBlock bb,
HeapVariable<Object> H)
Create a heap control phi instruction, and store it at the
beginning of a basic block.
|
(package private) int |
SSADictionary.getNumberOfUses(HeapVariable<Object> A)
Return the number of uses of a heap variable.
|
(package private) HeapOperand<Object> |
SSADictionary.getUniqueDef(HeapVariable<Object> A)
Return the operand that represents a heap variable's unique def.
|
(package private) boolean |
SSADictionary.isExposedOnExit(HeapVariable<Object> H)
Checks whether a heap variable is exposed on procedure exit.
|
(package private) Iterator<HeapOperand<Object>> |
SSADictionary.iterateHeapUses(HeapVariable<Object> A)
Return an enumeration of all uses of a particular heap variable.
|
private Iterator<HeapOperand<Object>> |
SSADictionary.iterateOriginalHeapDefs(HeapVariable<Object> A)
Return an enumeration of all the original definitions of a heap variable.
|
private Iterator<HeapOperand<Object>> |
SSADictionary.iterateOriginalHeapUses(HeapVariable<Object> A)
Return an enumeration of all the original uses of a heap variable.
|
private static Instruction |
SSADictionary.makePhiInstruction(HeapVariable<Object> H,
BasicBlock bb)
Create a phi-function instruction for a heap variable
|
Constructor and Description |
---|
ArrayCell(HeapVariable<?> key)
Create a lattice cell corresponding to a heap variable.
|
ObjectCell(HeapVariable<?> key)
Create a lattice cell corresponding to a heap variable.
|