|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.ibm.wala.analysis.stackMachine.AbstractIntStackMachine
public abstract class AbstractIntStackMachine
Skeleton of functionality to propogate 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 | |
|---|---|
protected static class |
AbstractIntStackMachine.BasicStackFlowProvider
This gives some basic facilities for shoving things around on the stack. |
static interface |
AbstractIntStackMachine.FlowProvider
Interface which defines a flow function for a basic block |
class |
AbstractIntStackMachine.MachineState
Representation of the state of the JVM stack machine at some program point. |
protected static interface |
AbstractIntStackMachine.Meeter
A Meeter object provides the dataflow logic needed to meet the abstract machine state for a dataflow meet. |
| Field Summary | |
|---|---|
static int |
BOTTOM
|
static int |
IGNORE
|
protected int |
maxLocals
the max number of locals in play |
static boolean |
OPTIMISTIC
Should uninitialized variables be considered TOP (optimistic) or BOTTOM (pessimistic); |
static int |
TOP
|
static int |
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 |
| Constructor Summary | |
|---|---|
protected |
AbstractIntStackMachine(ShrikeCFG G)
|
| Method Summary | |
|---|---|
int[] |
allocateNewLocalsArray()
|
AbstractIntStackMachine.MachineState |
getEntryState()
|
AbstractIntStackMachine.MachineState |
getIn(ShrikeCFG.BasicBlock bb)
|
protected void |
init(AbstractIntStackMachine.Meeter meeter,
AbstractIntStackMachine.FlowProvider flow)
|
protected void |
initializeVariables()
Convenience method ... |
boolean |
solve()
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final int TOP
public static final int BOTTOM
public static final int UNANALYZED
public static final int IGNORE
protected final int maxLocals
public static final boolean OPTIMISTIC
| Constructor Detail |
|---|
protected AbstractIntStackMachine(ShrikeCFG G)
| Method Detail |
|---|
protected void init(AbstractIntStackMachine.Meeter meeter,
AbstractIntStackMachine.FlowProvider flow)
meeter - flow - public boolean solve()
protected void initializeVariables()
public AbstractIntStackMachine.MachineState getEntryState()
public AbstractIntStackMachine.MachineState getIn(ShrikeCFG.BasicBlock bb)
public int[] allocateNewLocalsArray()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||