public class DexSSABuilder extends AbstractIntRegisterMachine
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.AbstractIntRegisterMachine.BasicRegisterFlowProvider, AbstractIntRegisterMachine.FlowProvider, AbstractIntRegisterMachine.MachineState, AbstractIntRegisterMachine.MeeterBOTTOM, IGNORE, maxLocals, OPTIMISTIC, TOP, UNANALYZED| Modifier and Type | Method and Description |
|---|---|
void |
build()
Build the IR
|
com.ibm.wala.ssa.ShrikeIndirectionData |
getIndirectionData() |
com.ibm.wala.dalvik.ssa.DexSSABuilder.SSA2LocalMap |
getLocalMap() |
protected void |
initializeVariables()
Convenience method ...
|
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) |
allocateNewLocalsArray, getEntryState, getIn, init, solvepublic 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
IllegalArgumentExceptionprotected void initializeVariables()
AbstractIntRegisterMachineinitializeVariables in class AbstractIntRegisterMachinepublic void build()
public com.ibm.wala.dalvik.ssa.DexSSABuilder.SSA2LocalMap getLocalMap()
public com.ibm.wala.ssa.ShrikeIndirectionData getIndirectionData()
Copyright © 2019. All rights reserved.