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 booleanDEBUGstatic booleanDEBUG_NAMESstatic booleanDEBUG_UNDOstatic booleanDUMP-
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.SSA2LocalMapconvert(AstMethod M, AstIRFactory.AstIR ir, SSAOptions options)static IR.SSA2LocalMapconvert(AstMethod M, AstIRFactory.AstIR ir, SSAOptions options, IntSet values)static voidcopyUse(AstIRFactory.AstIR ir, int fromInst, int fromUse, int toInst, int toUse)protected voidfail(int v)IR.SSA2LocalMapgetComputedLocalMap()protected intgetDef(SSAInstruction inst, int index)protected intgetMaxValueNumber()protected intgetNextNewValueNumber()protected intgetNumberOfDefs(SSAInstruction inst)protected intgetNumberOfUses(SSAInstruction inst)protected SSAPhiInstructiongetPhi(SSACFG.BasicBlock B, int index)protected intgetUse(SSAInstruction inst, int index)protected voidinitializeVariables()protected booleanisAssignInstruction(SSAInstruction inst)protected booleanisConstant(int valueNumber)protected booleanisLive(SSACFG.BasicBlock Y, int V)voidperform()protected voidplaceNewPhiAt(int value, SSACFG.BasicBlock Y)protected voidpopAssignment(SSAInstruction inst, int index)protected voidpushAssignment(SSAInstruction inst, int index, int newRhs)protected voidrepairExit()protected voidrepairInstructionDefs(SSAInstruction inst, int index, int[] newDefs, int[] newUses)protected voidrepairInstructionUses(SSAInstruction inst, int index, int[] newUses)protected SSAPhiInstructionrepairPhiDefs(SSAPhiInstruction phi, int[] newDefs)protected voidrepairPhiUse(SSACFG.BasicBlock BB, int phiIndex, int rvalIndex, int newRval)protected voidsetPhi(SSACFG.BasicBlock B, int index, SSAPhiInstruction inst)protected booleanskip(int vn)protected booleanskipRepair(SSAInstruction inst, int index)static voidundoCopyPropagation(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:
getNumberOfDefsin classAbstractSSAConversion
-
getDef
protected int getDef(SSAInstruction inst, int index)
- Specified by:
getDefin classAbstractSSAConversion
-
getNumberOfUses
protected int getNumberOfUses(SSAInstruction inst)
- Specified by:
getNumberOfUsesin classAbstractSSAConversion
-
getUse
protected int getUse(SSAInstruction inst, int index)
- Specified by:
getUsein classAbstractSSAConversion
-
isAssignInstruction
protected boolean isAssignInstruction(SSAInstruction inst)
- Specified by:
isAssignInstructionin classAbstractSSAConversion
-
getMaxValueNumber
protected int getMaxValueNumber()
- Specified by:
getMaxValueNumberin classAbstractSSAConversion
-
skip
protected boolean skip(int vn)
- Specified by:
skipin classAbstractSSAConversion
-
isLive
protected boolean isLive(SSACFG.BasicBlock Y, int V)
- Specified by:
isLivein classAbstractSSAConversion
-
placeNewPhiAt
protected void placeNewPhiAt(int value, SSACFG.BasicBlock Y)- Specified by:
placeNewPhiAtin classAbstractSSAConversion
-
getPhi
protected SSAPhiInstruction getPhi(SSACFG.BasicBlock B, int index)
- Specified by:
getPhiin classAbstractSSAConversion
-
setPhi
protected void setPhi(SSACFG.BasicBlock B, int index, SSAPhiInstruction inst)
- Specified by:
setPhiin classAbstractSSAConversion
-
repairPhiDefs
protected SSAPhiInstruction repairPhiDefs(SSAPhiInstruction phi, int[] newDefs)
- Specified by:
repairPhiDefsin classAbstractSSAConversion
-
repairPhiUse
protected void repairPhiUse(SSACFG.BasicBlock BB, int phiIndex, int rvalIndex, int newRval)
- Specified by:
repairPhiUsein classAbstractSSAConversion
-
pushAssignment
protected void pushAssignment(SSAInstruction inst, int index, int newRhs)
- Specified by:
pushAssignmentin classAbstractSSAConversion
-
repairInstructionUses
protected void repairInstructionUses(SSAInstruction inst, int index, int[] newUses)
- Specified by:
repairInstructionUsesin classAbstractSSAConversion
-
repairInstructionDefs
protected void repairInstructionDefs(SSAInstruction inst, int index, int[] newDefs, int[] newUses)
- Specified by:
repairInstructionDefsin classAbstractSSAConversion
-
popAssignment
protected void popAssignment(SSAInstruction inst, int index)
- Specified by:
popAssignmentin classAbstractSSAConversion
-
isConstant
protected boolean isConstant(int valueNumber)
- Specified by:
isConstantin classAbstractSSAConversion
-
skipRepair
protected boolean skipRepair(SSAInstruction inst, int index)
- Overrides:
skipRepairin classAbstractSSAConversion
-
getNextNewValueNumber
protected int getNextNewValueNumber()
- Specified by:
getNextNewValueNumberin classAbstractSSAConversion
-
initializeVariables
protected void initializeVariables()
- Specified by:
initializeVariablesin classAbstractSSAConversion
-
repairExit
protected void repairExit()
- Specified by:
repairExitin classAbstractSSAConversion
-
fail
protected void fail(int v)
- Overrides:
failin classAbstractSSAConversion
-
getComputedLocalMap
public IR.SSA2LocalMap getComputedLocalMap()
-
perform
public void perform()
- Overrides:
performin 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)
-
-