[all-commits] [llvm/llvm-project] 63182c: [gcov] Add spanning tree optimization

Fangrui Song via All-commits all-commits at lists.llvm.org
Sun Sep 13 00:08:49 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 63182c2ac0b643a60d397274e8a31166fc7243fa
      https://github.com/llvm/llvm-project/commit/63182c2ac0b643a60d397274e8a31166fc7243fa
  Author: Fangrui Song <i at maskray.me>
  Date:   2020-09-13 (Sun, 13 Sep 2020)

  Changed paths:
    M clang/test/CodeGen/code-coverage-tsan.c
    M compiler-rt/test/profile/Posix/gcov-fork.c
    M compiler-rt/test/profile/gcov-dump-and-remove.c
    M llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
    M llvm/test/Transforms/GCOVProfiling/atomic-counter.ll
    A llvm/test/Transforms/GCOVProfiling/split-indirectbr-critical-edges.ll

  Log Message:
  -----------
  [gcov] Add spanning tree optimization

gcov is an "Edge Profiling with Edge Counters" application according to
Optimally Profiling and Tracing Programs (1994).

The minimum number of counters necessary is |E|-(|V|-1). The unmeasured edges
form a spanning tree. Both GCC --coverage and clang -fprofile-generate leverage
this optimization. This patch implements the optimization for clang --coverage.
The produced .gcda files are much smaller now.




More information about the All-commits mailing list