public final class GCIRMapElement extends Object
Modifier and Type | Field and Description |
---|---|
private Instruction |
inst
The instruction, i.e., GC point
|
private List<RegSpillListElement> |
regSpillList
The list of references (either symbolic regs or physical regs & spills)
|
Constructor and Description |
---|
GCIRMapElement(Instruction inst,
List<RegSpillListElement> regSpillList) |
Modifier and Type | Method and Description |
---|---|
void |
addRegSpillElement(RegSpillListElement e) |
int |
countNumElements()
Counts and returns the number of references for this map
|
int |
countNumRegElements()
Counts and returns the number of register elements (not spills)
for this entry
|
int |
countNumSpillElements()
Counts and returns the number of spill for this entry
|
GCIRMapElement |
createTwin(Instruction inst)
Creates a twin entry: required when the same MIR GC point
is split into two instructions, both of which are PEIs
after register allocation/GCIRMap creation.
|
void |
deleteRegSpillElement(RegSpillListElement e) |
Instruction |
getInstruction() |
List<RegSpillListElement> |
regSpillList()
returns an enumerator to access the registers/spills for this entry
|
String |
toString()
Return a string version of this object
|
private final Instruction inst
private final List<RegSpillListElement> regSpillList
public GCIRMapElement(Instruction inst, List<RegSpillListElement> regSpillList)
inst
- the instruction of interestregSpillList
- the list of references either symbolic (before regalloc)
or physical/spill location (after regalloc)public GCIRMapElement createTwin(Instruction inst)
inst
- the instruction which needs a twin elementpublic Instruction getInstruction()
public List<RegSpillListElement> regSpillList()
public void addRegSpillElement(RegSpillListElement e)
public void deleteRegSpillElement(RegSpillListElement e)
public int countNumElements()
public int countNumRegElements()
public int countNumSpillElements()