Module Analysis_and_optimization.Dependence_analysis

~~~~~ TODO ~~~~~

Sufficient information about each node to build the dependency graph.

Label dependence doesn't need the exit RD set, but variable dependence does.

Given dependency information for each node, find the 'immediate' dependencies of a node, where 'immediate' means the first-degree control flow parents and the reachable definitions of RHS variables.

Given dependency information for each node, find all of the dependencies of a single node.

Given dependency information for each node, find all of the dependencies of a set of variables at single node.

'blockers' are variables which will not be traversed.

Build the dependency information for each node in the log_prob section of a program

Build the dependency information for each node in the log_prob section of a program

Given dependency information for each node, find all of the dependencies of all nodes, effectively building the dependency graph.

This is more efficient than calling node_dependencies on each node individually.

Build the dependency graph for the log_prob section of a program, where labels correspond to the labels built by statement_map.

Produce a list of uninitialized variables and their label locations, from the flowgraph starting at the given statement