Class DexSSABuilder

All Implemented Interfaces:
com.ibm.wala.fixpoint.FixedPointConstants

public class DexSSABuilder extends AbstractIntRegisterMachine
This class constructs an SSA IR from a backing ShrikeBT instruction stream.

The basic algorithm here is an abstract interpretation over the Java bytecode to determine types of stack locations and local variables. As a side effect, the flow functions of the abstract interpretation emit instructions, eliminating the stack abstraction and moving to a register-transfer language in SSA form.

  • Method Details

    • make

      public static DexSSABuilder make(DexIMethod method, com.ibm.wala.ssa.SSACFG cfg, DexCFG scfg, com.ibm.wala.ssa.SSAInstruction[] instructions, com.ibm.wala.ssa.SymbolTable symbolTable, boolean buildLocalMap, com.ibm.wala.ssa.SSAPiNodePolicy piNodePolicy) throws IllegalArgumentException
      Throws:
      IllegalArgumentException
    • initializeVariables

      protected void initializeVariables()
      Description copied from class: AbstractIntRegisterMachine
      Convenience method ... a little ugly .. perhaps delete later.
      Overrides:
      initializeVariables in class AbstractIntRegisterMachine
    • build

      public void build()
      Build the IR
    • getLocalMap

      public com.ibm.wala.dalvik.ssa.DexSSABuilder.SSA2LocalMap getLocalMap()
    • getIndirectionData

      public com.ibm.wala.ssa.ShrikeIndirectionData getIndirectionData()