public class NullCheckCombining extends CompilerPhase
Doing (1) more or less implies either (a) doing (2) or (b) making large changes to the MIR operator set such that all load/stores produce validation results. Although this would be possible, it would not be a trivial change. So, until we have an urgent need to preserve guard operands all the way through the MIR, we'll take the easy way out.
container| Constructor and Description |
|---|
NullCheckCombining() |
| Modifier and Type | Method and Description |
|---|---|
private boolean |
canFold(Instruction s,
Operand activeGuard,
boolean isStore) |
String |
getName() |
private boolean |
isExplicitLoad(Instruction s,
Operator op) |
private boolean |
isExplicitStore(Instruction s,
Operator op) |
CompilerPhase |
newExecution(IR ir)
Return this instance of this phase.
|
void |
perform(IR ir)
Perform nullcheck combining and validation register removal.
|
dumpIR, dumpIR, getClassConstructor, getCompilerPhaseConstructor, getCompilerPhaseConstructor, performPhase, printingEnabled, reportAdditionalStats, setContainer, shouldPerform, verifypublic NullCheckCombining()
public CompilerPhase newExecution(IR ir)
newExecution in class CompilerPhaseir - not usedpublic final String getName()
getName in class CompilerPhasepublic void perform(IR ir)
perform in class CompilerPhaseir - the IR to transformprivate boolean isExplicitStore(Instruction s, Operator op)
private boolean isExplicitLoad(Instruction s, Operator op)
private boolean canFold(Instruction s, Operand activeGuard, boolean isStore)