Package | Description |
---|---|
org.jikesrvm.compilers.opt.ir | |
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 |
---|---|
private HeapOperand<?>[] |
IREnumeration.AllDefsEnum.heapOperands
Array of heap operands defined by the instruction
|
private HeapOperand<?>[] |
IREnumeration.AllUsesEnum.heapOperands
Array of heap operands defined by the instruction
|
Modifier and Type | Method and Description |
---|---|
HeapOperand<T> |
HeapOperand.copy()
Construct a new heap operand associated with the same heap variable as
this operand
|
Modifier and Type | Field and Description |
---|---|
private HashMap<HeapVariable<Object>,HeapOperand<Object>> |
SSADictionary.DefChain
A mapping from
HeapVariable to HeapOperand . |
private HashMap<Object,HashSet<HeapOperand<Object>>> |
SSADictionary.originalDefs
A mapping from a heap variable type to a
HashSet
of Instruction . |
private HashMap<Object,HashSet<HeapOperand<Object>>> |
SSADictionary.originalUses
A mapping from a heap variable type to a
HashSet
of Instruction . |
private HashMap<HeapVariable<Object>,HashSet<HeapOperand<Object>>> |
SSADictionary.UseChain
A mapping from
HeapVariable to HashSet
of HeapOperand . |
Modifier and Type | Method and Description |
---|---|
private static HeapOperand<Object>[] |
SSADictionary.extendHArray(HeapOperand<Object>[] H)
Returns a copy of H with an additional free slot at position 0
|
HeapOperand<Object>[] |
SSADictionary.getHeapDefs(Instruction s)
Return the heap operands defined by an instruction.
|
HeapOperand<Object>[] |
SSADictionary.getHeapUses(Instruction s)
Return the heap operands used by an instruction.
|
(package private) HeapOperand<Object> |
SSADictionary.getUniqueDef(HeapVariable<Object> A)
Return the operand that represents a heap variable's unique def.
|
(package private) HeapOperand<Object>[] |
SSADictionary.replaceDefs(Instruction s,
BasicBlock b)
Replace all heap variables that an instruction defs with
new heap variables.
|
Modifier and Type | Method and Description |
---|---|
private HashSet<HeapOperand<Object>> |
SSADictionary.findOrCreateOriginalDefs(Object type)
Return a set of all the original definitions of a heap variable.
|
private HashSet<HeapOperand<Object>> |
SSADictionary.findOrCreateOriginalUses(Object type)
Return a set of all the original uses of a heap variable.
|
(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.
|
Modifier and Type | Method and Description |
---|---|
private int |
LICM._checkLoop(Instruction inst,
HeapOperand<?> hop,
int xidx) |
(package private) void |
SSADictionary.addToUseChain(HeapOperand<Object> op)
Add an HeapOperand to the use chain of its heap variable
|
private int |
LICM.checkLoop(Instruction inst,
HeapOperand<Object> hop,
int xidx,
BasicBlock block) |
(package private) void |
SSADictionary.deleteFromUseChain(HeapOperand<Object> op)
Delete an HeapOperand from the use chain of its heap variable
|
private static HeapOperand<Object>[] |
SSADictionary.extendHArray(HeapOperand<Object>[] H)
Returns a copy of H with an additional free slot at position 0
|
private boolean |
LICM.replaceUses(Instruction inst,
HeapOperand<?> replacement,
BasicBlockOperand replacementBlock,
boolean onlyPEIs) |
(package private) void |
SSADictionary.replaceUses(Instruction s,
HeapOperand<Object>[] H)
Register that an instruction now uses the set of heap operands
|
(package private) Instruction |
LICM.scheduleHeapDefsEarly(HeapOperand<?>[] op,
Instruction earlyPos,
Instruction me)
Schedules an instruction as early as possible,
but behind the definitions of op[i] and behind earlyPos.
|
Modifier and Type | Method and Description |
---|---|
private void |
EnterSSA.search2(BasicBlock X,
HashMap<Object,Stack<HeapOperand<Object>>> stacks)
This routine is the guts of the SSA construction phase for heap array
SSA.
|