about summary refs log tree commit diff
path: root/compiler/rustc_pattern_analysis/src/errors.rs
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2024-05-03 20:33:46 +0200
committerGitHub <noreply@github.com>2024-05-03 20:33:46 +0200
commit613bccc4cac38e88a363a99ec5a3c7e316272831 (patch)
treeb29cd1a595c17e85f6d76ce8f318f8fa6ccea6e5 /compiler/rustc_pattern_analysis/src/errors.rs
parentbd305e10c2b4b16048f152ee63ff546cd764d358 (diff)
parentde972b7321a90b85cef953f659b8d6ec5a5a865f (diff)
downloadrust-613bccc4cac38e88a363a99ec5a3c7e316272831.tar.gz
rust-613bccc4cac38e88a363a99ec5a3c7e316272831.zip
Rollup merge of #124555 - Zalathar:init-coverage, r=nnethercote
coverage: Clean up creation of MC/DC condition bitmaps

This PR improves the code for creating and initializing [MC/DC](https://en.wikipedia.org/wiki/Modified_condition/decision_coverage) condition bitmap variables, as introduced by #123409 and modified by #124255.

- The condition bitmap variables are now created eagerly at the start of per-function codegen, via a new `init_coverage` method in `CoverageInfoBuilderMethods`. This avoids having to retroactively create the bitmaps while doing codegen for an individual coverage statement.
- As a result, we can now create and initialize those bitmaps using existing safe APIs, instead of having to perform our own unsafe call to `llvm::LLVMBuildAlloca`.
- This PR also tweaks the way we count the number of condition bitmaps needed, by tracking the total number of bitmaps needed (max depth + 1), instead of only tracking the maximum depth. This reduces the potential for subtle off-by-one confusion.
Diffstat (limited to 'compiler/rustc_pattern_analysis/src/errors.rs')
0 files changed, 0 insertions, 0 deletions