Package com.ibm.wala.dataflow.graph
Interface ITransferFunctionProvider<T,V extends IVariable<V>>
-
- Type Parameters:
T- type of node in the graphV- type of abstract states computed
public interface ITransferFunctionProvider<T,V extends IVariable<V>>TheDataflowSolverbuilds system over graphs, with dataflow transfer functions on the nodes, the edges or both. In any case, it takes anITransferFunctionProviderto tell it what functions to use.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description UnaryOperator<V>getEdgeTransferFunction(T src, T dst)AbstractMeetOperator<V>getMeetOperator()TODO: perhaps this should go with a Lattice object instead.UnaryOperator<V>getNodeTransferFunction(T node)booleanhasEdgeTransferFunctions()booleanhasNodeTransferFunctions()
-
-
-
Method Detail
-
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_<src,dst>
-
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?
-
-