Package com.android.dx.ssa.back
Class FirstFitLocalCombiningAllocator
java.lang.Object
com.android.dx.ssa.back.RegisterAllocator
com.android.dx.ssa.back.FirstFitLocalCombiningAllocator
Allocates registers in a first-fit fashion, with the bottom reserved for
method parameters and all SSAregisters representing the same local variable
kept together if possible.
-
Field Summary
Fields inherited from class com.android.dx.ssa.back.RegisterAllocator
interference, ssaMeth
-
Constructor Summary
ConstructorDescriptionFirstFitLocalCombiningAllocator
(SsaMethod ssaMeth, InterferenceGraph interference, boolean minimizeRegisters) Constructs instance. -
Method Summary
Modifier and TypeMethodDescriptionRuns the algorithm.boolean
Indicates whether the method params were allocated at the bottom of the namespace, and thus should be moved up to the top of the namespace after phi removal.Methods inherited from class com.android.dx.ssa.back.RegisterAllocator
getCategoryForSsaReg, getDefinitionSpecForSsaReg, insertMoveBefore, isDefinitionMoveParam
-
Constructor Details
-
FirstFitLocalCombiningAllocator
public FirstFitLocalCombiningAllocator(SsaMethod ssaMeth, InterferenceGraph interference, boolean minimizeRegisters) Constructs instance.- Parameters:
ssaMeth
-non-null;
method to processinterference
- non-null interference graph for SSA registersminimizeRegisters
- true if converter should take steps to minimize rop-form registers
-
-
Method Details
-
wantsParamsMovedHigh
public boolean wantsParamsMovedHigh()Indicates whether the method params were allocated at the bottom of the namespace, and thus should be moved up to the top of the namespace after phi removal.- Specified by:
wantsParamsMovedHigh
in classRegisterAllocator
- Returns:
true
if params should be moved from low to high
-
allocateRegisters
Runs the algorithm.- Specified by:
allocateRegisters
in classRegisterAllocator
- Returns:
- a register mapper to apply to the
SsaMethod
-