Module ProcCfg.Backward
Wrapper that reverses the direction of the CFG
Parameters
Base : S with type instrs_dir = IR.Instrs.not_reversed
Signature
type t
= Base.t
type instrs_dir
= IR.Instrs.reversed
module Node = Base.Node
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 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
val wto : t -> Node.t IR.WeakTopologicalOrder.Partition.t