The way `-ftest-coverage -fprofile-arcs` works at the moment it only flushes via `atexit()`. This patch allows you to flush the coverage at any point by calling `__llvm_gcov_flush` the same way `__gcov_flush` works for gcc. If there is another way of doing this, I might of missed it but I was looking for `__gcov_flush` and I did not find the equivalent in llvm at the moment. -- John Harrison On Tue, Feb 5, 2013 at 11:26 PM, Bill Wendling <wendling at apple.com> wrote:> We do have a gcov "flush" implementation. It should be emitted with the > normal coverage code. Is it not showing up? > > -bw > > On Feb 5, 2013, at 4:20 PM, John Harrison <ash.gti at gmail.com> wrote: > > Hi, > > I ran into the bug/feature request that you cannot flush gcov buffers > while the app is running. They are only called when you exit the program, > since the flush functions are registered with atexit(). This is the bug > report: http://llvm.org/bugs/show_bug.cgi?id=12144 > > I have what I think is a basic implementation of the `__gcov_flush` call, > although I called this version `__llvm_gcov_flush`. Here is the diff > https://gist.github.com/ashgti/4685743 if anyone would like to see it. > > So, my question is where should I go from here? Do I need to email the > exact patch to llvm-commits? This touches both the llvm and compiler-rt, so > I don't know if that changes anything. > > > Thanks, > > -- > John Harrison > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130206/050024ed/attachment.html>
On 2/6/2013 11:43 AM, John Harrison wrote:> The way `-ftest-coverage -fprofile-arcs` works at the moment it only > flushes via `atexit()`. This patch allows you to flush the coverage at > any point by calling `__llvm_gcov_flush` the same way `__gcov_flush` > works for gcc. > > If there is another way of doing this, I might of missed it but I was > looking for `__gcov_flush` and I did not find the equivalent in llvm > at the moment.__gcov_flush is added by the GCOVProfiling.cpp pass by GCOVProfiler::insertFlush. -- Joshua Cranmer News submodule owner DXR coauthor
Ah, my mistake. So this already works. I guess that bug is out of date, since this feature works already. -- John Harrison On Wed, Feb 6, 2013 at 10:00 AM, Joshua Cranmer <pidgeot18 at gmail.com> wrote:> On 2/6/2013 11:43 AM, John Harrison wrote: > >> The way `-ftest-coverage -fprofile-arcs` works at the moment it only >> flushes via `atexit()`. This patch allows you to flush the coverage at any >> point by calling `__llvm_gcov_flush` the same way `__gcov_flush` works for >> gcc. >> >> If there is another way of doing this, I might of missed it but I was >> looking for `__gcov_flush` and I did not find the equivalent in llvm at the >> moment. >> > > __gcov_flush is added by the GCOVProfiling.cpp pass by > GCOVProfiler::insertFlush. > > -- > Joshua Cranmer > News submodule owner > DXR coauthor > > > ______________________________**_________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/**mailman/listinfo/llvmdev<http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev> >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130206/c0b6bf71/attachment.html>