coverage: CoverageIdsInfo::mcdc_bitmap_bytes
is never needed
This code for recalculating `mcdc_bitmap_bytes` doesn't provide any benefit, because its result won't have changed from the value in `FunctionCoverageInfo` that was computed during the MIR instrumentation pass.
This commit is contained in:
parent
fba5f44bd8
commit
bfadc3a9b9
3 changed files with 2 additions and 21 deletions
|
@ -207,13 +207,8 @@ impl<'tcx> CoverageInfoBuilderMethods<'tcx> for Builder<'_, '_, 'tcx> {
|
||||||
let cond_bitmap = coverage_context
|
let cond_bitmap = coverage_context
|
||||||
.try_get_mcdc_condition_bitmap(&instance, decision_depth)
|
.try_get_mcdc_condition_bitmap(&instance, decision_depth)
|
||||||
.expect("mcdc cond bitmap should have been allocated for merging into the global bitmap");
|
.expect("mcdc cond bitmap should have been allocated for merging into the global bitmap");
|
||||||
let bitmap_bytes = bx.tcx().coverage_ids_info(instance.def).mcdc_bitmap_bytes;
|
let bitmap_bytes = function_coverage_info.mcdc_bitmap_bytes;
|
||||||
assert!(bitmap_idx < bitmap_bytes, "bitmap index of the decision out of range");
|
assert!(bitmap_idx < bitmap_bytes, "bitmap index of the decision out of range");
|
||||||
assert!(
|
|
||||||
bitmap_bytes <= function_coverage_info.mcdc_bitmap_bytes,
|
|
||||||
"bitmap length disagreement: query says {bitmap_bytes} but function info only has {}",
|
|
||||||
function_coverage_info.mcdc_bitmap_bytes
|
|
||||||
);
|
|
||||||
|
|
||||||
let fn_name = bx.get_pgo_func_name_var(instance);
|
let fn_name = bx.get_pgo_func_name_var(instance);
|
||||||
let hash = bx.const_u64(function_coverage_info.function_source_hash);
|
let hash = bx.const_u64(function_coverage_info.function_source_hash);
|
||||||
|
|
|
@ -362,8 +362,4 @@ pub struct CoverageIdsInfo {
|
||||||
/// InstrumentCoverage MIR pass, if the highest-numbered counter increments
|
/// InstrumentCoverage MIR pass, if the highest-numbered counter increments
|
||||||
/// were removed by MIR optimizations.
|
/// were removed by MIR optimizations.
|
||||||
pub max_counter_id: mir::coverage::CounterId,
|
pub max_counter_id: mir::coverage::CounterId,
|
||||||
|
|
||||||
/// Coverage codegen for mcdc needs to know the size of the global bitmap so that it can
|
|
||||||
/// set the `bytemap-bytes` argument of the `llvm.instrprof.mcdc.tvbitmap.update` intrinsic.
|
|
||||||
pub mcdc_bitmap_bytes: u32,
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,17 +61,7 @@ fn coverage_ids_info<'tcx>(
|
||||||
.max()
|
.max()
|
||||||
.unwrap_or(CounterId::ZERO);
|
.unwrap_or(CounterId::ZERO);
|
||||||
|
|
||||||
let mcdc_bitmap_bytes = mir_body
|
CoverageIdsInfo { max_counter_id }
|
||||||
.coverage_branch_info
|
|
||||||
.as_deref()
|
|
||||||
.map(|info| {
|
|
||||||
info.mcdc_decision_spans
|
|
||||||
.iter()
|
|
||||||
.fold(0, |acc, decision| acc + (1_u32 << decision.conditions_num).div_ceil(8))
|
|
||||||
})
|
|
||||||
.unwrap_or_default();
|
|
||||||
|
|
||||||
CoverageIdsInfo { max_counter_id, mcdc_bitmap_bytes }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn all_coverage_in_mir_body<'a, 'tcx>(
|
fn all_coverage_in_mir_body<'a, 'tcx>(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue