History log of /llvm-project/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp (Results 26 – 50 of 141)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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 ...


123456