21 lines
493 B
OCaml
21 lines
493 B
OCaml
|
|
open Analysis
|
||
|
|
|
||
|
|
module Variable = struct
|
||
|
|
type t = string
|
||
|
|
let pp (ppf: out_channel) (v: t) : unit =
|
||
|
|
Printf.fprintf ppf "%s" v
|
||
|
|
|
||
|
|
let pplist (ppf: out_channel) (vv: t list) : unit =
|
||
|
|
List.iter (Printf.fprintf ppf "%s, ") vv
|
||
|
|
end
|
||
|
|
|
||
|
|
module RISCCfg = CfgRISC.RISCCfg
|
||
|
|
|
||
|
|
module DVCfg = Dataflow.Make (CfgRISC.RISCSimpleStatements) (Variable)
|
||
|
|
|
||
|
|
let compute_defined_variables (cfg: RISCCfg.t) : DVCfg.t =
|
||
|
|
DVCfg.from_cfg cfg
|
||
|
|
|
||
|
|
let compute_cfg (dvcfg : DVCfg.t) : RISCCfg.t =
|
||
|
|
DVCfg.to_cfg dvcfg
|