Package 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
-
-
Field Summary
Fields Modifier and Type Field Description static boolean
DEBUG
static boolean
DEBUG_NAMES
static boolean
DEBUG_UNDO
static boolean
DUMP
-
Fields inherited from class com.ibm.wala.cast.ir.ssa.AbstractSSAConversion
C, CFG, defaultValues, DF, instructions, phiCounts, S, symbolTable, valueMap
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 com.ibm.wala.cast.ir.ssa.AbstractSSAConversion
getDefaultValue, getInstructions, hasDefaultValue, init, iterateInstructions, placePhiNodes, top
-
-
-
-
Method Detail
-
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 classAbstractSSAConversion
-
getDef
protected int getDef(SSAInstruction inst, int index)
- Specified by:
getDef
in classAbstractSSAConversion
-
getNumberOfUses
protected int getNumberOfUses(SSAInstruction inst)
- Specified by:
getNumberOfUses
in classAbstractSSAConversion
-
getUse
protected int getUse(SSAInstruction inst, int index)
- Specified by:
getUse
in classAbstractSSAConversion
-
isAssignInstruction
protected boolean isAssignInstruction(SSAInstruction inst)
- Specified by:
isAssignInstruction
in classAbstractSSAConversion
-
getMaxValueNumber
protected int getMaxValueNumber()
- Specified by:
getMaxValueNumber
in classAbstractSSAConversion
-
skip
protected boolean skip(int vn)
- Specified by:
skip
in classAbstractSSAConversion
-
isLive
protected boolean isLive(SSACFG.BasicBlock Y, int V)
- Specified by:
isLive
in classAbstractSSAConversion
-
placeNewPhiAt
protected void placeNewPhiAt(int value, SSACFG.BasicBlock Y)
- Specified by:
placeNewPhiAt
in classAbstractSSAConversion
-
getPhi
protected SSAPhiInstruction getPhi(SSACFG.BasicBlock B, int index)
- Specified by:
getPhi
in classAbstractSSAConversion
-
setPhi
protected void setPhi(SSACFG.BasicBlock B, int index, SSAPhiInstruction inst)
- Specified by:
setPhi
in classAbstractSSAConversion
-
repairPhiDefs
protected SSAPhiInstruction repairPhiDefs(SSAPhiInstruction phi, int[] newDefs)
- Specified by:
repairPhiDefs
in classAbstractSSAConversion
-
repairPhiUse
protected void repairPhiUse(SSACFG.BasicBlock BB, int phiIndex, int rvalIndex, int newRval)
- Specified by:
repairPhiUse
in classAbstractSSAConversion
-
pushAssignment
protected void pushAssignment(SSAInstruction inst, int index, int newRhs)
- Specified by:
pushAssignment
in classAbstractSSAConversion
-
repairInstructionUses
protected void repairInstructionUses(SSAInstruction inst, int index, int[] newUses)
- Specified by:
repairInstructionUses
in classAbstractSSAConversion
-
repairInstructionDefs
protected void repairInstructionDefs(SSAInstruction inst, int index, int[] newDefs, int[] newUses)
- Specified by:
repairInstructionDefs
in classAbstractSSAConversion
-
popAssignment
protected void popAssignment(SSAInstruction inst, int index)
- Specified by:
popAssignment
in classAbstractSSAConversion
-
isConstant
protected boolean isConstant(int valueNumber)
- Specified by:
isConstant
in classAbstractSSAConversion
-
skipRepair
protected boolean skipRepair(SSAInstruction inst, int index)
- Overrides:
skipRepair
in classAbstractSSAConversion
-
getNextNewValueNumber
protected int getNextNewValueNumber()
- Specified by:
getNextNewValueNumber
in classAbstractSSAConversion
-
initializeVariables
protected void initializeVariables()
- Specified by:
initializeVariables
in classAbstractSSAConversion
-
repairExit
protected void repairExit()
- Specified by:
repairExit
in classAbstractSSAConversion
-
fail
protected void fail(int v)
- Overrides:
fail
in classAbstractSSAConversion
-
getComputedLocalMap
public IR.SSA2LocalMap getComputedLocalMap()
-
perform
public void perform()
- Overrides:
perform
in classAbstractSSAConversion
-
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)
-
-