Module Cfg_with_infos
type liveness = Cfg_liveness.Liveness.domain InstructionId.Tbl.tHolds a Cfg_with_layout.t value, and "caches" for:
- the liveness information;
- the dominators information;
- the loop information.
Each cache can be invalidated, and should be when modification of the underlying CFG would cause the cached information to become invalid.
Typically, any structural change to the graph, or change to the `arg` and `res` field of the instrutions is likely to result in a different liveness information, but only structural changes to the graph would affect dominators and loop information.
val make : Cfg_with_layout.t -> Cfg_with_infos.tval cfg_with_layout : Cfg_with_infos.t -> Cfg_with_layout.tval cfg : Cfg_with_infos.t -> Cfg.tval fold_blocks :
Cfg_with_infos.t ->
f:(Label.t -> Cfg.basic_block -> 'a -> 'a) ->
init:'a ->
'aval fold_body_instructions :
Cfg_with_infos.t ->
f:('a -> Cfg.basic Cfg.instruction -> 'a) ->
init:'a ->
'aval get_block_exn : Cfg_with_infos.t -> Label.t -> Cfg.basic_blockval liveness : Cfg_with_infos.t -> Cfg_with_infos.livenessval liveness_find :
Cfg_with_infos.t ->
InstructionId.t ->
Cfg_liveness.Liveness.domainval liveness_find_opt :
Cfg_with_infos.t ->
InstructionId.t ->
Cfg_liveness.Liveness.domain optionval invalidate_liveness : Cfg_with_infos.t -> unitval dominators : Cfg_with_infos.t -> Cfg_dominators.tval loop_infos : Cfg_with_infos.t -> Cfg_loop_infos.tval invalidate_loop_infos : Cfg_with_infos.t -> unitval invalidate_dominators_and_loop_infos : Cfg_with_infos.t -> unit