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 SSAIR
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.
-
-
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 void
build()
Build the IRShrikeIndirectionData
getIndirectionData()
com.ibm.wala.dalvik.ssa.DexSSABuilder.SSA2LocalMap
getLocalMap()
protected void
initializeVariables()
Convenience method ...static DexSSABuilder
make(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:AbstractIntRegisterMachine
Convenience method ... a little ugly .. perhaps delete later.- Overrides:
initializeVariables
in classAbstractIntRegisterMachine
-
build
public void build()
Build the IR
-
getLocalMap
public com.ibm.wala.dalvik.ssa.DexSSABuilder.SSA2LocalMap getLocalMap()
-
getIndirectionData
public ShrikeIndirectionData getIndirectionData()
-
-