Module ProcCfg.Normal

Forward CFG with no exceptional control-flow

type t = IR.Procdesc.t
type instrs_dir = IR.Instrs.not_reversed
module Node = DefaultNode
val instrs : Node.t -> instrs_dir IR.Instrs.t

get the instructions from a node

val fold_succs : t -> (Node.tNode.t'accum) IStdlib.IStd.Container.fold

fold over all successors (normal and exceptional)

val fold_preds : t -> (Node.tNode.t'accum) IStdlib.IStd.Container.fold

fold over all predecessors (normal and exceptional)

val fold_normal_succs : t -> (Node.tNode.t'accum) IStdlib.IStd.Container.fold

fold over non-exceptional successors

val fold_normal_preds : t -> (Node.tNode.t'accum) IStdlib.IStd.Container.fold

fold over non-exceptional predecessors

val fold_exceptional_succs : t -> (Node.tNode.t'accum) IStdlib.IStd.Container.fold

fold over exceptional successors

val fold_exceptional_preds : t -> (Node.tNode.t'accum) IStdlib.IStd.Container.fold

fold over exceptional predescessors

val start_node : t -> Node.t
val exit_node : t -> Node.t
val proc_desc : t -> IR.Procdesc.t
val fold_nodes : (tNode.t'accum) IStdlib.IStd.Container.fold
val from_pdesc : IR.Procdesc.t -> t
val is_loop_head : IR.Procdesc.t -> Node.t -> bool
val wto : t -> Node.t IR.WeakTopologicalOrder.Partition.t