diff options
| author | Zalathar <Zalathar@users.noreply.github.com> | 2023-09-13 12:15:40 +1000 |
|---|---|---|
| committer | Zalathar <Zalathar@users.noreply.github.com> | 2023-10-18 21:22:40 +1100 |
| commit | a18c5f3b751dbfa6c192dc48a6c6f28250e9bc97 (patch) | |
| tree | 0beb479be41134927ab18e56e3054623a4d4fd6e /compiler/rustc_mir_transform/src/coverage/mod.rs | |
| parent | c479bc7f3b8bb0441bef0634b0a60cfdd1ac0914 (diff) | |
| download | rust-a18c5f3b751dbfa6c192dc48a6c6f28250e9bc97.tar.gz rust-a18c5f3b751dbfa6c192dc48a6c6f28250e9bc97.zip | |
coverage: Store the number of counters/expressions in function coverage info
Coverage codegen can now allocate arrays based on the number of counters/expressions originally used by the instrumentor. The existing query that inspects coverage statements is still used for determining the number of counters passed to `llvm.instrprof.increment`. If some high-numbered counters were removed by MIR optimizations, the instrumented binary can potentially use less memory and disk space at runtime.
Diffstat (limited to 'compiler/rustc_mir_transform/src/coverage/mod.rs')
| -rw-r--r-- | compiler/rustc_mir_transform/src/coverage/mod.rs | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/compiler/rustc_mir_transform/src/coverage/mod.rs b/compiler/rustc_mir_transform/src/coverage/mod.rs index 1ce6ecc3bb5..e1b656bd981 100644 --- a/compiler/rustc_mir_transform/src/coverage/mod.rs +++ b/compiler/rustc_mir_transform/src/coverage/mod.rs @@ -214,6 +214,8 @@ impl<'a, 'tcx> Instrumentor<'a, 'tcx> { self.mir_body.function_coverage_info = Some(Box::new(FunctionCoverageInfo { function_source_hash: self.function_source_hash, + num_counters: self.coverage_counters.num_counters(), + num_expressions: self.coverage_counters.num_expressions(), })); } |
