[−][src]Module rustc_mir::transform::coverage::graph

Structs

BasicCoverageBlock

A node in the [control-flow graph][CFG] of CoverageGraph.

BasicCoverageBlockData

A BasicCoverageBlockData (BCB) represents the maximal-length sequence of MIR BasicBlocks without conditional branches, and form a new, simplified, coverage-specific Control Flow Graph, without altering the original MIR CFG.

BcbBranch

Represents a successor from a branching BasicCoverageBlock (such as the arms of a SwitchInt) as either the successor BCB itself, if it has only one incoming edge, or the successor plus the specific branching BCB, representing the edge between the two. The latter case distinguishes this incoming edge from other incoming edges to the same target_bcb.

CoverageGraph

A coverage-specific simplification of the MIR control flow graph (CFG). The CoverageGraphs nodes are BasicCoverageBlocks, which encompass one or more MIR BasicBlocks, plus a CoverageKind counter (to be added by CoverageCounters::make_bcb_counters), and an optional set of additional counters--if needed--to count incoming edges, if there are more than one. (These "edge counters" are eventually converted into new MIR BasicBlocks.)

ShortCircuitPreorder
TraversalContext

Maintains separate worklists for each loop in the BasicCoverageBlock CFG, plus one for the CoverageGraph outside all loops. This supports traversing the BCB CFG in a way that ensures a loop is completely traversed before processing Blocks after the end of the loop.

TraverseCoverageGraphWithLoops

Constants

ID_SEPARATOR

Functions

bcb_filtered_successors
find_loop_backedges

Type Definitions

BcbSuccessors