Copyright | (c) Sebastian Graf 2018 |
---|---|
License | ISC |
Maintainer | sgraf1337@gmail.com |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
Abstracts over the representation of the data-flow graph.
The contents of this module are more or less internal to the Datafix.Worklist implementation.
- data PointInfo domain = PointInfo {
- value :: !(Maybe (ReturnType domain))
- references :: !(IntArgsMonoSet (Products (ParamTypes domain)))
- referrers :: !(IntArgsMonoSet (Products (ParamTypes domain)))
- iterations :: !Int
- emptyPointInfo :: PointInfo domain
- data Diff a = Diff {}
- computeDiff :: MonoMapKey k => IntArgsMonoSet k -> IntArgsMonoSet k -> Diff k
- class GraphRef (ref :: * -> *) where
Documentation
data PointInfo domain Source #
The data associated with each point in the transfer function of a data-flow
Node
.
PointInfo | |
|
(Eq (ReturnType domain), Eq (IntArgsMonoSet (Products (ParamTypes domain)))) => Eq (PointInfo domain) Source # | |
(Show (ReturnType domain), Show (IntArgsMonoSet (Products (ParamTypes domain)))) => Show (PointInfo domain) Source # | |
emptyPointInfo :: PointInfo domain Source #
The default PointInfo
.
Diff between two IntArgsMonoSet
s.
computeDiff :: MonoMapKey k => IntArgsMonoSet k -> IntArgsMonoSet k -> Diff k Source #
Computes the diff between two IntArgsMonoSet
s.
class GraphRef (ref :: * -> *) where Source #
Abstracts over the concrete representation of the data-flow graph.
There are two instances: The default Ref
for sparse graphs based on an IntMap
and Ref
for
the dense case, storing the Node
mapping in a IOVector
.
updatePoint :: MonoMapKey (Products (ParamTypes domain)) => Int -> Products (ParamTypes domain) -> ReturnType domain -> IntArgsMonoSet (Products (ParamTypes domain)) -> ReaderT (ref domain) IO (PointInfo domain) Source #
lookup :: MonoMapKey (Products (ParamTypes domain)) => Int -> Products (ParamTypes domain) -> ReaderT (ref domain) IO (Maybe (PointInfo domain)) Source #
lookupLT :: MonoMapKey (Products (ParamTypes domain)) => Int -> Products (ParamTypes domain) -> ReaderT (ref domain) IO [(Products (ParamTypes domain), PointInfo domain)] Source #