coverage: Rename CounterIncrementSite
to just Site
A "site" is a node or edge in the coverage graph.
This commit is contained in:
parent
2a3b4a0afd
commit
7ecc677f5b
2 changed files with 14 additions and 13 deletions
|
@ -43,8 +43,9 @@ struct BcbExpression {
|
||||||
rhs: BcbCounter,
|
rhs: BcbCounter,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
/// Enum representing either a node or an edge in the coverage graph.
|
||||||
pub(super) enum CounterIncrementSite {
|
#[derive(Clone, Copy, Debug)]
|
||||||
|
pub(super) enum Site {
|
||||||
Node { bcb: BasicCoverageBlock },
|
Node { bcb: BasicCoverageBlock },
|
||||||
Edge { from_bcb: BasicCoverageBlock, to_bcb: BasicCoverageBlock },
|
Edge { from_bcb: BasicCoverageBlock, to_bcb: BasicCoverageBlock },
|
||||||
}
|
}
|
||||||
|
@ -54,7 +55,7 @@ pub(super) enum CounterIncrementSite {
|
||||||
pub(super) struct CoverageCounters {
|
pub(super) struct CoverageCounters {
|
||||||
/// List of places where a counter-increment statement should be injected
|
/// List of places where a counter-increment statement should be injected
|
||||||
/// into MIR, each with its corresponding counter ID.
|
/// into MIR, each with its corresponding counter ID.
|
||||||
counter_increment_sites: IndexVec<CounterId, CounterIncrementSite>,
|
counter_increment_sites: IndexVec<CounterId, Site>,
|
||||||
|
|
||||||
/// Coverage counters/expressions that are associated with individual BCBs.
|
/// Coverage counters/expressions that are associated with individual BCBs.
|
||||||
node_counters: IndexVec<BasicCoverageBlock, Option<BcbCounter>>,
|
node_counters: IndexVec<BasicCoverageBlock, Option<BcbCounter>>,
|
||||||
|
@ -98,14 +99,14 @@ impl CoverageCounters {
|
||||||
|
|
||||||
/// Shared helper used by [`Self::make_phys_node_counter`] and
|
/// Shared helper used by [`Self::make_phys_node_counter`] and
|
||||||
/// [`Self::make_phys_edge_counter`]. Don't call this directly.
|
/// [`Self::make_phys_edge_counter`]. Don't call this directly.
|
||||||
fn make_counter_inner(&mut self, site: CounterIncrementSite) -> BcbCounter {
|
fn make_counter_inner(&mut self, site: Site) -> BcbCounter {
|
||||||
let id = self.counter_increment_sites.push(site);
|
let id = self.counter_increment_sites.push(site);
|
||||||
BcbCounter::Counter { id }
|
BcbCounter::Counter { id }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates a new physical counter for a BCB node.
|
/// Creates a new physical counter for a BCB node.
|
||||||
fn make_phys_node_counter(&mut self, bcb: BasicCoverageBlock) -> BcbCounter {
|
fn make_phys_node_counter(&mut self, bcb: BasicCoverageBlock) -> BcbCounter {
|
||||||
self.make_counter_inner(CounterIncrementSite::Node { bcb })
|
self.make_counter_inner(Site::Node { bcb })
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Creates a new physical counter for a BCB edge.
|
/// Creates a new physical counter for a BCB edge.
|
||||||
|
@ -114,7 +115,7 @@ impl CoverageCounters {
|
||||||
from_bcb: BasicCoverageBlock,
|
from_bcb: BasicCoverageBlock,
|
||||||
to_bcb: BasicCoverageBlock,
|
to_bcb: BasicCoverageBlock,
|
||||||
) -> BcbCounter {
|
) -> BcbCounter {
|
||||||
self.make_counter_inner(CounterIncrementSite::Edge { from_bcb, to_bcb })
|
self.make_counter_inner(Site::Edge { from_bcb, to_bcb })
|
||||||
}
|
}
|
||||||
|
|
||||||
fn make_expression(&mut self, lhs: BcbCounter, op: Op, rhs: BcbCounter) -> BcbCounter {
|
fn make_expression(&mut self, lhs: BcbCounter, op: Op, rhs: BcbCounter) -> BcbCounter {
|
||||||
|
@ -224,8 +225,8 @@ impl CoverageCounters {
|
||||||
/// each site's corresponding counter ID.
|
/// each site's corresponding counter ID.
|
||||||
pub(super) fn counter_increment_sites(
|
pub(super) fn counter_increment_sites(
|
||||||
&self,
|
&self,
|
||||||
) -> impl Iterator<Item = (CounterId, &CounterIncrementSite)> {
|
) -> impl Iterator<Item = (CounterId, Site)> + Captures<'_> {
|
||||||
self.counter_increment_sites.iter_enumerated()
|
self.counter_increment_sites.iter_enumerated().map(|(id, &site)| (id, site))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns an iterator over the subset of BCB nodes that have been associated
|
/// Returns an iterator over the subset of BCB nodes that have been associated
|
||||||
|
|
|
@ -25,7 +25,7 @@ use rustc_span::source_map::SourceMap;
|
||||||
use rustc_span::{BytePos, Pos, SourceFile, Span};
|
use rustc_span::{BytePos, Pos, SourceFile, Span};
|
||||||
use tracing::{debug, debug_span, trace};
|
use tracing::{debug, debug_span, trace};
|
||||||
|
|
||||||
use crate::coverage::counters::{CounterIncrementSite, CoverageCounters};
|
use crate::coverage::counters::{CoverageCounters, Site};
|
||||||
use crate::coverage::graph::CoverageGraph;
|
use crate::coverage::graph::CoverageGraph;
|
||||||
use crate::coverage::mappings::ExtractedMappings;
|
use crate::coverage::mappings::ExtractedMappings;
|
||||||
|
|
||||||
|
@ -265,13 +265,13 @@ fn inject_coverage_statements<'tcx>(
|
||||||
coverage_counters: &CoverageCounters,
|
coverage_counters: &CoverageCounters,
|
||||||
) {
|
) {
|
||||||
// Inject counter-increment statements into MIR.
|
// Inject counter-increment statements into MIR.
|
||||||
for (id, counter_increment_site) in coverage_counters.counter_increment_sites() {
|
for (id, site) in coverage_counters.counter_increment_sites() {
|
||||||
// Determine the block to inject a counter-increment statement into.
|
// Determine the block to inject a counter-increment statement into.
|
||||||
// For BCB nodes this is just their first block, but for edges we need
|
// For BCB nodes this is just their first block, but for edges we need
|
||||||
// to create a new block between the two BCBs, and inject into that.
|
// to create a new block between the two BCBs, and inject into that.
|
||||||
let target_bb = match *counter_increment_site {
|
let target_bb = match site {
|
||||||
CounterIncrementSite::Node { bcb } => basic_coverage_blocks[bcb].leader_bb(),
|
Site::Node { bcb } => basic_coverage_blocks[bcb].leader_bb(),
|
||||||
CounterIncrementSite::Edge { from_bcb, to_bcb } => {
|
Site::Edge { from_bcb, to_bcb } => {
|
||||||
// Create a new block between the last block of `from_bcb` and
|
// Create a new block between the last block of `from_bcb` and
|
||||||
// the first block of `to_bcb`.
|
// the first block of `to_bcb`.
|
||||||
let from_bb = basic_coverage_blocks[from_bcb].last_bb();
|
let from_bb = basic_coverage_blocks[from_bcb].last_bb();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue