public class AnalysisLatticeElement<BlockStateType extends BlockState<BlockStateType,CallContextType,CallEdgeType>,CallContextType extends ICallContext<CallContextType>,CallEdgeType extends CallEdge<BlockStateType>> extends Object implements IAnalysisLatticeElement<BlockStateType,CallContextType,CallEdgeType>
IAnalysisLatticeElement.MergeResult| Constructor and Description |
|---|
AnalysisLatticeElement(FlowGraph fg)
Constructs a new global analysis lattice element.
|
| Modifier and Type | Method and Description |
|---|---|
void |
check()
Checks that all states are consistent.
|
CallGraph<BlockStateType,CallContextType,CallEdgeType> |
getCallGraph()
Returns the call graph.
|
int |
getSize(BasicBlock block)
Returns the number of states stored for the given basic block.
|
BlockStateType |
getState(BasicBlock block,
CallContextType context)
Returns the abstract state for entry of the given basic block and call context,
where null represents none.
|
Map<CallContextType,BlockStateType> |
getStates(BasicBlock block)
Returns the contexts and abstract states for the entry of the given basic block.
|
IAnalysisLatticeElement.MergeResult |
propagate(BlockStateType s,
BasicBlock b,
CallContextType c,
boolean trim,
boolean overwrite)
Propagates s into the entry state of b in call context c.
|
public AnalysisLatticeElement(FlowGraph fg)
public void check()
IAnalysisLatticeElementcheck in interface IAnalysisLatticeElement<BlockStateType extends BlockState<BlockStateType,CallContextType,CallEdgeType>,CallContextType extends ICallContext<CallContextType>,CallEdgeType extends CallEdge<BlockStateType>>public CallGraph<BlockStateType,CallContextType,CallEdgeType> getCallGraph()
IAnalysisLatticeElementgetCallGraph in interface IAnalysisLatticeElement<BlockStateType extends BlockState<BlockStateType,CallContextType,CallEdgeType>,CallContextType extends ICallContext<CallContextType>,CallEdgeType extends CallEdge<BlockStateType>>public int getSize(BasicBlock block)
IAnalysisLatticeElementgetSize in interface IAnalysisLatticeElement<BlockStateType extends BlockState<BlockStateType,CallContextType,CallEdgeType>,CallContextType extends ICallContext<CallContextType>,CallEdgeType extends CallEdge<BlockStateType>>public BlockStateType getState(BasicBlock block, CallContextType context)
IAnalysisLatticeElementgetState in interface IAnalysisLatticeElement<BlockStateType extends BlockState<BlockStateType,CallContextType,CallEdgeType>,CallContextType extends ICallContext<CallContextType>,CallEdgeType extends CallEdge<BlockStateType>>public Map<CallContextType,BlockStateType> getStates(BasicBlock block)
IAnalysisLatticeElementgetStates in interface IAnalysisLatticeElement<BlockStateType extends BlockState<BlockStateType,CallContextType,CallEdgeType>,CallContextType extends ICallContext<CallContextType>,CallEdgeType extends CallEdge<BlockStateType>>public IAnalysisLatticeElement.MergeResult propagate(BlockStateType s, BasicBlock b, CallContextType c, boolean trim, boolean overwrite)
IAnalysisLatticeElementpropagate in interface IAnalysisLatticeElement<BlockStateType extends BlockState<BlockStateType,CallContextType,CallEdgeType>,CallContextType extends ICallContext<CallContextType>,CallEdgeType extends CallEdge<BlockStateType>>trim - if set, trim the state while joiningoverwrite - if set, overwrite the existing stateCopyright © 2012 Aarhus University