Narrow trait CoverageInfoBuilderMethods
down to just one method
This effectively inlines most of `FunctionCx::codegen_coverage` into the LLVM implementation of `CoverageInfoBuilderMethods`.
This commit is contained in:
parent
6dab6dc5fc
commit
4169d0f756
5 changed files with 69 additions and 102 deletions
|
@ -1,6 +1,6 @@
|
|||
use super::BackendTypes;
|
||||
use rustc_hir::def_id::DefId;
|
||||
use rustc_middle::mir::coverage::*;
|
||||
use rustc_middle::mir::Coverage;
|
||||
use rustc_middle::ty::Instance;
|
||||
|
||||
pub trait CoverageInfoMethods<'tcx>: BackendTypes {
|
||||
|
@ -21,37 +21,9 @@ pub trait CoverageInfoMethods<'tcx>: BackendTypes {
|
|||
}
|
||||
|
||||
pub trait CoverageInfoBuilderMethods<'tcx>: BackendTypes {
|
||||
/// Returns true if the function source hash was added to the coverage map (even if it had
|
||||
/// already been added, for this instance). Returns false *only* if `-C instrument-coverage` is
|
||||
/// not enabled (a coverage map is not being generated).
|
||||
fn set_function_source_hash(
|
||||
&mut self,
|
||||
instance: Instance<'tcx>,
|
||||
function_source_hash: u64,
|
||||
) -> bool;
|
||||
|
||||
/// Returns true if the counter was added to the coverage map; false if `-C instrument-coverage`
|
||||
/// is not enabled (a coverage map is not being generated).
|
||||
fn add_coverage_counter(
|
||||
&mut self,
|
||||
instance: Instance<'tcx>,
|
||||
index: CounterValueReference,
|
||||
region: CodeRegion,
|
||||
) -> bool;
|
||||
|
||||
/// Returns true if the expression was added to the coverage map; false if
|
||||
/// `-C instrument-coverage` is not enabled (a coverage map is not being generated).
|
||||
fn add_coverage_counter_expression(
|
||||
&mut self,
|
||||
instance: Instance<'tcx>,
|
||||
id: InjectedExpressionId,
|
||||
lhs: ExpressionOperandId,
|
||||
op: Op,
|
||||
rhs: ExpressionOperandId,
|
||||
region: Option<CodeRegion>,
|
||||
) -> bool;
|
||||
|
||||
/// Returns true if the region was added to the coverage map; false if `-C instrument-coverage`
|
||||
/// is not enabled (a coverage map is not being generated).
|
||||
fn add_coverage_unreachable(&mut self, instance: Instance<'tcx>, region: CodeRegion) -> bool;
|
||||
/// Handle the MIR coverage info in a backend-specific way.
|
||||
///
|
||||
/// This can potentially be a no-op in backends that don't support
|
||||
/// coverage instrumentation.
|
||||
fn add_coverage(&mut self, instance: Instance<'tcx>, coverage: &Coverage);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue