forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Remove trait
CoverageInfoMethods
, since non-LLVM backends don't nee…
…d it These methods are only ever called from within `rustc_codegen_llvm`, so they can just be declared there as well.
- Loading branch information
Showing
5 changed files
with
13 additions
and
60 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,11 @@ | ||
use gccjit::RValue; | ||
use rustc_codegen_ssa::traits::{CoverageInfoBuilderMethods, CoverageInfoMethods}; | ||
use rustc_hir::def_id::DefId; | ||
use rustc_codegen_ssa::traits::CoverageInfoBuilderMethods; | ||
use rustc_middle::mir::Coverage; | ||
use rustc_middle::ty::Instance; | ||
|
||
use crate::builder::Builder; | ||
use crate::context::CodegenCx; | ||
|
||
impl<'a, 'gcc, 'tcx> CoverageInfoBuilderMethods<'tcx> for Builder<'a, 'gcc, 'tcx> { | ||
fn add_coverage(&mut self, _instance: Instance<'tcx>, _coverage: &Coverage) { | ||
// TODO(antoyo) | ||
} | ||
} | ||
|
||
impl<'gcc, 'tcx> CoverageInfoMethods<'tcx> for CodegenCx<'gcc, 'tcx> { | ||
fn coverageinfo_finalize(&self) { | ||
// TODO(antoyo) | ||
} | ||
|
||
fn get_pgo_func_name_var(&self, _instance: Instance<'tcx>) -> RValue<'gcc> { | ||
unimplemented!(); | ||
} | ||
|
||
/// Functions with MIR-based coverage are normally codegenned _only_ if | ||
/// called. LLVM coverage tools typically expect every function to be | ||
/// defined (even if unused), with at least one call to LLVM intrinsic | ||
/// `instrprof.increment`. | ||
/// | ||
/// Codegen a small function that will never be called, with one counter | ||
/// that will never be incremented. | ||
/// | ||
/// For used/called functions, the coverageinfo was already added to the | ||
/// `function_coverage_map` (keyed by function `Instance`) during codegen. | ||
/// But in this case, since the unused function was _not_ previously | ||
/// codegenned, collect the coverage `CodeRegion`s from the MIR and add | ||
/// them. The first `CodeRegion` is used to add a single counter, with the | ||
/// same counter ID used in the injected `instrprof.increment` intrinsic | ||
/// call. Since the function is never called, all other `CodeRegion`s can be | ||
/// added as `unreachable_region`s. | ||
fn define_unused_fn(&self, _def_id: DefId) { | ||
unimplemented!(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters