#
a17a3e9d |
| 13-Feb-2024 |
NAKAMURA Takumi <geek4civic@gmail.com> |
[MC/DC] Refactor: Make `MCDCParams` as `std::variant` (#81227)
Introduce `mcdc::DecisionParameters` and `mcdc::BranchParameters` and make
sure them not initialized as zero.
FIXME: Could we make
[MC/DC] Refactor: Make `MCDCParams` as `std::variant` (#81227)
Introduce `mcdc::DecisionParameters` and `mcdc::BranchParameters` and make
sure them not initialized as zero.
FIXME: Could we make `CoverageMappingRegion` as a smart tagged union?
show more ...
|
#
05ad0d46 |
| 13-Feb-2024 |
NAKAMURA Takumi <geek4civic@gmail.com> |
CoverageMapping.cpp: Apply std::move to MCDCRecord (#81220)
|
#
f0db35b9 |
| 13-Feb-2024 |
NAKAMURA Takumi <geek4civic@gmail.com> |
[MC/DC] Refactor: Introduce `MCDCTypes.h` for `coverage::mcdc` (#81459)
They can be also used in `clang`.
Introduce the lightweight header instead of `CoverageMapping.h`.
This includes for now:
[MC/DC] Refactor: Introduce `MCDCTypes.h` for `coverage::mcdc` (#81459)
They can be also used in `clang`.
Introduce the lightweight header instead of `CoverageMapping.h`.
This includes for now:
* `mcdc::ConditionID`
* `mcdc::Parameters`
show more ...
|
#
3f9d8d89 |
| 08-Feb-2024 |
NAKAMURA Takumi <geek4civic@gmail.com> |
[Coverage] MCDCRecordProcessor: Find `ExecVectors` directly (#80816)
Deprecate `TestVectors`, since no one uses it.
This affects the output order of ExecVectors.
The current impl emits sorted by
[Coverage] MCDCRecordProcessor: Find `ExecVectors` directly (#80816)
Deprecate `TestVectors`, since no one uses it.
This affects the output order of ExecVectors.
The current impl emits sorted by binary value of ExecVector. This impl
emits along the traversal of `buildTestVector()`.
show more ...
|
Revision tags: llvmorg-18.1.0-rc2 |
|
#
0b622181 |
| 06-Feb-2024 |
NAKAMURA Takumi <geek4civic@gmail.com> |
Anonymize `MCDCRecordProcessor`
|
#
47a12cca |
| 06-Feb-2024 |
NAKAMURA Takumi <geek4civic@gmail.com> |
CoverageMapping.cpp: s/MaxBitmapID/MaxBitmapIdx/ in getMaxBitmapSize()
|
#
4926f12f |
| 05-Feb-2024 |
NAKAMURA Takumi <geek4civic@gmail.com> |
[Coverage] ProfileData: Handle MC/DC Bitmap as BitVector. NFC. (#80608)
* `getFunctionBitmap()` stores not `std::vector<uint8_t>` but
`BitVector`.
* `CounterMappingContext` holds `Bitmap` (instead
[Coverage] ProfileData: Handle MC/DC Bitmap as BitVector. NFC. (#80608)
* `getFunctionBitmap()` stores not `std::vector<uint8_t>` but
`BitVector`.
* `CounterMappingContext` holds `Bitmap` (instead of the ref of bytes)
* `Bitmap` and `BitmapIdx` are used instead of `evaluateBitmap()`.
FIXME: `InstrProfRecord` itself should handle `Bitmap` as `BitVector`.
show more ...
|
#
d912f1f0 |
| 02-Feb-2024 |
NAKAMURA Takumi <geek4civic@gmail.com> |
[Coverage] Let `Decision` take account of expansions (#78969)
The current implementation (D138849) assumes `Branch`(es) would follow
after the corresponding `Decision`. It is not true if `Branch`(e
[Coverage] Let `Decision` take account of expansions (#78969)
The current implementation (D138849) assumes `Branch`(es) would follow
after the corresponding `Decision`. It is not true if `Branch`(es) are
forwarded to expanded file ID. As a result, consecutive `Decision`(s)
would be confused with insufficient number of `Branch`(es).
`Expansion` will point `Branch`(es) in other file IDs if `Expansion` is
included in the range of `Decision`.
Fixes #77871
---------
Co-authored-by: Alan Phipps <a-phipps@ti.com>
show more ...
|
Revision tags: llvmorg-18.1.0-rc1 |
|
#
3d0a689e |
| 29-Jan-2024 |
Fangrui Song <i@maskray.me> |
[llvm-cov] Simplify and optimize MC/DC computation (#79727)
Update code from https://reviews.llvm.org/D138847
`buildTestVector` is a standard DFS (walking a reduced ordered binary
decision diagr
[llvm-cov] Simplify and optimize MC/DC computation (#79727)
Update code from https://reviews.llvm.org/D138847
`buildTestVector` is a standard DFS (walking a reduced ordered binary
decision diagram). Avoid shouldCopyOffTestVectorFor{True,False}Path
complexity and redundant `Map[ID]` lookups.
`findIndependencePairs` unnecessarily uses four nested loops (n<=6) to
find independence pairs. Instead, enumerate the two execution vectors
and find the number of mismatches. This algorithm can be optimized using
the marking function technique described in _Efficient Test Coverage
Measurement for MC/DC, 2013_, but this may be overkill.
show more ...
|
Revision tags: llvmorg-19-init |
|
#
c193bb7e |
| 23-Jan-2024 |
NAKAMURA Takumi <geek4civic@gmail.com> |
[Coverage] getMaxBitmapSize: Scan `max(BitmapIdx)` instead of the last `Decision` (#78963)
In `CoverageMapping.cpp:getMaxBitmapSize()`,
this assumed that the last `Decision` has the maxmum `Bitmap
[Coverage] getMaxBitmapSize: Scan `max(BitmapIdx)` instead of the last `Decision` (#78963)
In `CoverageMapping.cpp:getMaxBitmapSize()`,
this assumed that the last `Decision` has the maxmum `BitmapIdx`.
Let it scan `max(BitmapIdx)`.
Note that `<=` is used insted of `<`, because `BitmapIdx == 0` is valid
and `MaxBitmapID` is `unsigned`. `BitmapIdx` is unique in the record.
Fixes #78922
show more ...
|
#
fe0ec2c9 |
| 22-Jan-2024 |
NAKAMURA Takumi <geek4civic@gmail.com> |
[Coverage] Const-ize `MCDCRecordProcessor` stuff (#78918)
The life of `MCDCRecordProcessor`'s instance is short. It may accept
`const` objects to process.
On the other hand, the life of `MCDCBra
[Coverage] Const-ize `MCDCRecordProcessor` stuff (#78918)
The life of `MCDCRecordProcessor`'s instance is short. It may accept
`const` objects to process.
On the other hand, the life of `MCDCBranches` is shorter than `Record`.
It may be rewritten with reference, rather than copying.
show more ...
|
#
865e4a1f |
| 22-Jan-2024 |
Hana Dusíková <hanicka@hanicka.net> |
[coverage] skipping code coverage for 'if constexpr' and 'if consteval' (#78033)
`if constexpr` and `if consteval` conditional statements code coverage
should behave more like a preprocesor `#if`-s
[coverage] skipping code coverage for 'if constexpr' and 'if consteval' (#78033)
`if constexpr` and `if consteval` conditional statements code coverage
should behave more like a preprocesor `#if`-s than normal
ConditionalStmt. This PR should fix that.
---------
Co-authored-by: cor3ntin <corentinjabot@gmail.com>
show more ...
|
#
47b0052f |
| 15-Dec-2023 |
Alan Phipps <a-phipps@ti.com> |
[CoverageMapping] Avoid use of pow() resulting in solaris build fail (#75559)
Fixes a build failure introduced by
commit 8ecbb0404d74 ("Reland [Coverage][llvm-cov]
Enable MC/DC Support in LLVM Sou
[CoverageMapping] Avoid use of pow() resulting in solaris build fail (#75559)
Fixes a build failure introduced by
commit 8ecbb0404d74 ("Reland [Coverage][llvm-cov]
Enable MC/DC Support in LLVM Source-based Code Coverage (2/3)")
Use of pow() is not necessary.
show more ...
|
#
8ecbb040 |
| 13-Dec-2023 |
Alan Phipps <a-phipps@ti.com> |
Reland "[Coverage][llvm-cov] Enable MC/DC Support in LLVM Source-based Code Coverage (2/3)"
Part 2 of 3. This includes the Visualization and Evaluation components.
Differential Revision: https://re
Reland "[Coverage][llvm-cov] Enable MC/DC Support in LLVM Source-based Code Coverage (2/3)"
Part 2 of 3. This includes the Visualization and Evaluation components.
Differential Revision: https://reviews.llvm.org/D138847
show more ...
|
Revision tags: llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4 |
|
#
3b7bfeb4 |
| 22-Oct-2023 |
Kazu Hirata <kazu@google.com> |
[llvm] Stop including llvm/ADT/SmallString.h (NFC)
Identified with misc-include-cleaner.
|
Revision tags: llvmorg-17.0.3, llvmorg-17.0.2 |
|
#
3f417a70 |
| 02-Oct-2023 |
shen3qing1 <145069838+shen3qing1@users.noreply.github.com> |
[NFC] [Coverage] Do not use recursion for getMaxCounterID (#67870)
This causes stack overflows for real-world coverage reports.
Tested with build/bin/llvm-lit -a llvm/test/tools/llvm-cov
Co-au
[NFC] [Coverage] Do not use recursion for getMaxCounterID (#67870)
This causes stack overflows for real-world coverage reports.
Tested with build/bin/llvm-lit -a llvm/test/tools/llvm-cov
Co-authored-by: Qing Shen <qingshen@google.com>
show more ...
|
#
4d5d9a53 |
| 27-Sep-2023 |
Zequan Wu <zequanwu@google.com> |
Revert "[Coverage] Allow Clang coverage to be used with debug info correlation."
This reverts commit 32db121b29f78e4c41116b2a8f1c730f9522b202 and subsequent commits.
This causes time regression on
Revert "[Coverage] Allow Clang coverage to be used with debug info correlation."
This reverts commit 32db121b29f78e4c41116b2a8f1c730f9522b202 and subsequent commits.
This causes time regression on llvm-cov even with debug info correlation off.
show more ...
|
#
dd8902ab |
| 24-Sep-2023 |
Fangrui Song <i@maskray.me> |
[llvm-cov] Properly fix -Wcovered-switch-default in CoverageMapping.cpp
And revert commit 1f3fa96e516fda26244afb8877e6cee619c21205.
|
#
9c5b38b4 |
| 22-Sep-2023 |
Kazu Hirata <kazu@google.com> |
[Coverage] Fix a warning
This patch fixes:
llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:219:5: error: default label in switch which covers all enumeration values [-Werror,-Wcovered-switc
[Coverage] Fix a warning
This patch fixes:
llvm/lib/ProfileData/Coverage/CoverageMapping.cpp:219:5: error: default label in switch which covers all enumeration values [-Werror,-Wcovered-switch-default]
show more ...
|
#
487c784e |
| 22-Sep-2023 |
shen3qing1 <145069838+shen3qing1@users.noreply.github.com> |
[NFC]Do not use recursion for CounterMappingContext::evaluate (#66961)
This causes stack overflows for real-world coverage reports.
Ran $ build/bin/llvm-lit -a llvm/test/tools/llvm-cov locally an
[NFC]Do not use recursion for CounterMappingContext::evaluate (#66961)
This causes stack overflows for real-world coverage reports.
Ran $ build/bin/llvm-lit -a llvm/test/tools/llvm-cov locally and passed.
Co-authored-by: Qing Shen <qingshen@google.com>
show more ...
|
#
ab3cd075 |
| 20-Sep-2023 |
Alan Phipps <a-phipps@ti.com> |
Revert "[Coverage][llvm-cov] Enable MC/DC Support in LLVM Source-based Code Coverage (2/3)"
This reverts commit 618a22144db5e45da8c95dc22064103e1b5e5b71.
Buildbots failing on windows and one other
Revert "[Coverage][llvm-cov] Enable MC/DC Support in LLVM Source-based Code Coverage (2/3)"
This reverts commit 618a22144db5e45da8c95dc22064103e1b5e5b71.
Buildbots failing on windows and one other issue.
show more ...
|
Revision tags: llvmorg-17.0.1 |
|
#
618a2214 |
| 18-Sep-2023 |
Alan Phipps <a-phipps@ti.com> |
[Coverage][llvm-cov] Enable MC/DC Support in LLVM Source-based Code Coverage (2/3)
Part 2 of 3. This includes the Visualization and Evaluation components.
Differential Revision: https://reviews.llv
[Coverage][llvm-cov] Enable MC/DC Support in LLVM Source-based Code Coverage (2/3)
Part 2 of 3. This includes the Visualization and Evaluation components.
Differential Revision: https://reviews.llvm.org/D138847
show more ...
|
#
1609a87a |
| 18-Sep-2023 |
Zequan Wu <zequanwu@google.com> |
[Profile] Pass InstrProfSymtab by reference.
|
#
cb9f66de |
| 18-Sep-2023 |
Zequan Wu <zequanwu@google.com> |
[Profile] Pass InstrProfSymtab instead of IndexedInstrProfReader when creating BinaryCoverageReader
Only InstrProfSymtab is needed to retrieve function names when debug info corrletaion is enabled.
|
Revision tags: llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3 |
|
#
32db121b |
| 14-Aug-2023 |
Zequan Wu <zequanwu@google.com> |
[Coverage] Allow Clang coverage to be used with debug info correlation.
Debug info correlation is an option in InstrProfiling pass, which is used by both IR instrumentation and front-end instrumenta
[Coverage] Allow Clang coverage to be used with debug info correlation.
Debug info correlation is an option in InstrProfiling pass, which is used by both IR instrumentation and front-end instrumentation. So, Clang coverage can also benefits the binary size saving from it.
Reviewed By: ellis
Differential Revision: https://reviews.llvm.org/D157913
show more ...
|