|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.jikesrvm.compilers.opt.regalloc.LinearScan.SpillLocationManager
static class LinearScan.SpillLocationManager
The following class manages allocation and reuse of spill locations.
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface org.jikesrvm.ia32.RegisterConstants |
---|
RegisterConstants.FloatingPointMachineRegister, RegisterConstants.FPR, RegisterConstants.GPR, RegisterConstants.MachineRegister, RegisterConstants.MM, RegisterConstants.XMM |
Field Summary | |
---|---|
(package private) HashSet<LinearScan.SpillLocationInterval> |
freeIntervals
Set of spill locations which were previously allocated, but may be free since the assigned register is no longer live. |
private IR |
ir
The governing IR |
Fields inherited from interface org.jikesrvm.compilers.opt.regalloc.ia32.PhysicalRegisterConstants |
---|
AF, C0, C1, C2, C3, CF, CONDITION_VALUE, DOUBLE_REG, DOUBLE_VALUE, FIRST_DOUBLE, FIRST_INT, FIRST_SPECIAL, FLOAT_VALUE, INT_REG, INT_VALUE, NUM_SPECIALS, NUMBER_TYPE, OF, PF, SF, SPECIAL_REG, ST0, ST1, ZF |
Fields inherited from interface org.jikesrvm.ia32.RegisterConstants |
---|
ALL_FPRS, ALL_GPRS, EAX, EBP, EBX, ECX, EDI, EDX, ESI, ESP, FP0, FP1, FP2, FP3, FP4, FP5, FP6, FP7, INSTRUCTION_WIDTH, LG_INSTRUCTION_WIDTH, MM0, MM1, MM10, MM11, MM12, MM13, MM14, MM15, MM2, MM3, MM4, MM5, MM6, MM7, MM8, MM9, NATIVE_NONVOLATILE_FPRS, NATIVE_NONVOLATILE_GPRS, NATIVE_PARAMETER_FPRS, NATIVE_PARAMETER_GPRS, NATIVE_VOLATILE_FPRS, NATIVE_VOLATILE_GPRS, NONVOLATILE_FPRS, NONVOLATILE_GPRS, NUM_FPRS, NUM_GPRS, NUM_NONVOLATILE_FPRS, NUM_NONVOLATILE_GPRS, NUM_PARAMETER_FPRS, NUM_PARAMETER_GPRS, NUM_RETURN_FPRS, NUM_RETURN_GPRS, NUM_VOLATILE_FPRS, NUM_VOLATILE_GPRS, PARAMETER_FPRS, PARAMETER_GPRS, R0, R1, R10, R11, R12, R13, R14, R15, R2, R3, R4, R5, R6, R7, R8, R9, RETURN_FPRS, RETURN_GPRS, STACK_POINTER, THREAD_REGISTER, VOLATILE_FPRS, VOLATILE_GPRS, XMM0, XMM1, XMM10, XMM11, XMM12, XMM13, XMM14, XMM15, XMM2, XMM3, XMM4, XMM5, XMM6, XMM7, XMM8, XMM9 |
Constructor Summary | |
---|---|
LinearScan.SpillLocationManager(IR ir)
Constructor. |
Method Summary | |
---|---|
(package private) LinearScan.SpillLocationInterval |
findOrCreateSpillLocation(LinearScan.CompoundInterval ci)
Return a spill location that is valid to hold the contents of compound interval ci. |
(package private) void |
freeInterval(LinearScan.SpillLocationInterval i)
Record that a particular interval is potentially available for reuse |
(package private) LinearScan.SpillLocationInterval |
getSpillPreference(LinearScan.CompoundInterval ci,
int spillSize)
Given the current state of the register allocator, compute the available spill location to which ci has the highest preference. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private final IR ir
final HashSet<LinearScan.SpillLocationInterval> freeIntervals
Constructor Detail |
---|
LinearScan.SpillLocationManager(IR ir)
Method Detail |
---|
LinearScan.SpillLocationInterval findOrCreateSpillLocation(LinearScan.CompoundInterval ci)
void freeInterval(LinearScan.SpillLocationInterval i)
LinearScan.SpillLocationInterval getSpillPreference(LinearScan.CompoundInterval ci, int spillSize)
ci
- the interval to spillspillSize
- the size of spill location needed
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |