com.ibm.wala.dataflow.graph
Interface ITransferFunctionProvider<T,V extends IVariable>
- Type Parameters:
T - type of node in the graphV - type of abstract states computed
public interface ITransferFunctionProvider<T,V extends IVariable>
The DataflowSolver builds system over graphs, with dataflow transfer
functions on the nodes, the edges or both. In any case, it takes an
ITransferFunctionProvider to tell it what functions to use.
getNodeTransferFunction
UnaryOperator<V> getNodeTransferFunction(T node)
- Returns:
- the transfer function from IN_node -> OUT_node
hasNodeTransferFunctions
boolean hasNodeTransferFunctions()
- Returns:
- true if this provider provides node transfer functions
getEdgeTransferFunction
UnaryOperator<V> getEdgeTransferFunction(T src,
T dst)
- Returns:
- the transfer function from OUT_src -> EDGE_
hasEdgeTransferFunctions
boolean hasEdgeTransferFunctions()
- Returns:
- true if this provider provides edge transfer functions
getMeetOperator
AbstractMeetOperator<V> getMeetOperator()
- TODO: perhaps this should go with a Lattice object instead. TODO: provide
an API to allow composition of the meet operator with the flow operator for
a given block, as an optimization?