Computes data dependence (def-use chains) from IR.
Summary
Functions
Analyzes which variables a node defines and uses.
Builds a data dependence graph from IR nodes.
Collects variable names defined by a pattern.
Functions
@spec analyze_bindings(Reach.IR.Node.t()) :: {[atom()], [atom()]}
Analyzes which variables a node defines and uses.
@spec build([Reach.IR.Node.t()] | Reach.IR.Node.t()) :: Graph.t()
Builds a data dependence graph from IR nodes.
Returns a Graph.t() where edges represent data flow from definitions to uses.
@spec collect_definitions(Reach.IR.Node.t()) :: [atom()]
Collects variable names defined by a pattern.