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 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130205/17a468bc/attachment.html>
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/20130205/2390d0e9/attachment.html>
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>