jon.recoil.org

Module Cfg_dataflow.Forward

Parameters

Signature

type domain = D.t
type context = T.context
val run : Cfg.t -> ?max_iteration:int -> init:domain -> handlers_are_entry_points:bool -> context -> (domain Label.Tbl.t, unit) Stdlib.result

Perform the dataflow analysis on the passed CFG, returning OK _ if a fix-point has been reached and Error _ otherwise, where the nested value is a partial map from labels to the domain values at the start of the corresponding blocks. If Error _ is returned then the contents of the map is not guaranteed to be sound.

A fix-point is not reached if there is still pending work after max_iteration (defaulting to max_int) have been executed, and iteration being the processing of one element from the working set. The init value is the initial value of entry points.