I think this patch is ready for review now. I'm resubmitting these patches with a few tiny fixes so they build properly.
These are the main highlights since v3: 1. Atomics are issued under -fprofile-update=atomic 2. Giving up after exceeding path limit in more phases to not accidentally get stuck between checks. 3. Fixed some ICEs, mostly around setjmp. 4. Refactoring, comments. 5. Manual entries, --help. Jørgen Kvalsvik (3): gcov: Cache source files gcov: Add branch, conds, calls in function summary Add prime path coverage to gcc/gcov gcc/Makefile.in | 6 +- gcc/builtins.cc | 2 +- gcc/collect2.cc | 5 +- gcc/common.opt | 14 + gcc/doc/gcov.texi | 155 ++ gcc/doc/invoke.texi | 35 + gcc/gcc.cc | 4 +- gcc/gcov-counter.def | 3 + gcc/gcov-io.h | 3 + gcc/gcov.cc | 537 ++++++- gcc/ipa-inline.cc | 2 +- gcc/passes.cc | 4 +- gcc/path-coverage.cc | 778 +++++++++ gcc/prime-paths.cc | 2006 ++++++++++++++++++++++++ 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/gcc.misc-tests/gcov-29.c | 869 ++++++++++ gcc/testsuite/gcc.misc-tests/gcov-30.c | 869 ++++++++++ gcc/testsuite/lib/gcov.exp | 92 +- gcc/tree-profile.cc | 11 +- 22 files changed, 5534 insertions(+), 39 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/gcc.misc-tests/gcov-29.c create mode 100644 gcc/testsuite/gcc.misc-tests/gcov-30.c -- 2.39.2