public class GenericSolver.SolverInterface
extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
void |
addToWorklist(BasicBlock block,
ContextType context)
Adds the given location to the worklist.
|
AnalysisType |
getAnalysis()
Returns the analysis object.
|
IAnalysisLatticeElement<StateType,ContextType,CallEdgeType> |
getAnalysisLatticeElement()
Returns the analysis lattice element.
|
CallDependencies<ContextType> |
getCallDependencies() |
FlowGraph |
getFlowGraph()
Returns the flow graph.
|
MonitoringType |
getMonitoring()
Returns the monitoring object of the analysis.
|
AbstractNode |
getNode()
Returns the node currently being visited.
|
StateType |
getState()
Returns the current abstract state.
|
WorkList<ContextType> |
getWorklist() |
boolean |
isCallEdgeCharged(AbstractNode caller,
ContextType caller_context,
ContextType edge_context,
BlockAndContext<ContextType> callee_entry)
Checks whether the given edge is charged.
|
boolean |
isScanning()
Returns true if in message scanning phase.
|
boolean |
propagate(StateType state,
BlockAndContext<ContextType> to,
boolean localize)
Propagates dataflow.
|
void |
propagateToBasicBlock(StateType state,
BasicBlock block,
ContextType context)
Merges
state into the entry state of block in context context
and updates the work list accordingly. |
void |
propagateToFunctionEntry(AbstractNode call_node,
ContextType caller_context,
StateType edge_state,
ContextType edge_context,
BasicBlock callee_entry,
boolean implicit)
Merges the edge state into the entry state of the callee in the given context and updates the work list accordingly.
|
void |
returnFromFunctionExit(StateType return_state,
AbstractNode call_node,
ContextType caller_context,
BasicBlock callee_entry,
ContextType edge_context,
boolean implicit)
Transforms the given state inversely according to the call edge.
|
void |
setNode(AbstractNode node) |
void |
setState(StateType state)
Sets the current abstract state.
|
void |
withState(StateType state,
java.lang.Runnable fun)
Runs the given function with the given state set to current.
|
<T> T |
withState(StateType state,
java.util.function.Supplier<T> fun)
Runs the given supplier function with the given state set to current.
|
<T> T |
withStateAndNode(StateType state,
AbstractNode node,
java.util.function.Supplier<T> fun)
Runs the given supplier function with the given state and node set to current.
|
public void addToWorklist(BasicBlock block, ContextType context)
public AnalysisType getAnalysis()
public IAnalysisLatticeElement<StateType,ContextType,CallEdgeType> getAnalysisLatticeElement()
public CallDependencies<ContextType> getCallDependencies()
public FlowGraph getFlowGraph()
public MonitoringType getMonitoring()
public AbstractNode getNode()
public StateType getState()
public WorkList<ContextType> getWorklist()
public boolean isCallEdgeCharged(AbstractNode caller, ContextType caller_context, ContextType edge_context, BlockAndContext<ContextType> callee_entry)
public boolean isScanning()
public boolean propagate(StateType state, BlockAndContext<ContextType> to, boolean localize)
public void propagateToBasicBlock(StateType state, BasicBlock block, ContextType context)
state
into the entry state of block
in context context
and updates the work list accordingly.
The given state may be modified by this operation.
Ignored if in scan phase.public void propagateToFunctionEntry(AbstractNode call_node, ContextType caller_context, StateType edge_state, ContextType edge_context, BasicBlock callee_entry, boolean implicit)
public void returnFromFunctionExit(StateType return_state, AbstractNode call_node, ContextType caller_context, BasicBlock callee_entry, ContextType edge_context, boolean implicit)
public void setNode(AbstractNode node)
public void setState(StateType state)
public void withState(StateType state, java.lang.Runnable fun)
public <T> T withState(StateType state, java.util.function.Supplier<T> fun)
public <T> T withStateAndNode(StateType state, AbstractNode node, java.util.function.Supplier<T> fun)
Copyright © 2009-2019 Aarhus University