public abstract class MoveFactory extends Object
| Modifier and Type | Class and Description |
|---|---|
static class |
MoveFactory.BackupSlotProvider |
static class |
MoveFactory.RegisterBackupPair |
| Constructor and Description |
|---|
MoveFactory() |
| Modifier and Type | Method and Description |
|---|---|
abstract boolean |
allowConstantToStackMove(Constant constant) |
abstract boolean |
canInlineConstant(Constant constant)
Checks whether the supplied constant can be used without loading it into a register for most
operations, i.e., for commonly used arithmetic, logical, and comparison operations.
|
abstract LIRInstruction |
createLoad(AllocatableValue result,
Constant input) |
abstract LIRInstruction |
createMove(AllocatableValue result,
Value input) |
abstract LIRInstruction |
createStackLoad(AllocatableValue result,
Constant input) |
abstract LIRInstruction |
createStackMove(AllocatableValue result,
AllocatableValue input) |
boolean |
mayEmbedConstantLoad(Constant constant)
Checks whether the loading of the supplied constant can be deferred until usage.
|
public boolean mayEmbedConstantLoad(Constant constant)
public abstract boolean canInlineConstant(Constant constant)
constant - The constant to check.public abstract boolean allowConstantToStackMove(Constant constant)
constant - The constant that might be moved to a stack slot.true if constant to stack moves are supported for this constant.public abstract LIRInstruction createMove(AllocatableValue result, Value input)
public abstract LIRInstruction createStackMove(AllocatableValue result, AllocatableValue input)
public abstract LIRInstruction createLoad(AllocatableValue result, Constant input)
public abstract LIRInstruction createStackLoad(AllocatableValue result, Constant input)