[LLVMdev] About Code coverage Algorithms.

Bob Wilson bob.wilson at apple.com
Mon Oct 13 22:53:53 PDT 2014

> On Oct 13, 2014, at 10:09 PM, Umesh Kalappa <umesh.kalappa0 at gmail.com> wrote:
> Hi All,
> Good day for everyone .
> We benchmarked  the code coverage algorithms  like
> a)Optimal Edge Profiling
> (ftp://ftp.cs.wisc.edu/pub/techreports/1991/TR1031.pdf .) that are
> adopted by  GCC and LLVM
> b)Dominator Leaf
> instrumentation(http://users.sdsc.edu/~mtikir/publications/papers/issta02.pdf)
> and i don't see the practical implementation of this.
> Goal is to reduce the instrumentation point  and when we benchmarked
> both algorithms .The number of blocks that are  required to instrument
> is less in option-b over option-a.
> Need some expert insights on this like why the option-b is not widely
> used over option-a.

Clang uses a different approach with its -fprofile-instr-generate option. The instrumentation is based on source-level control flow constructs. Intuitively, for well structured code, it should get similar efficiency to techniques like the option (b) cited above, but I’m not aware of any quantitative comparisons. If you can provide any data on that comparison for real-world code, it would be very interesting to see how we’re doing.

More information about the llvm-dev mailing list