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>>
TheDataflowSolver
builds system over graphs, with dataflow transfer functions on the nodes, the edges or both. In any case, it takes anITransferFunctionProvider
to 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)
boolean
hasEdgeTransferFunctions()
boolean
hasNodeTransferFunctions()
-
-
-
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?
-
-