com.ibm.wala.cast.ir.ssa
Class SSAConversion

java.lang.Object
  extended by com.ibm.wala.cast.ir.ssa.AbstractSSAConversion
      extended by com.ibm.wala.cast.ir.ssa.SSAConversion

public class SSAConversion
extends AbstractSSAConversion


Field Summary
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
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, hasDefaultValue, init, placePhiNodes, top
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEBUG

public static boolean DEBUG

DEBUG_UNDO

public static boolean DEBUG_UNDO

DEBUG_NAMES

public static boolean DEBUG_NAMES

DUMP

public static boolean DUMP
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 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)