diff options
| author | bors <bors@rust-lang.org> | 2020-07-19 07:25:18 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-07-19 07:25:18 +0000 |
| commit | 47ea6d90b073ab977cf072e2f5f46d63de532cc6 (patch) | |
| tree | d408537bbf5d8d3063d19914f6e30efe02c74681 /src/test/mir-opt/instrument_coverage/rustc.main.InstrumentCoverage.diff | |
| parent | 0701419e96d94e5493c7ebfcecb66511ab0aa778 (diff) | |
| parent | a6f8b8a2116f0ea7e31d572d3120508678ed8079 (diff) | |
| download | rust-47ea6d90b073ab977cf072e2f5f46d63de532cc6.tar.gz rust-47ea6d90b073ab977cf072e2f5f46d63de532cc6.zip | |
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 ```  r? @wesleywiser Rust compiler MCP rust-lang/compiler-team#278 Relevant issue: #34701 - Implement support for LLVMs code coverage instrumentation
Diffstat (limited to 'src/test/mir-opt/instrument_coverage/rustc.main.InstrumentCoverage.diff')
| -rw-r--r-- | src/test/mir-opt/instrument_coverage/rustc.main.InstrumentCoverage.diff | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/src/test/mir-opt/instrument_coverage/rustc.main.InstrumentCoverage.diff b/src/test/mir-opt/instrument_coverage/rustc.main.InstrumentCoverage.diff index 4a300230f8a..51378c216da 100644 --- a/src/test/mir-opt/instrument_coverage/rustc.main.InstrumentCoverage.diff +++ b/src/test/mir-opt/instrument_coverage/rustc.main.InstrumentCoverage.diff @@ -6,35 +6,41 @@ let mut _1: (); // in scope 0 at $DIR/instrument_coverage.rs:9:1: 15:2 let mut _2: bool; // in scope 0 at $DIR/instrument_coverage.rs:11:12: 11:17 let mut _3: !; // in scope 0 at $DIR/instrument_coverage.rs:11:18: 13:10 -+ let mut _4: (); // in scope 0 at $DIR/instrument_coverage.rs:9:1: 15:2 ++ let mut _4: (); // in scope 0 at $DIR/instrument_coverage.rs:9:11: 9:11 bb0: { - falseUnwind -> [real: bb1, cleanup: bb2]; // scope 0 at $DIR/instrument_coverage.rs:10:5: 14:6 -+ StorageLive(_4); // scope 0 at $DIR/instrument_coverage.rs:9:1: 15:2 -+ _4 = const std::intrinsics::count_code_region(const 0_u32, const 387_u32, const 465_u32) -> bb7; // scope 0 at $DIR/instrument_coverage.rs:9:1: 15:2 ++ StorageLive(_4); // scope 0 at $DIR/instrument_coverage.rs:9:11: 9:11 ++ _4 = const std::intrinsics::count_code_region(const 16004455475339839479_u64, const 0_u32, const 397_u32, const 465_u32) -> bb7; // scope 0 at $DIR/instrument_coverage.rs:9:11: 9:11 + // ty::Const -+ // + ty: unsafe extern "rust-intrinsic" fn(u32, u32, u32) {std::intrinsics::count_code_region} ++ // + ty: unsafe extern "rust-intrinsic" fn(u64, u32, u32, u32) {std::intrinsics::count_code_region} + // + val: Value(Scalar(<ZST>)) + // mir::Constant -+ // + span: $DIR/instrument_coverage.rs:9:1: 9:1 -+ // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(u32, u32, u32) {std::intrinsics::count_code_region}, val: Value(Scalar(<ZST>)) } ++ // + span: $DIR/instrument_coverage.rs:9:11: 9:11 ++ // + literal: Const { ty: unsafe extern "rust-intrinsic" fn(u64, u32, u32, u32) {std::intrinsics::count_code_region}, val: Value(Scalar(<ZST>)) } ++ // ty::Const ++ // + ty: u64 ++ // + val: Value(Scalar(0xde1b3f75a72fc7f7)) ++ // mir::Constant ++ // + span: $DIR/instrument_coverage.rs:9:11: 9:11 ++ // + literal: Const { ty: u64, val: Value(Scalar(0xde1b3f75a72fc7f7)) } + // ty::Const + // + ty: u32 + // + val: Value(Scalar(0x00000000)) + // mir::Constant -+ // + span: $DIR/instrument_coverage.rs:9:1: 9:1 ++ // + span: $DIR/instrument_coverage.rs:9:11: 9:11 + // + literal: Const { ty: u32, val: Value(Scalar(0x00000000)) } + // ty::Const + // + ty: u32 -+ // + val: Value(Scalar(0x00000183)) ++ // + val: Value(Scalar(0x0000018d)) + // mir::Constant -+ // + span: $DIR/instrument_coverage.rs:9:1: 9:1 -+ // + literal: Const { ty: u32, val: Value(Scalar(0x00000183)) } ++ // + span: $DIR/instrument_coverage.rs:9:11: 9:11 ++ // + literal: Const { ty: u32, val: Value(Scalar(0x0000018d)) } + // ty::Const + // + ty: u32 + // + val: Value(Scalar(0x000001d1)) + // mir::Constant -+ // + span: $DIR/instrument_coverage.rs:9:1: 9:1 ++ // + span: $DIR/instrument_coverage.rs:9:11: 9:11 + // + literal: Const { ty: u32, val: Value(Scalar(0x000001d1)) } } |
