Skip to main content

Module node_flow

Module node_flow 

Source
Expand description

For each node in a control-flow graph, determines whether that node should have a physical counter, or a counter expression that is derived from the physical counters of other nodes.

Based on the algorithm given in โ€œOptimal measurement points for program frequency countsโ€ (Knuth & Stevenson, 1973).

Re-exportsยง

use rustc_data_structures::graph; ๐Ÿ”’
use rustc_data_structures::union_find::UnionFind; ๐Ÿ”’
use rustc_index::bit_set::DenseBitSet; ๐Ÿ”’
use rustc_index::Idx; ๐Ÿ”’
use rustc_index::IndexSlice; ๐Ÿ”’
use rustc_index::IndexVec; ๐Ÿ”’
use rustc_middle::mir::coverage::Op; ๐Ÿ”’

Structsยง

CounterTerm ๐Ÿ”’
Part of a nodeโ€™s counter expression, which is a sum of counter terms.
NodeCounters ๐Ÿ”’
End result of allocating physical counters and counter expressions for the nodes of a graph.
NodeFlowData ๐Ÿ”’
Data representing a view of some underlying graph, in which each nodeโ€™s successors have been merged into a single โ€œsupernodeโ€.
SpantreeBuilder ๐Ÿ”’
SpantreeEdge ๐Ÿ”’

Functionsยง

make_node_counters ๐Ÿ”’
Uses the graph information in node_flow_data, together with a given permutation of all nodes in the graph, to create physical counters and counter expressions for each node in the underlying graph.
node_flow_data_for_balanced_graph ๐Ÿ”’
Creates a โ€œmergedโ€ view of an underlying graph.