public abstract class AbstractSSAConversion extends Object
Modifier and Type | Field and Description |
---|---|
protected int[] |
C |
protected SSACFG |
CFG |
protected SSAOptions.DefaultValues |
defaultValues |
protected DominanceFrontiers<ISSABasicBlock> |
DF |
protected SSAInstruction[] |
instructions |
protected int[] |
phiCounts |
protected IntStack[] |
S |
protected SymbolTable |
symbolTable |
protected int[] |
valueMap |
Modifier | Constructor and Description |
---|---|
protected |
AbstractSSAConversion(IR ir,
SSAOptions options) |
Modifier and Type | Method and Description |
---|---|
protected void |
fail(int v) |
protected abstract int |
getDef(SSAInstruction inst,
int index) |
protected int |
getDefaultValue(int valueNumber) |
protected SSAInstruction[] |
getInstructions(IR ir) |
protected abstract int |
getMaxValueNumber() |
protected abstract int |
getNextNewValueNumber() |
protected abstract int |
getNumberOfDefs(SSAInstruction inst) |
protected abstract int |
getNumberOfUses(SSAInstruction inst) |
protected abstract SSAPhiInstruction |
getPhi(SSACFG.BasicBlock B,
int index) |
protected abstract int |
getUse(SSAInstruction inst,
int index) |
protected boolean |
hasDefaultValue(int valueNumber) |
protected void |
init() |
protected abstract void |
initializeVariables() |
protected abstract boolean |
isAssignInstruction(SSAInstruction inst) |
protected abstract boolean |
isConstant(int valueNumber) |
protected abstract boolean |
isLive(SSACFG.BasicBlock Y,
int V) |
protected Iterator<SSAInstruction> |
iterateInstructions(IR ir) |
protected void |
perform() |
protected abstract void |
placeNewPhiAt(int value,
SSACFG.BasicBlock Y) |
protected void |
placePhiNodes() |
protected abstract void |
popAssignment(SSAInstruction inst,
int index) |
protected abstract void |
pushAssignment(SSAInstruction inst,
int index,
int newRhs) |
protected abstract void |
repairExit() |
protected abstract void |
repairInstructionDefs(SSAInstruction inst,
int index,
int[] newDefs,
int[] newUses) |
protected abstract void |
repairInstructionUses(SSAInstruction inst,
int index,
int[] newUses) |
protected abstract SSAPhiInstruction |
repairPhiDefs(SSAPhiInstruction phi,
int[] newDefs) |
protected abstract void |
repairPhiUse(SSACFG.BasicBlock BB,
int phiIndex,
int rvalIndex,
int newRval) |
protected abstract void |
setPhi(SSACFG.BasicBlock B,
int index,
SSAPhiInstruction inst) |
protected abstract boolean |
skip(int vn) |
protected boolean |
skipRepair(SSAInstruction inst,
int index) |
protected int |
top(int v) |
protected final SSACFG CFG
protected final DominanceFrontiers<ISSABasicBlock> DF
protected final int[] phiCounts
protected final SSAInstruction[] instructions
protected final SymbolTable symbolTable
protected final SSAOptions.DefaultValues defaultValues
protected IntStack[] S
protected int[] C
protected int[] valueMap
protected AbstractSSAConversion(IR ir, SSAOptions options)
protected abstract int getNumberOfDefs(SSAInstruction inst)
protected abstract int getDef(SSAInstruction inst, int index)
protected abstract int getNumberOfUses(SSAInstruction inst)
protected abstract int getUse(SSAInstruction inst, int index)
protected abstract boolean isAssignInstruction(SSAInstruction inst)
protected abstract int getMaxValueNumber()
protected abstract boolean isLive(SSACFG.BasicBlock Y, int V)
protected abstract boolean skip(int vn)
protected abstract boolean isConstant(int valueNumber)
protected abstract int getNextNewValueNumber()
protected abstract void initializeVariables()
protected abstract void repairExit()
protected abstract void placeNewPhiAt(int value, SSACFG.BasicBlock Y)
protected abstract SSAPhiInstruction getPhi(SSACFG.BasicBlock B, int index)
protected abstract void setPhi(SSACFG.BasicBlock B, int index, SSAPhiInstruction inst)
protected abstract SSAPhiInstruction repairPhiDefs(SSAPhiInstruction phi, int[] newDefs)
protected abstract void repairPhiUse(SSACFG.BasicBlock BB, int phiIndex, int rvalIndex, int newRval)
protected abstract void repairInstructionUses(SSAInstruction inst, int index, int[] newUses)
protected abstract void repairInstructionDefs(SSAInstruction inst, int index, int[] newDefs, int[] newUses)
protected abstract void pushAssignment(SSAInstruction inst, int index, int newRhs)
protected abstract void popAssignment(SSAInstruction inst, int index)
protected void perform()
protected SSAInstruction[] getInstructions(IR ir)
protected final Iterator<SSAInstruction> iterateInstructions(IR ir)
protected void init()
protected void placePhiNodes()
protected boolean skipRepair(SSAInstruction inst, int index)
protected void fail(int v)
protected boolean hasDefaultValue(int valueNumber)
protected int getDefaultValue(int valueNumber)
protected int top(int v)