mbox series

[0/2] Prime path coverage to gcc/gcov

Message ID 20241003104609.2197741-1-j@lambda.is
Headers show
Series Prime path coverage to gcc/gcov | expand

Message

Jørgen Kvalsvik Oct. 3, 2024, 10:46 a.m. UTC
This is both a ping and a minor update. A few of the patches from the
previous set have been merged, but the big feature still needs review.

Since then it has been quiet, but there are two notable changes:

1. The --prime-paths-{lines,source} flags take an optional argument to
   print covered or uncovered paths, or both. By default, uncovered
   paths are printed like before.
2. Fixed a bad vector access when independent functions share compiler
   generated statements. A reproducing case is in gcov-23.C which
   relied on printing the uncovered path of multiple destructors of
   static objects.

Jørgen Kvalsvik (2):
  gcov: branch, conds, calls in function summaries
  Add prime path coverage to gcc/gcov

 gcc/Makefile.in                        |    6 +-
 gcc/builtins.cc                        |    2 +-
 gcc/collect2.cc                        |    5 +-
 gcc/common.opt                         |   16 +
 gcc/doc/gcov.texi                      |  184 +++
 gcc/doc/invoke.texi                    |   36 +
 gcc/gcc.cc                             |    4 +-
 gcc/gcov-counter.def                   |    3 +
 gcc/gcov-io.h                          |    3 +
 gcc/gcov.cc                            |  531 ++++++-
 gcc/ipa-inline.cc                      |    2 +-
 gcc/passes.cc                          |    4 +-
 gcc/path-coverage.cc                   |  782 +++++++++
 gcc/prime-paths.cc                     | 2031 ++++++++++++++++++++++++
 gcc/profile.cc                         |    6 +-
 gcc/selftest-run-tests.cc              |    1 +
 gcc/selftest.h                         |    1 +
 gcc/testsuite/g++.dg/gcov/gcov-22.C    |  170 ++
 gcc/testsuite/g++.dg/gcov/gcov-23-1.h  |    9 +
 gcc/testsuite/g++.dg/gcov/gcov-23-2.h  |    9 +
 gcc/testsuite/g++.dg/gcov/gcov-23.C    |   30 +
 gcc/testsuite/gcc.misc-tests/gcov-29.c |  869 ++++++++++
 gcc/testsuite/gcc.misc-tests/gcov-30.c |  869 ++++++++++
 gcc/testsuite/gcc.misc-tests/gcov-31.c |   35 +
 gcc/testsuite/gcc.misc-tests/gcov-32.c |   24 +
 gcc/testsuite/gcc.misc-tests/gcov-33.c |   27 +
 gcc/testsuite/gcc.misc-tests/gcov-34.c |   29 +
 gcc/testsuite/lib/gcov.exp             |  118 +-
 gcc/tree-profile.cc                    |   11 +-
 29 files changed, 5795 insertions(+), 22 deletions(-)
 create mode 100644 gcc/path-coverage.cc
 create mode 100644 gcc/prime-paths.cc
 create mode 100644 gcc/testsuite/g++.dg/gcov/gcov-22.C
 create mode 100644 gcc/testsuite/g++.dg/gcov/gcov-23-1.h
 create mode 100644 gcc/testsuite/g++.dg/gcov/gcov-23-2.h
 create mode 100644 gcc/testsuite/g++.dg/gcov/gcov-23.C
 create mode 100644 gcc/testsuite/gcc.misc-tests/gcov-29.c
 create mode 100644 gcc/testsuite/gcc.misc-tests/gcov-30.c
 create mode 100644 gcc/testsuite/gcc.misc-tests/gcov-31.c
 create mode 100644 gcc/testsuite/gcc.misc-tests/gcov-32.c
 create mode 100644 gcc/testsuite/gcc.misc-tests/gcov-33.c
 create mode 100644 gcc/testsuite/gcc.misc-tests/gcov-34.c