Module SIL.CFG

type t
type instrs_dir
val instrs : Node.t -> instrs_dir IR.Instrs.t

get the instructions from a node

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

fold over all successors (normal and exceptional)

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

fold over all predecessors (normal and exceptional)

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

fold over non-exceptional successors

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

fold over non-exceptional predecessors

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

fold over exceptional successors

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

fold over exceptional predescessors

val start_node : t -> Node.t
val exit_node : t -> Node.t
val exn_sink_node : t -> Node.t option
val proc_desc : t -> IR.Procdesc.t
val fold_nodes : (t, Node.t, 'accum) IStdlib.IStd.Container.fold
val from_pdesc : IR.Procdesc.t -> t
val is_loop_head : IR.Procdesc.t -> Node.t -> bool