public class GenericSolver.SolverInterface extends Object
| Modifier and Type | Method and Description |
|---|---|
AnalysisType |
getAnalysis()
Returns the analysis object.
|
IAnalysisLatticeElement<BlockStateType,CallContextType,CallEdgeType> |
getAnalysisLatticeElement()
Returns the analysis lattice element.
|
CallContextType |
getCurrentContext()
Returns the current calling context.
|
AbstractNode |
getCurrentNode()
Returns the node currently being visited.
|
BlockStateType |
getCurrentState()
Returns the current abstract state.
|
FlowGraph |
getFlowGraph()
Returns the flow graph.
|
MonitoringType |
getMonitoring()
Returns the monitoring object of the analysis.
|
boolean |
isCallEdgeCharged(AbstractNode call_node,
CallContextType caller_context,
Function callee,
CallContextType callee_context)
Checks whether the given edge is charged.
|
boolean |
isScanning()
Returns true if in message scanning phase.
|
void |
propagateToBasicBlock(BlockStateType state,
BasicBlock block,
CallContextType context)
Merges
state into the entry state of block in call context context
and updates the work list accordingly. |
void |
propagateToBasicBlockDestructively(BlockStateType state,
BasicBlock block,
CallContextType context)
Replaces the entry state of
block in call context context with state
and updates the work list accordingly. |
void |
propagateToFunctionEntry(CallEdgeType edge,
AbstractNode call_node,
CallContextType caller_context,
Function callee,
CallContextType callee_context)
Merges the edge state into the entry state of the callee in the given call context and updates the work list accordingly.
|
void |
returnFromFunctionExit(BlockStateType return_state,
AbstractNode call_node,
CallContextType caller_context,
Function callee,
CallContextType callee_context)
Transforms the given state inversely according to the call edge.
|
void |
setCurrentState(BlockStateType state)
Sets the current abstract state.
|
public AnalysisType getAnalysis()
public IAnalysisLatticeElement<BlockStateType,CallContextType,CallEdgeType> getAnalysisLatticeElement()
public CallContextType getCurrentContext()
public AbstractNode getCurrentNode()
public BlockStateType getCurrentState()
public FlowGraph getFlowGraph()
public MonitoringType getMonitoring()
public boolean isCallEdgeCharged(AbstractNode call_node, CallContextType caller_context, Function callee, CallContextType callee_context)
public boolean isScanning()
public void propagateToBasicBlock(BlockStateType state, BasicBlock block, CallContextType context)
state into the entry state of block in call context context
and updates the work list accordingly.
The given state may be modified by this operation.
Ignored if in scan phase.public void propagateToBasicBlockDestructively(BlockStateType state, BasicBlock block, CallContextType context)
block in call context context with state
and updates the work list accordingly.
The given state may be modified by this operation.
Ignored if in scan phase.public void propagateToFunctionEntry(CallEdgeType edge, AbstractNode call_node, CallContextType caller_context, Function callee, CallContextType callee_context)
public void returnFromFunctionExit(BlockStateType return_state, AbstractNode call_node, CallContextType caller_context, Function callee, CallContextType callee_context)
public void setCurrentState(BlockStateType state)
Copyright © 2012 Aarhus University