Class AbstractIntRegisterMachine
java.lang.Object
com.ibm.wala.dalvik.ssa.AbstractIntRegisterMachine
- All Implemented Interfaces:
FixedPointConstants
- Direct Known Subclasses:
DexSSABuilder
Skeleton of functionality to propagate information through the Java bytecode stack machine using
ShrikeBT.
This class computes properties the Java operand stack and of the local variables at the beginning of each basic block.
In this implementation, each dataflow variable value is an integer, and the "meeter" object provides the meets
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classThis gives some basic facilities for shoving things around on the stack.static interfaceInterface which defines a flow function for a basic blockclassRepresentation of the state of the JVM stack machine at some program point.protected static interfaceA Meeter object provides the dataflow logic needed to meet the abstract machine state for a dataflow meet. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intprotected final intthe max number of locals in playstatic final booleanShould uninitialized variables be considered TOP (optimistic) or BOTTOM (pessimistic);static final intstatic final intFields inherited from interface FixedPointConstants
CHANGED, CHANGED_AND_FIXED, CHANGED_MASK, FIXED_MASK, NOT_CHANGED, NOT_CHANGED_AND_FIXED, SIDE_EFFECT_MASK -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint[]protected voidprotected voidConvenience method ...booleansolve()
-
Field Details
-
TOP
public static final int TOP- See Also:
-
BOTTOM
public static final int BOTTOM- See Also:
-
UNANALYZED
public static final int UNANALYZED- See Also:
-
IGNORE
public static final int IGNORE- See Also:
-
maxLocals
protected final int maxLocalsthe max number of locals in play -
OPTIMISTIC
public static final boolean OPTIMISTICShould uninitialized variables be considered TOP (optimistic) or BOTTOM (pessimistic);- See Also:
-
-
Constructor Details
-
AbstractIntRegisterMachine
-
-
Method Details
-
init
protected void init(AbstractIntRegisterMachine.Meeter meeter, AbstractIntRegisterMachine.FlowProvider flow) -
solve
public boolean solve() -
initializeVariables
protected void initializeVariables()Convenience method ... a little ugly .. perhaps delete later. -
getEntryState
-
getIn
- Returns:
- the state at the entry to a given block
-
allocateNewLocalsArray
public int[] allocateNewLocalsArray()
-