Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
06fe278
Fix unindent behavior between different doc comments
GuillaumeGomez Oct 26, 2020
b4c3536
Add test for doc comments unindent fix
GuillaumeGomez Oct 26, 2020
f3e6d88
Fix typos and replace static vector with slice
bugadani Oct 28, 2020
a21f3a7
Clean up encode_dep_graph
bugadani Oct 28, 2020
5248b20
Reuse memory
bugadani Oct 28, 2020
2fa3598
Avoid reallocating cgu_path_components
bugadani Oct 28, 2020
a8803d3
Delete files immediately, instead of collecting into vector
bugadani Oct 28, 2020
6bbb7fd
Change a bit how the first doc comment lines are handled
GuillaumeGomez Oct 29, 2020
fcee70f
Update tests
GuillaumeGomez Oct 29, 2020
ad27894
Move compiletest meta tests to a separate directory
tmiasko Oct 30, 2020
affb47f
Add a test for compiletest rustc-env & unset-rustc-env directives
tmiasko Oct 30, 2020
289c0d8
Retagging: do not retag 'raw reborrows'
RalfJung Oct 31, 2020
fef9c63
Rust coverage before splitting instrument_coverage.rs
richkadel Oct 5, 2020
0bb09c1
Splitting transform/instrument_coverage.rs into transform/coverage/...
richkadel Oct 23, 2020
7b87ae4
Implemented CoverageGraph of BasicCoverageBlocks
richkadel Oct 23, 2020
af0c84c
Adds coverage graphviz
richkadel Oct 23, 2020
868de57
Injecting expressions in place of counters where helpful
richkadel Oct 22, 2020
da20b67
Added comments on remapping expression IDs, and URL to spanviews
richkadel Oct 25, 2020
0edf4a5
Addressed all feedback to date
richkadel Oct 25, 2020
3685689
Responded to all feedback as of 2020-10-30
richkadel Oct 30, 2020
87f2897
Improve code in unindent_comment a bit more
GuillaumeGomez Nov 1, 2020
c0cbf63
inliner: Remove redundant loop
tmiasko Nov 2, 2020
a8dfb26
Document -Zinstrument-coverage
richkadel Oct 31, 2020
c83c635
Fix intrinsic size_of stable link
pickfire Nov 2, 2020
e78e9d4
Treat trailing semicolon as a statement in macro call
Aaron1011 Oct 25, 2020
6d94911
addressed feedback
richkadel Nov 2, 2020
3d7baee
fix cross-platform test bugs
richkadel Nov 2, 2020
974c03d
Rollup merge of #78267 - richkadel:llvm-coverage-counters-2.0.3r1, r=…
Dylan-DPC Nov 3, 2020
3a110ef
Rollup merge of #78376 - Aaron1011:feature/consistent-empty-expr, r=p…
Dylan-DPC Nov 3, 2020
1425ac0
Rollup merge of #78400 - GuillaumeGomez:fix-unindent, r=jyn514
Dylan-DPC Nov 3, 2020
01e7c01
Rollup merge of #78489 - bugadani:array, r=estebank
Dylan-DPC Nov 3, 2020
5f0c9c1
Rollup merge of #78575 - tmiasko:compiletest-rustc-env, r=Aaron1011
Dylan-DPC Nov 3, 2020
8088713
Rollup merge of #78597 - RalfJung:raw-retag, r=oli-obk
Dylan-DPC Nov 3, 2020
d56e305
Rollup merge of #78616 - richkadel:unstable-book-instr-cov, r=tmandry
Dylan-DPC Nov 3, 2020
bb3ef75
Rollup merge of #78664 - pickfire:patch-4, r=jonas-schievink
Dylan-DPC Nov 3, 2020
04245d1
Rollup merge of #78668 - tmiasko:inline, r=oli-obk
Dylan-DPC Nov 3, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Added comments on remapping expression IDs, and URL to spanviews
  • Loading branch information
