Fix some link failures and typos

This commit is contained in:
Yuki Okushi 2020-12-12 05:57:33 +09:00 committed by Joshua Nelson
parent a6a9c67616
commit 1838d293f7
2 changed files with 10 additions and 10 deletions

View File

@ -75,7 +75,7 @@ code branches, and injects additional [`Coverage`][coverage-statement]
statements into the `BasicBlock`s. statements into the `BasicBlock`s.
A MIR `Coverage` statement is a virtual instruction that indicates a counter A MIR `Coverage` statement is a virtual instruction that indicates a counter
should be incremented when its adjacent statemeents are executed, to count should be incremented when its adjacent statements are executed, to count
a span of code ([`CodeRegion`][code-region]). It counts the number of times a a span of code ([`CodeRegion`][code-region]). It counts the number of times a
branch is executed, and also specifies the exact location of that code span in branch is executed, and also specifies the exact location of that code span in
the Rust source code. the Rust source code.
@ -181,7 +181,7 @@ MIR `Statement` into some backend-specific action or instruction.
CoverageKind::Unreachable => { CoverageKind::Unreachable => {
... ...
``` ```
_[code snippet trimmed for brevity]_ _code snippet trimmed for brevity_
> The function name `instrprof_increment()` is taken from the LLVM intrinsic > The function name `instrprof_increment()` is taken from the LLVM intrinsic
call of the same name ([`llvm.instrprof.increment`][llvm-instrprof-increment]), call of the same name ([`llvm.instrprof.increment`][llvm-instrprof-increment]),
@ -206,7 +206,7 @@ the last remaining step is to inject the LLVM IR variables that hold the
static data for the coverage map. static data for the coverage map.
`rustc_codegen_llvm`'s [`compile_codegen_unit()`][compile-codegen-unit] calls `rustc_codegen_llvm`'s [`compile_codegen_unit()`][compile-codegen-unit] calls
[`coverageinfo_finalze()`][coverageinfo-finalize], [`coverageinfo_finalize()`][coverageinfo-finalize],
which delegates its implementation to the which delegates its implementation to the
[`rustc_codegen_llvm::coverageinfo::mapgen`][mapgen-finalize] module. [`rustc_codegen_llvm::coverageinfo::mapgen`][mapgen-finalize] module.
@ -247,9 +247,9 @@ pub fn finalize<'ll, 'tcx>(cx: &CodegenCx<'ll, 'tcx>) {
mapgen.write_coverage_mapping(expressions, counter_regions, coverage_mapping_buffer); mapgen.write_coverage_mapping(expressions, counter_regions, coverage_mapping_buffer);
}); });
``` ```
_[code snippet trimmed for brevity]_ _code snippet trimmed for brevity_
One noteable step, performed by `mapgen::finalize()` before processing the One notable step, performed by `mapgen::finalize()` before processing the
`Instance`s and their `FunctionCoverage`s, is the call to `Instance`s and their `FunctionCoverage`s, is the call to
[`add_unreachable_functions()`][add-unreachable-coverage]. [`add_unreachable_functions()`][add-unreachable-coverage].
@ -262,7 +262,7 @@ The set of unreachable functions is computed via the set difference of all MIR
`DefId`s (`tcx` query `mir_keys`) minus the codegenned `DefId`s `DefId`s (`tcx` query `mir_keys`) minus the codegenned `DefId`s
(`tcx` query `collect_and_partition_mono_items`). `add_unreachable_functions()` (`tcx` query `collect_and_partition_mono_items`). `add_unreachable_functions()`
computes the set of unreachable functions, queries the `tcx` for the computes the set of unreachable functions, queries the `tcx` for the
previously-computed `CodeRegions`, for each unreachabe MIR, and adds those code previously-computed `CodeRegions`, for each unreachable MIR, and adds those code
regions to one of the non-generic codegenned functions (non-generic avoids regions to one of the non-generic codegenned functions (non-generic avoids
potentially injecting the unreachable coverage multiple times for multiple potentially injecting the unreachable coverage multiple times for multiple
instantiations). instantiations).
@ -382,7 +382,7 @@ fundamental control flow, with many of the same
For anyone that knows how to work with the [MIR, as a CFG][mir-dev-guide], the For anyone that knows how to work with the [MIR, as a CFG][mir-dev-guide], the
`CoverageGraph` will be familiar, and can be used in much the same way. `CoverageGraph` will be familiar, and can be used in much the same way.
The nodes of the `CoverageGraph` are `BasicCoverageBlock`s (BCBs), which The nodes of the `CoverageGraph` are `BasicCoverageBlock`s (BCBs), which
index into an `IndexVec` of `BasicCoverageBlockData`. This is analagous index into an `IndexVec` of `BasicCoverageBlockData`. This is analogous
to the MIR CFG of `BasicBlock`s that index `BasicBlockData`. to the MIR CFG of `BasicBlock`s that index `BasicBlockData`.
Each `BasicCoverageBlockData` captures one or more MIR `BasicBlock`s, Each `BasicCoverageBlockData` captures one or more MIR `BasicBlock`s,
@ -450,7 +450,7 @@ The nodes contain information in sections:
its `BasicCoverageBlockData`). its `BasicCoverageBlockData`).
2. The first content section shows the assigned `Counter` or `Expression` for 2. The first content section shows the assigned `Counter` or `Expression` for
each contiguous section of code. (There may be more than one `Expression` each contiguous section of code. (There may be more than one `Expression`
incremented by the same `Counter` for discontigous sections of code representing incremented by the same `Counter` for discontiguous sections of code representing
the same sequential actions.) Note the code is represented by the line and the same sequential actions.) Note the code is represented by the line and
column ranges (for example: `52:28-52:33`, representing the original source column ranges (for example: `52:28-52:33`, representing the original source
line 52, for columns 28-33). These are followed by the MIR `Statement` or line 52, for columns 28-33). These are followed by the MIR `Statement` or
@ -489,7 +489,7 @@ an initial set of `CoverageSpan`s from the `Span`s associated with each MIR
The final stage of `generate_coverage_spans()` is handled by The final stage of `generate_coverage_spans()` is handled by
[`to_refined_spans()`][to-refined-spans], which iterates through the `CoverageSpan`s, [`to_refined_spans()`][to-refined-spans], which iterates through the `CoverageSpan`s,
merges and de-duplicates them, and returns an optimial, minimal set of `CoverageSpan`s merges and de-duplicates them, and returns an optimal, minimal set of `CoverageSpan`s
that can be used to assign coverage `Counter`s or `Expression`s, one-for-one. that can be used to assign coverage `Counter`s or `Expression`s, one-for-one.
An visual, interactive representation of the final `CoverageSpan`s can be An visual, interactive representation of the final `CoverageSpan`s can be

View File

@ -47,7 +47,7 @@ workflow to see how they interact.
[^note-instrument-coverage]: Note: `rustc` now supports front-end-based coverage [^note-instrument-coverage]: Note: `rustc` now supports front-end-based coverage
instrumentation, via the experimental option instrumentation, via the experimental option
[`-Z instrument-coverage`](../llvm-coverage-instrumentation), but using these [`-Z instrument-coverage`](./llvm-coverage-instrumentation.md), but using these
coverage results for PGO has not been attempted at this time. coverage results for PGO has not been attempted at this time.
### Overall Workflow ### Overall Workflow