com.ibm.wala.cast.ir.ssa
Class SSAConversion
java.lang.Object
com.ibm.wala.cast.ir.ssa.AbstractSSAConversion
com.ibm.wala.cast.ir.ssa.SSAConversion
public class SSAConversion
- extends AbstractSSAConversion
|
Method Summary |
static IR.SSA2LocalMap |
convert(AstMethod M,
AstIRFactory.AstIR ir,
SSAOptions options)
|
static IR.SSA2LocalMap |
convert(AstMethod M,
AstIRFactory.AstIR ir,
SSAOptions options,
IntSet values)
|
static void |
copyUse(AstIRFactory.AstIR ir,
int fromInst,
int fromUse,
int toInst,
int toUse)
|
protected void |
fail(int v)
|
IR.SSA2LocalMap |
getComputedLocalMap()
|
protected int |
getDef(SSAInstruction inst,
int index)
|
protected int |
getMaxValueNumber()
|
protected int |
getNextNewValueNumber()
|
protected int |
getNumberOfDefs(SSAInstruction inst)
|
protected int |
getNumberOfUses(SSAInstruction inst)
|
protected SSAPhiInstruction |
getPhi(SSACFG.BasicBlock B,
int index)
|
protected int |
getUse(SSAInstruction inst,
int index)
|
protected void |
initializeVariables()
|
protected boolean |
isAssignInstruction(SSAInstruction inst)
|
protected boolean |
isConstant(int valueNumber)
|
protected boolean |
isLive(SSACFG.BasicBlock Y,
int V)
|
void |
perform()
|
protected void |
placeNewPhiAt(int value,
SSACFG.BasicBlock Y)
|
protected void |
popAssignment(SSAInstruction inst,
int index)
|
protected void |
pushAssignment(SSAInstruction inst,
int index,
int newRhs)
|
protected void |
repairExit()
|
protected void |
repairInstructionDefs(SSAInstruction inst,
int index,
int[] newDefs,
int[] newUses)
|
protected void |
repairInstructionUses(SSAInstruction inst,
int index,
int[] newUses)
|
protected SSAPhiInstruction |
repairPhiDefs(SSAPhiInstruction phi,
int[] newDefs)
|
protected void |
repairPhiUse(SSACFG.BasicBlock BB,
int phiIndex,
int rvalIndex,
int newRval)
|
protected void |
setPhi(SSACFG.BasicBlock B,
int index,
SSAPhiInstruction inst)
|
protected boolean |
skip(int vn)
|
protected boolean |
skipRepair(SSAInstruction inst,
int index)
|
static void |
undoCopyPropagation(AstIRFactory.AstIR ir,
int instruction,
int use)
|
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DEBUG
public static boolean DEBUG
DEBUG_UNDO
public static boolean DEBUG_UNDO
DEBUG_NAMES
public static boolean DEBUG_NAMES
DUMP
public static boolean DUMP
undoCopyPropagation
public static void undoCopyPropagation(AstIRFactory.AstIR ir,
int instruction,
int use)
copyUse
public static void copyUse(AstIRFactory.AstIR ir,
int fromInst,
int fromUse,
int toInst,
int toUse)
getNumberOfDefs
protected int getNumberOfDefs(SSAInstruction inst)
- Specified by:
getNumberOfDefs in class AbstractSSAConversion
getDef
protected int getDef(SSAInstruction inst,
int index)
- Specified by:
getDef in class AbstractSSAConversion
getNumberOfUses
protected int getNumberOfUses(SSAInstruction inst)
- Specified by:
getNumberOfUses in class AbstractSSAConversion
getUse
protected int getUse(SSAInstruction inst,
int index)
- Specified by:
getUse in class AbstractSSAConversion
isAssignInstruction
protected boolean isAssignInstruction(SSAInstruction inst)
- Specified by:
isAssignInstruction in class AbstractSSAConversion
getMaxValueNumber
protected int getMaxValueNumber()
- Specified by:
getMaxValueNumber in class AbstractSSAConversion
skip
protected boolean skip(int vn)
- Specified by:
skip in class AbstractSSAConversion
isLive
protected boolean isLive(SSACFG.BasicBlock Y,
int V)
- Specified by:
isLive in class AbstractSSAConversion
placeNewPhiAt
protected void placeNewPhiAt(int value,
SSACFG.BasicBlock Y)
- Specified by:
placeNewPhiAt in class AbstractSSAConversion
getPhi
protected SSAPhiInstruction getPhi(SSACFG.BasicBlock B,
int index)
- Specified by:
getPhi in class AbstractSSAConversion
setPhi
protected void setPhi(SSACFG.BasicBlock B,
int index,
SSAPhiInstruction inst)
- Specified by:
setPhi in class AbstractSSAConversion
repairPhiDefs
protected SSAPhiInstruction repairPhiDefs(SSAPhiInstruction phi,
int[] newDefs)
- Specified by:
repairPhiDefs in class AbstractSSAConversion
repairPhiUse
protected void repairPhiUse(SSACFG.BasicBlock BB,
int phiIndex,
int rvalIndex,
int newRval)
- Specified by:
repairPhiUse in class AbstractSSAConversion
pushAssignment
protected void pushAssignment(SSAInstruction inst,
int index,
int newRhs)
- Specified by:
pushAssignment in class AbstractSSAConversion
repairInstructionUses
protected void repairInstructionUses(SSAInstruction inst,
int index,
int[] newUses)
- Specified by:
repairInstructionUses in class AbstractSSAConversion
repairInstructionDefs
protected void repairInstructionDefs(SSAInstruction inst,
int index,
int[] newDefs,
int[] newUses)
- Specified by:
repairInstructionDefs in class AbstractSSAConversion
popAssignment
protected void popAssignment(SSAInstruction inst,
int index)
- Specified by:
popAssignment in class AbstractSSAConversion
isConstant
protected boolean isConstant(int valueNumber)
- Specified by:
isConstant in class AbstractSSAConversion
skipRepair
protected boolean skipRepair(SSAInstruction inst,
int index)
- Overrides:
skipRepair in class AbstractSSAConversion
getNextNewValueNumber
protected int getNextNewValueNumber()
- Specified by:
getNextNewValueNumber in class AbstractSSAConversion
initializeVariables
protected void initializeVariables()
- Specified by:
initializeVariables in class AbstractSSAConversion
repairExit
protected void repairExit()
- Specified by:
repairExit in class AbstractSSAConversion
fail
protected void fail(int v)
- Overrides:
fail in class AbstractSSAConversion
getComputedLocalMap
public IR.SSA2LocalMap getComputedLocalMap()
perform
public void perform()
- Overrides:
perform in class AbstractSSAConversion
convert
public static IR.SSA2LocalMap convert(AstMethod M,
AstIRFactory.AstIR ir,
SSAOptions options)
convert
public static IR.SSA2LocalMap convert(AstMethod M,
AstIRFactory.AstIR ir,
SSAOptions options,
IntSet values)