]> git.lizzy.rs Git - rust.git/commit - src/librustc_llvm/build.rs
Auto merge of #74091 - richkadel:llvm-coverage-map-gen-4, r=tmandry
authorbors <bors@rust-lang.org>
Sun, 19 Jul 2020 07:25:18 +0000 (07:25 +0000)
committerbors <bors@rust-lang.org>
Sun, 19 Jul 2020 07:25:18 +0000 (07:25 +0000)
commit47ea6d90b073ab977cf072e2f5f46d63de532cc6
treed408537bbf5d8d3063d19914f6e30efe02c74681
parent0701419e96d94e5493c7ebfcecb66511ab0aa778
parenta6f8b8a2116f0ea7e31d572d3120508678ed8079
Auto merge of #74091 - richkadel:llvm-coverage-map-gen-4, r=tmandry

Generating the coverage map

@tmandry @wesleywiser

rustc now generates the coverage map and can support (limited)
coverage report generation, at the function level.

Example commands to generate a coverage report:
```shell
$ BUILD=$HOME/rust/build/x86_64-unknown-linux-gnu
$ $BUILD/stage1/bin/rustc -Zinstrument-coverage \
$HOME/rust/src/test/run-make-fulldeps/instrument-coverage/main.rs
$ LLVM_PROFILE_FILE="main.profraw" ./main
called
$ $BUILD/llvm/bin/llvm-profdata merge -sparse main.profraw -o main.profdata
$ $BUILD/llvm/bin/llvm-cov show --instr-profile=main.profdata main
```
![rust coverage report only 20200706](https://user-images.githubusercontent.com/3827298/86697299-1cbe8f80-bfc3-11ea-8955-451b48626991.png)

r? @wesleywiser

Rust compiler MCP rust-lang/compiler-team#278
Relevant issue: #34701 - Implement support for LLVMs code coverage instrumentation
Cargo.lock
Cargo.toml
src/bootstrap/builder.rs
src/bootstrap/test.rs
src/bootstrap/tool.rs
src/libcore/intrinsics.rs
src/librustc_middle/mir/query.rs
src/test/run-make-fulldeps/tools.mk