Skip to content

Commit 56c6288

Browse files
committed
coverage: Rename CoverageSpans to ExtractedMappings
1 parent 84cedbe commit 56c6288

File tree

2 files changed

+27
-21
lines changed

2 files changed

+27
-21
lines changed

compiler/rustc_mir_transform/src/coverage/mappings.rs

+12-6
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ pub(super) struct MCDCDecision {
5353
}
5454

5555
#[derive(Default)]
56-
pub(super) struct CoverageSpans {
56+
pub(super) struct ExtractedMappings {
5757
pub(super) code_mappings: Vec<CodeMapping>,
5858
pub(super) branch_pairs: Vec<BranchPair>,
5959
pub(super) mcdc_bitmap_bytes: u32,
@@ -63,17 +63,17 @@ pub(super) struct CoverageSpans {
6363

6464
/// Extracts coverage-relevant spans from MIR, and associates them with
6565
/// their corresponding BCBs.
66-
pub(super) fn generate_coverage_spans(
66+
pub(super) fn extract_all_mapping_info_from_mir(
6767
mir_body: &mir::Body<'_>,
6868
hir_info: &ExtractedHirInfo,
6969
basic_coverage_blocks: &CoverageGraph,
70-
) -> CoverageSpans {
70+
) -> ExtractedMappings {
7171
if hir_info.is_async_fn {
7272
// An async function desugars into a function that returns a future,
7373
// with the user code wrapped in a closure. Any spans in the desugared
7474
// outer function will be unhelpful, so just keep the signature span
7575
// and ignore all of the spans in the MIR body.
76-
let mut mappings = CoverageSpans::default();
76+
let mut mappings = ExtractedMappings::default();
7777
if let Some(span) = hir_info.fn_sig_span_extended {
7878
mappings.code_mappings.push(CodeMapping { span, bcb: START_BCB });
7979
}
@@ -99,10 +99,16 @@ pub(super) fn generate_coverage_spans(
9999
&mut mcdc_decisions,
100100
);
101101

102-
CoverageSpans { code_mappings, branch_pairs, mcdc_bitmap_bytes, mcdc_branches, mcdc_decisions }
102+
ExtractedMappings {
103+
code_mappings,
104+
branch_pairs,
105+
mcdc_bitmap_bytes,
106+
mcdc_branches,
107+
mcdc_decisions,
108+
}
103109
}
104110

105-
impl CoverageSpans {
111+
impl ExtractedMappings {
106112
pub(super) fn all_bcbs_with_counter_mappings(
107113
&self,
108114
basic_coverage_blocks: &CoverageGraph, // Only used for allocating a correctly-sized set

compiler/rustc_mir_transform/src/coverage/mod.rs

+15-15
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ mod tests;
99

1010
use self::counters::{CounterIncrementSite, CoverageCounters};
1111
use self::graph::{BasicCoverageBlock, CoverageGraph};
12-
use self::mappings::CoverageSpans;
12+
use self::mappings::ExtractedMappings;
1313

1414
use crate::MirPass;
1515

@@ -69,17 +69,17 @@ fn instrument_function_for_coverage<'tcx>(tcx: TyCtxt<'tcx>, mir_body: &mut mir:
6969
let basic_coverage_blocks = CoverageGraph::from_mir(mir_body);
7070

7171
////////////////////////////////////////////////////
72-
// Compute coverage spans from the `CoverageGraph`.
73-
let coverage_spans =
74-
mappings::generate_coverage_spans(mir_body, &hir_info, &basic_coverage_blocks);
72+
// Extract coverage spans and other mapping info from MIR.
73+
let extracted_mappings =
74+
mappings::extract_all_mapping_info_from_mir(mir_body, &hir_info, &basic_coverage_blocks);
7575

7676
////////////////////////////////////////////////////
7777
// Create an optimized mix of `Counter`s and `Expression`s for the `CoverageGraph`. Ensure
7878
// every coverage span has a `Counter` or `Expression` assigned to its `BasicCoverageBlock`
7979
// and all `Expression` dependencies (operands) are also generated, for any other
8080
// `BasicCoverageBlock`s not already associated with a coverage span.
8181
let bcbs_with_counter_mappings =
82-
coverage_spans.all_bcbs_with_counter_mappings(&basic_coverage_blocks);
82+
extracted_mappings.all_bcbs_with_counter_mappings(&basic_coverage_blocks);
8383
if bcbs_with_counter_mappings.is_empty() {
8484
// No relevant spans were found in MIR, so skip instrumenting this function.
8585
return;
@@ -89,7 +89,7 @@ fn instrument_function_for_coverage<'tcx>(tcx: TyCtxt<'tcx>, mir_body: &mut mir:
8989
let coverage_counters =
9090
CoverageCounters::make_bcb_counters(&basic_coverage_blocks, bcb_has_counter_mappings);
9191

92-
let mappings = create_mappings(tcx, &hir_info, &coverage_spans, &coverage_counters);
92+
let mappings = create_mappings(tcx, &hir_info, &extracted_mappings, &coverage_counters);
9393
if mappings.is_empty() {
9494
// No spans could be converted into valid mappings, so skip this function.
9595
debug!("no spans could be converted into valid mappings; skipping");
@@ -103,9 +103,9 @@ fn instrument_function_for_coverage<'tcx>(tcx: TyCtxt<'tcx>, mir_body: &mut mir:
103103
&coverage_counters,
104104
);
105105

106-
inject_mcdc_statements(mir_body, &basic_coverage_blocks, &coverage_spans);
106+
inject_mcdc_statements(mir_body, &basic_coverage_blocks, &extracted_mappings);
107107

108-
let mcdc_num_condition_bitmaps = coverage_spans
108+
let mcdc_num_condition_bitmaps = extracted_mappings
109109
.mcdc_decisions
110110
.iter()
111111
.map(|&mappings::MCDCDecision { decision_depth, .. }| decision_depth)
@@ -115,7 +115,7 @@ fn instrument_function_for_coverage<'tcx>(tcx: TyCtxt<'tcx>, mir_body: &mut mir:
115115
mir_body.function_coverage_info = Some(Box::new(FunctionCoverageInfo {
116116
function_source_hash: hir_info.function_source_hash,
117117
num_counters: coverage_counters.num_counters(),
118-
mcdc_bitmap_bytes: coverage_spans.mcdc_bitmap_bytes,
118+
mcdc_bitmap_bytes: extracted_mappings.mcdc_bitmap_bytes,
119119
expressions: coverage_counters.into_expressions(),
120120
mappings,
121121
mcdc_num_condition_bitmaps,
@@ -130,7 +130,7 @@ fn instrument_function_for_coverage<'tcx>(tcx: TyCtxt<'tcx>, mir_body: &mut mir:
130130
fn create_mappings<'tcx>(
131131
tcx: TyCtxt<'tcx>,
132132
hir_info: &ExtractedHirInfo,
133-
coverage_spans: &CoverageSpans,
133+
extracted_mappings: &ExtractedMappings,
134134
coverage_counters: &CoverageCounters,
135135
) -> Vec<Mapping> {
136136
let source_map = tcx.sess.source_map();
@@ -152,13 +152,13 @@ fn create_mappings<'tcx>(
152152
let region_for_span = |span: Span| make_code_region(source_map, file_name, span, body_span);
153153

154154
// Fully destructure the mappings struct to make sure we don't miss any kinds.
155-
let CoverageSpans {
155+
let ExtractedMappings {
156156
code_mappings,
157157
branch_pairs,
158158
mcdc_bitmap_bytes: _,
159159
mcdc_branches,
160160
mcdc_decisions,
161-
} = coverage_spans;
161+
} = extracted_mappings;
162162
let mut mappings = Vec::new();
163163

164164
mappings.extend(code_mappings.iter().filter_map(
@@ -261,7 +261,7 @@ fn inject_coverage_statements<'tcx>(
261261
fn inject_mcdc_statements<'tcx>(
262262
mir_body: &mut mir::Body<'tcx>,
263263
basic_coverage_blocks: &CoverageGraph,
264-
coverage_spans: &CoverageSpans,
264+
extracted_mappings: &ExtractedMappings,
265265
) {
266266
// Inject test vector update first because `inject_statement` always insert new statement at head.
267267
for &mappings::MCDCDecision {
@@ -270,7 +270,7 @@ fn inject_mcdc_statements<'tcx>(
270270
bitmap_idx,
271271
conditions_num: _,
272272
decision_depth,
273-
} in &coverage_spans.mcdc_decisions
273+
} in &extracted_mappings.mcdc_decisions
274274
{
275275
for end in end_bcbs {
276276
let end_bb = basic_coverage_blocks[*end].leader_bb();
@@ -283,7 +283,7 @@ fn inject_mcdc_statements<'tcx>(
283283
}
284284

285285
for &mappings::MCDCBranch { span: _, true_bcb, false_bcb, condition_info, decision_depth } in
286-
&coverage_spans.mcdc_branches
286+
&extracted_mappings.mcdc_branches
287287
{
288288
let Some(condition_info) = condition_info else { continue };
289289
let id = condition_info.condition_id;

0 commit comments

Comments
 (0)