Reach.ControlFlow (Reach v2.7.1)

Copy Markdown View Source

Translates IR nodes into control flow graph vertices and edges.

Summary

Functions

Builds a control flow graph from a function definition IR node.

Types

edge_label()

@type edge_label() ::
  :sequential
  | :true_branch
  | :false_branch
  | {:clause_match, non_neg_integer()}
  | {:clause_fail, non_neg_integer()}
  | :guard_success
  | :guard_fail
  | :exception
  | :catch_entry
  | :after_entry
  | :timeout
  | :return

vertex()

@type vertex() :: Reach.IR.Node.id() | :entry | :exit

Functions

build(node)

@spec build(Reach.IR.Node.t()) :: Graph.t()

Builds a control flow graph from a function definition IR node.

Returns a Graph.t() with :entry and :exit as synthetic nodes.