public class SSABuilder extends AbstractIntStackMachine
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.AbstractIntStackMachine.BasicStackFlowProvider, AbstractIntStackMachine.FlowProvider, AbstractIntStackMachine.MachineState, AbstractIntStackMachine.MeeterBOTTOM, IGNORE, OPTIMISTIC, TOP, UNANALYZED| Modifier and Type | Method and Description |
|---|---|
void |
build()
Build the IR
|
ShrikeIndirectionData |
getIndirectionData() |
com.ibm.wala.ssa.SSABuilder.SSA2LocalMap |
getLocalMap() |
protected void |
initializeVariables()
Convenience method ...
|
static SSABuilder |
make(IBytecodeMethod method,
SSACFG cfg,
ShrikeCFG scfg,
SSAInstruction[] instructions,
SymbolTable symbolTable,
boolean buildLocalMap,
SSAPiNodePolicy piNodePolicy) |
getEntryState, getIn, init, solvepublic static SSABuilder make(IBytecodeMethod method, SSACFG cfg, ShrikeCFG scfg, SSAInstruction[] instructions, SymbolTable symbolTable, boolean buildLocalMap, SSAPiNodePolicy piNodePolicy) throws IllegalArgumentException
IllegalArgumentExceptionprotected void initializeVariables()
AbstractIntStackMachineinitializeVariables in class AbstractIntStackMachinepublic void build()
public com.ibm.wala.ssa.SSABuilder.SSA2LocalMap getLocalMap()
public ShrikeIndirectionData getIndirectionData()
Copyright © 2015. All rights reserved.