Added dataflow module
This commit is contained in:
29
lib/analysis/Dataflow.mli
Normal file
29
lib/analysis/Dataflow.mli
Normal file
@ -0,0 +1,29 @@
|
||||
module type C = sig
|
||||
type elt
|
||||
type internal
|
||||
|
||||
type internalnode = {
|
||||
internalin: internal list;
|
||||
internalout: internal list;
|
||||
internalbetween: internal list list;
|
||||
}
|
||||
|
||||
type cfgt = elt Cfg.cfginternal
|
||||
|
||||
type t = {
|
||||
t: cfgt;
|
||||
internalvar: internalnode Cfg.NodeMap.t;
|
||||
}
|
||||
|
||||
val from_cfg : cfgt -> t
|
||||
val to_cfg : t -> cfgt
|
||||
|
||||
val fixed_point : ?init:(elt list -> internalnode) -> ?update:(t -> Cfg.Node.t -> internalnode) -> t -> t
|
||||
|
||||
val pp : out_channel -> t -> unit
|
||||
end
|
||||
|
||||
module Make
|
||||
(M: Cfg.PrintableType)
|
||||
(I: Cfg.PrintableType)
|
||||
: C with type elt = M.t and type internal = I.t
|
||||
Reference in New Issue
Block a user