[PATCH] D138847: MC/DC in LLVM Source-Based Code Coverage: llvm-cov visualization

Alan Phipps via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 28 11:58:21 PST 2022


alanphipps created this revision.
Herald added subscribers: hiraditya, kristof.beyls.
Herald added a project: All.
alanphipps requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

MC/DC in LLVM Source-based Code Coverage: Review 2/3

I previously upstreamed work to enable Branch Coverage (https://reviews.llvm.org/D84467), which was pushed in early 2021. MC/DC (Modified Condition/Decision Coverage) is a planned enhancement to Source-based Code Coverage. Implementation was completed in May for our downstream Arm compiler, and in general use it has not yielded any issues. Our downstream implementation does not use most of the compiler-rt profile functionality, and so that is relatively new to this patch.

See attached file for Background, Motivation, Design, and Implementation Concepts:

See attached PDF for Technical Talk slides from 2022 LLVM Developers' Meeting:

I am also available at Discord @alanphipps


https://reviews.llvm.org/D138847

Files:
  llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
  llvm/lib/ProfileData/Coverage/CoverageMapping.cpp
  llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
  llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp
  llvm/test/tools/llvm-cov/Inputs/binary-formats.canonical.json
  llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.cpp
  llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.o32l
  llvm/test/tools/llvm-cov/Inputs/mcdc-const-folding.proftext
  llvm/test/tools/llvm-cov/Inputs/mcdc-const.cpp
  llvm/test/tools/llvm-cov/Inputs/mcdc-const.o32l
  llvm/test/tools/llvm-cov/Inputs/mcdc-const.proftext
  llvm/test/tools/llvm-cov/Inputs/mcdc-general-none.proftext
  llvm/test/tools/llvm-cov/Inputs/mcdc-general.cpp
  llvm/test/tools/llvm-cov/Inputs/mcdc-general.o32l
  llvm/test/tools/llvm-cov/Inputs/mcdc-general.proftext
  llvm/test/tools/llvm-cov/mcdc-const.test
  llvm/test/tools/llvm-cov/mcdc-export-json.test
  llvm/test/tools/llvm-cov/mcdc-general-none.test
  llvm/test/tools/llvm-cov/mcdc-general.test
  llvm/tools/llvm-cov/CodeCoverage.cpp
  llvm/tools/llvm-cov/CoverageExporterJson.cpp
  llvm/tools/llvm-cov/CoverageReport.cpp
  llvm/tools/llvm-cov/CoverageSummaryInfo.cpp
  llvm/tools/llvm-cov/CoverageSummaryInfo.h
  llvm/tools/llvm-cov/CoverageViewOptions.h
  llvm/tools/llvm-cov/SourceCoverageView.cpp
  llvm/tools/llvm-cov/SourceCoverageView.h
  llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp
  llvm/tools/llvm-cov/SourceCoverageViewHTML.h
  llvm/tools/llvm-cov/SourceCoverageViewText.cpp
  llvm/tools/llvm-cov/SourceCoverageViewText.h
  llvm/unittests/ProfileData/CoverageMappingTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D138847.478311.patch
Type: text/x-patch
Size: 98013 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221128/40809f9b/attachment-0001.bin>


More information about the llvm-commits mailing list