richkadel committed Nov 1, 2020
commit da20b6706f012c1f4d55177113bbea5a3ee59b72
20 changes: 19 additions & 1 deletion compiler/rustc_codegen_ssa/src/coverageinfo/map.rs
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,25 @@ impl<'tcx> FunctionCoverage<'tcx> {
let mut counter_expressions = Vec::with_capacity(self.expressions.len());
let mut expression_regions = Vec::with_capacity(self.expressions.len());
let mut new_indexes = IndexVec::from_elem_n(None, self.expressions.len());
// Note that an `Expression`s at any given index can include other expressions as

// This closure converts any `Expression` operand (`lhs` or `rhs` of the `Op::Add` or
// `Op::Subtract` operation) into its native `llvm::coverage::Counter::CounterKind` type
// and value. Operand ID value `0` maps to `CounterKind::Zero`; values in the known range
// of injected LLVM counters map to `CounterKind::CounterValueReference` (and the value
// matches the injected counter index); and any other value is converted into a
// `CounterKind::Expression` with the expression's `new_index`.
//
// Expressions will be returned from this function in a sequential vector (array) of
// `CounterExpression`, so the expression IDs must be mapped from their original,
// potentially sparse set of indexes, originally in reverse order from `u32::MAX`.
//
// An `Expression` as an operand will have already been encountered as an `Expression` with
// operands, so its new_index will already have been generated (as a 1-up index value).
// (If an `Expression` as an operand does not have a corresponding new_index, it was
// probably optimized out, after the expression was injected into the MIR, so it will
// get a `CounterKind::Zero` instead.)
//
// In other words, an `Expression`s at any given index can include other expressions as
// operands, but expression operands can only come from the subset of expressions having
// `expression_index`s lower than the referencing `Expression`. Therefore, it is
// reasonable to look up the new index of an expression operand while the `new_indexes`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@
"percent": 100
},
"lines": {
"count": 19,
"count": 20,
"covered": 18,
"percent": 94.73684210526315
"percent": 90
},
"regions": {
"count": 17,
"count": 19,
"covered": 14,
"notcovered": 3,
"percent": 82.35294117647058
"notcovered": 5,
"percent": 73.68421052631578
}
}
}
Expand All @@ -41,15 +41,15 @@
"percent": 100
},
"lines": {
"count": 19,
"count": 20,
"covered": 18,
"percent": 94.73684210526315
"percent": 90
},
"regions": {
"count": 17,
"count": 19,
"covered": 14,
"notcovered": 3,
"percent": 82.35294117647058
"notcovered": 5,
"percent": 73.68421052631578
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,14 @@
25| 6| countdown < 5
26| | {
27| 1| call(/*return_error=*/ true)?;
28| | }
29| | else
30| | {
31| 5| call(/*return_error=*/ false)?;
28| 0| call(/*return_error=*/ false)?;
29| | }
30| | else
31| | {
32| 5| call(/*return_error=*/ false)?;
^0
32| 5| }
33| 5| }
34| 0| Ok(())
35| 1|}
33| 5| }
34| 5| }
35| 0| Ok(())
36| 1|}

Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,18 @@ Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/
Counter in file 0 13:9 -> 14:23, #1
Counter in file 0 17:9 -> 17:10, ((#1 + (#2 + #3)) - #4)
Counter in file 0 19:9 -> 19:14, (#1 + (#2 + #3))
Counter in file 0 21:9 -> 25:26, #7
Counter in file 0 27:13 -> 27:41, #8
Counter in file 0 21:9 -> 25:26, #8
Counter in file 0 27:13 -> 27:41, #9
Counter in file 0 27:41 -> 27:42, #5
Counter in file 0 31:13 -> 31:42, (#7 - #8)
Counter in file 0 31:42 -> 31:43, #6
Counter in file 0 32:10 -> 32:11, #2
Counter in file 0 32:10 -> 32:11, #3
Counter in file 0 33:6 -> 33:7, (#2 + #3)
Counter in file 0 34:5 -> 34:11, #4
Counter in file 0 35:1 -> 35:2, ((#5 + #6) + #4)
Counter in file 0 28:13 -> 28:42, (#9 - #5)
Counter in file 0 28:42 -> 28:43, #6
Counter in file 0 32:13 -> 32:42, (#8 - #9)
Counter in file 0 32:42 -> 32:43, #7
Counter in file 0 33:10 -> 33:11, #2
Counter in file 0 33:10 -> 33:11, #3
Counter in file 0 34:6 -> 34:7, (#2 + #3)
Counter in file 0 35:5 -> 35:11, #4
Counter in file 0 36:1 -> 36:2, ((#5 + (#6 + #7)) + #4)
Counter in file 0 5:8 -> 5:20, #1
Counter in file 0 6:9 -> 6:16, #2
Counter in file 0 8:9 -> 8:15, (#1 - #2)
Expand All @@ -28,12 +30,14 @@ Combined regions:
21:9 -> 25:26 (count=6)
27:13 -> 27:41 (count=1)
27:41 -> 27:42 (count=1)
31:13 -> 31:42 (count=5)
31:42 -> 31:43 (count=0)
32:10 -> 32:11 (count=5)
33:6 -> 33:7 (count=5)
34:5 -> 34:11 (count=0)
35:1 -> 35:2 (count=1)
28:13 -> 28:42 (count=0)
28:42 -> 28:43 (count=0)
32:13 -> 32:42 (count=5)
32:42 -> 32:43 (count=0)
33:10 -> 33:11 (count=5)
34:6 -> 34:7 (count=5)
35:5 -> 35:11 (count=0)
36:1 -> 36:2 (count=1)
Segment at 5:8 (count = 6), RegionEntry
Segment at 5:20 (count = 0), Skipped
Segment at 6:9 (count = 1), RegionEntry
Expand All @@ -53,14 +57,17 @@ Segment at 25:26 (count = 0), Skipped
Segment at 27:13 (count = 1), RegionEntry
Segment at 27:41 (count = 1), RegionEntry
Segment at 27:42 (count = 0), Skipped
Segment at 31:13 (count = 5), RegionEntry
Segment at 31:42 (count = 0), RegionEntry
Segment at 31:43 (count = 0), Skipped
Segment at 32:10 (count = 5), RegionEntry
Segment at 32:11 (count = 0), Skipped
Segment at 33:6 (count = 5), RegionEntry
Segment at 33:7 (count = 0), Skipped
Segment at 34:5 (count = 0), RegionEntry
Segment at 34:11 (count = 0), Skipped
Segment at 35:1 (count = 1), RegionEntry
Segment at 35:2 (count = 0), Skipped
Segment at 28:13 (count = 0), RegionEntry
Segment at 28:42 (count = 0), RegionEntry
Segment at 28:43 (count = 0), Skipped
Segment at 32:13 (count = 5), RegionEntry
Segment at 32:42 (count = 0), RegionEntry
Segment at 32:43 (count = 0), Skipped
Segment at 33:10 (count = 5), RegionEntry
Segment at 33:11 (count = 0), Skipped
Segment at 34:6 (count = 5), RegionEntry
Segment at 34:7 (count = 0), Skipped
Segment at 35:5 (count = 0), RegionEntry
Segment at 35:11 (count = 0), Skipped
Segment at 36:1 (count = 1), RegionEntry
Segment at 36:2 (count = 0), Skipped
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@
"percent": 100
},
"lines": {
"count": 19,
"count": 20,
"covered": 18,
"percent": 94.73684210526315
"percent": 90
},
"regions": {
"count": 17,
"count": 19,
"covered": 14,
"notcovered": 3,
"percent": 82.35294117647058
"notcovered": 5,
"percent": 73.68421052631578
}
}
}
Expand All @@ -41,15 +41,15 @@
"percent": 100
},
"lines": {
"count": 19,
"count": 20,
"covered": 18,
"percent": 94.73684210526315
"percent": 90
},
"regions": {
"count": 17,
"count": 19,
"covered": 14,
"notcovered": 3,
"percent": 82.35294117647058
"notcovered": 5,
"percent": 73.68421052631578
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,14 @@
25| 6| countdown < 5
26| | {
27| 1| call(/*return_error=*/ true)?;
28| | }
29| | else
30| | {
31| 5| call(/*return_error=*/ false)?;
28| 0| call(/*return_error=*/ false)?;
29| | }
30| | else
31| | {
32| 5| call(/*return_error=*/ false)?;
^0
32| 5| }
33| 5| }
34| 0| Ok(())
35| 1|}
33| 5| }
34| 5| }
35| 0| Ok(())
36| 1|}

Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/build/bin/llvm-cov show --debug --Xdemangler=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/stage0-tools-bin/rust-demangler --show-line-counts-or-regions --instr-profile=/usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/partial_eq_counter_without_region.profdata /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/test/run-make-fulldeps/coverage-reports-deadcode/coverage-reports-deadcode/partial_eq_counter_without_region
Counter in file 0 4:32 -> 4:33, (#3 + (#1 + #2))
Counter in file 0 4:48 -> 4:49, ((#1 + #2) + ((#3 + #4) + ((#5 + #6) + #7)))
Counter in file 0 8:5 -> 8:17, #1
Counter in file 0 21:11 -> 26:2, #1
Counter in file 0 8:5 -> 8:17, #1
Counter in file 0 8:5 -> 8:17, #1
Counter in file 0 4:39 -> 4:40, #1
Counter in file 0 4:48 -> 4:49, (#1 + 0)
Counter in file 0 7:5 -> 7:6, #1
Counter in file 0 8:5 -> 8:17, #1
Counter in file 0 4:39 -> 4:40, #1
Counter in file 0 4:48 -> 4:49, (#1 + 0)
Counter in file 0 8:5 -> 8:17, #1
Counter in file 0 4:32 -> 4:33, ((#4 + #5) + #6)
Counter in file 0 4:53 -> 4:54, (#1 + (#2 + (#3 + #4)))
Counter in file 0 13:9 -> 18:6, #1
Counter in file 0 7:5 -> 7:6, #1
Counter in file 0 4:39 -> 4:40, #1
Counter in file 0 4:48 -> 4:49, (#1 + 0)
Counter in file 0 7:5 -> 7:6, #1
Counter in file 0 4:10 -> 4:15, #1
Counter in file 0 4:35 -> 4:37, #1
Counter in file 0 7:5 -> 7:6, #1
Counter in file 0 8:5 -> 8:17, #1
Counter in file 0 7:5 -> 7:6, #1
Counter in file 0 4:17 -> 4:22, #1
Counter in file 0 8:5 -> 8:17, #1
Counter in file 0 4:39 -> 4:40, #1
Counter in file 0 4:48 -> 4:49, (#1 + 0)
Counter in file 0 4:32 -> 4:33, (#3 + (#1 + #2))
Counter in file 0 7:5 -> 7:6, #1
Emitting segments for file: ../coverage/partial_eq_counter_without_region.rs
Combined regions:
4:17 -> 4:22 (count=2)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,18 @@ Args: /usr/local/google/home/richkadel/rust/build/x86_64-unknown-linux-gnu/llvm/
Counter in file 0 13:9 -> 14:23, #1
Counter in file 0 17:9 -> 17:10, ((#1 + (#2 + #3)) - #4)
Counter in file 0 19:9 -> 19:14, (#1 + (#2 + #3))
Counter in file 0 21:9 -> 25:26, #7
Counter in file 0 27:13 -> 27:41, #8
Counter in file 0 21:9 -> 25:26, #8
Counter in file 0 27:13 -> 27:41, #9
Counter in file 0 27:41 -> 27:42, #5
Counter in file 0 31:13 -> 31:42, (#7 - #8)
Counter in file 0 31:42 -> 31:43, #6
Counter in file 0 32:10 -> 32:11, #2
Counter in file 0 32:10 -> 32:11, #3
Counter in file 0 33:6 -> 33:7, (#2 + #3)
Counter in file 0 34:5 -> 34:11, #4
Counter in file 0 35:1 -> 35:2, ((#5 + #6) + #4)
Counter in file 0 28:13 -> 28:42, (#9 - #5)
Counter in file 0 28:42 -> 28:43, #6
Counter in file 0 32:13 -> 32:42, (#8 - #9)
Counter in file 0 32:42 -> 32:43, #7
Counter in file 0 33:10 -> 33:11, #2
Counter in file 0 33:10 -> 33:11, #3
Counter in file 0 34:6 -> 34:7, (#2 + #3)
Counter in file 0 35:5 -> 35:11, #4
Counter in file 0 36:1 -> 36:2, ((#5 + (#6 + #7)) + #4)
Counter in file 0 5:8 -> 5:20, #1
Counter in file 0 6:9 -> 6:16, #2
Counter in file 0 8:9 -> 8:15, (#1 - #2)
Expand All @@ -28,12 +30,14 @@ Combined regions:
21:9 -> 25:26 (count=6)
27:13 -> 27:41 (count=1)
27:41 -> 27:42 (count=1)
31:13 -> 31:42 (count=5)
31:42 -> 31:43 (count=0)
32:10 -> 32:11 (count=5)
33:6 -> 33:7 (count=5)
34:5 -> 34:11 (count=0)
35:1 -> 35:2 (count=1)
28:13 -> 28:42 (count=0)
28:42 -> 28:43 (count=0)
32:13 -> 32:42 (count=5)
32:42 -> 32:43 (count=0)
33:10 -> 33:11 (count=5)
34:6 -> 34:7 (count=5)
35:5 -> 35:11 (count=0)
36:1 -> 36:2 (count=1)
Segment at 5:8 (count = 6), RegionEntry
Segment at 5:20 (count = 0), Skipped
Segment at 6:9 (count = 1), RegionEntry
Expand All @@ -53,14 +57,17 @@ Segment at 25:26 (count = 0), Skipped
Segment at 27:13 (count = 1), RegionEntry
Segment at 27:41 (count = 1), RegionEntry
Segment at 27:42 (count = 0), Skipped
Segment at 31:13 (count = 5), RegionEntry
Segment at 31:42 (count = 0), RegionEntry
Segment at 31:43 (count = 0), Skipped
Segment at 32:10 (count = 5), RegionEntry
Segment at 32:11 (count = 0), Skipped
Segment at 33:6 (count = 5), RegionEntry
Segment at 33:7 (count = 0), Skipped
Segment at 34:5 (count = 0), RegionEntry
Segment at 34:11 (count = 0), Skipped
Segment at 35:1 (count = 1), RegionEntry
Segment at 35:2 (count = 0), Skipped
Segment at 28:13 (count = 0), RegionEntry
Segment at 28:42 (count = 0), RegionEntry
Segment at 28:43 (count = 0), Skipped
Segment at 32:13 (count = 5), RegionEntry
Segment at 32:42 (count = 0), RegionEntry
Segment at 32:43 (count = 0), Skipped
Segment at 33:10 (count = 5), RegionEntry
Segment at 33:11 (count = 0), Skipped
Segment at 34:6 (count = 5), RegionEntry
Segment at 34:7 (count = 0), Skipped
Segment at 35:5 (count = 0), RegionEntry
Segment at 35:11 (count = 0), Skipped
Segment at 36:1 (count = 1), RegionEntry
Segment at 36:2 (count = 0), Skipped
20 changes: 20 additions & 0 deletions src/test/run-make-fulldeps/coverage-spanview-base/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

-include ../coverage/coverage_tools.mk

BASEDIR=../coverage-spanview-base
SOURCEDIR=../coverage

all: $(patsubst $(SOURCEDIR)/%.rs,%,$(wildcard $(SOURCEDIR)/*.rs))
Expand All @@ -27,6 +28,25 @@ endif
-Zdump-mir=InstrumentCoverage \
-Zdump-mir-dir="$(TMPDIR)"/mir_dump.$@

for path in "$(TMPDIR)"/mir_dump.$@/*; do \
echo $$path; \
file="$$(basename "$$path")"; \
echo $$file; \
urlescaped="$$("$(PYTHON)" $(BASEDIR)/escape_url.py $$file)" || exit $$?; \
echo $$urlescaped; \
sed -i '1a\
<!--\
\
Preview this file as rendered HTML from the github source at:\
https://htmlpreview.github.io/?https://github.com/rust-lang/rust/blob/master/src/test/run-make-fulldeps/coverage-spanview-base/expected_mir_dump.$@/'"$$urlescaped"'\
\
For revisions in Pull Requests (PR):\
* Replace "rust-lang" with the github PR author\
* Replace "master" with the PR branch name\
\
-->' "$$path"; \
done && true # for/done ends in non-zero status

ifdef RUSTC_BLESS_TEST
mkdir -p expected_mir_dump.$@
cp "$(TMPDIR)"/mir_dump.$@/*InstrumentCoverage.0.html expected_mir_dump.$@/
Expand Down
10 changes: 10 additions & 0 deletions src/test/run-make-fulldeps/coverage-spanview-base/escape_url.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/usr/bin/env python

import sys
import six

# Support python 2 or 3
from six.moves.urllib.parse import quote

# Converts the input string into a valid URL parameter string.
print (quote(' '.join(sys.argv[1:])))
Loading