Package com.ibm.wala.dalvik.ssa
Class DexSSABuilder
- java.lang.Object
-
- com.ibm.wala.dalvik.ssa.AbstractIntRegisterMachine
-
- com.ibm.wala.dalvik.ssa.DexSSABuilder
-
- All Implemented Interfaces:
FixedPointConstants
public class DexSSABuilder extends AbstractIntRegisterMachine
This class constructs an SSAIRfrom 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.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.ibm.wala.dalvik.ssa.AbstractIntRegisterMachine
AbstractIntRegisterMachine.BasicRegisterFlowProvider, AbstractIntRegisterMachine.FlowProvider, AbstractIntRegisterMachine.MachineState, AbstractIntRegisterMachine.Meeter
-
-
Field Summary
-
Fields inherited from class com.ibm.wala.dalvik.ssa.AbstractIntRegisterMachine
BOTTOM, IGNORE, maxLocals, OPTIMISTIC, TOP, UNANALYZED
-
Fields inherited from interface com.ibm.wala.fixpoint.FixedPointConstants
CHANGED, CHANGED_AND_FIXED, CHANGED_MASK, FIXED_MASK, NOT_CHANGED, NOT_CHANGED_AND_FIXED, SIDE_EFFECT_MASK
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbuild()Build the IRShrikeIndirectionDatagetIndirectionData()com.ibm.wala.dalvik.ssa.DexSSABuilder.SSA2LocalMapgetLocalMap()protected voidinitializeVariables()Convenience method ...static DexSSABuildermake(DexIMethod method, SSACFG cfg, DexCFG scfg, SSAInstruction[] instructions, SymbolTable symbolTable, boolean buildLocalMap, SSAPiNodePolicy piNodePolicy)-
Methods inherited from class com.ibm.wala.dalvik.ssa.AbstractIntRegisterMachine
allocateNewLocalsArray, getEntryState, getIn, init, solve
-
-
-
-
Method Detail
-
make
public static DexSSABuilder make(DexIMethod method, SSACFG cfg, DexCFG scfg, SSAInstruction[] instructions, SymbolTable symbolTable, boolean buildLocalMap, SSAPiNodePolicy piNodePolicy) throws IllegalArgumentException
- Throws:
IllegalArgumentException
-
initializeVariables
protected void initializeVariables()
Description copied from class:AbstractIntRegisterMachineConvenience method ... a little ugly .. perhaps delete later.- Overrides:
initializeVariablesin classAbstractIntRegisterMachine
-
build
public void build()
Build the IR
-
getLocalMap
public com.ibm.wala.dalvik.ssa.DexSSABuilder.SSA2LocalMap getLocalMap()
-
getIndirectionData
public ShrikeIndirectionData getIndirectionData()
-
-