AbortedChanges

Summary

  1. [gcov] Add spanning tree optimization (details)
  2. [gcov] Fix memory leak due to BranchProbabilityInfoWrapperPass (details)
Commit 63182c2ac0b643a60d397274e8a31166fc7243fa by i
[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.
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
The file was addedllvm/test/Transforms/GCOVProfiling/split-indirectbr-critical-edges.ll
The file was modifiedllvm/test/Transforms/GCOVProfiling/atomic-counter.ll
The file was modifiedclang/test/CodeGen/code-coverage-tsan.c
The file was modifiedcompiler-rt/test/profile/Posix/gcov-fork.c
The file was modifiedcompiler-rt/test/profile/gcov-dump-and-remove.c
Commit 5f4e9bf6416e45eba483a4e5e263749989fdb3b3 by i
[gcov] Fix memory leak due to BranchProbabilityInfoWrapperPass

This is weird.
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp