[gcov] Display the hit counter for the line of a function definition
authorCalixte Denizet <cdenizet@mozilla.com>
Thu, 11 Oct 2018 08:53:43 +0000 (08:53 +0000)
committerCalixte Denizet <cdenizet@mozilla.com>
Thu, 11 Oct 2018 08:53:43 +0000 (08:53 +0000)
Summary:
Right now there is no hit counter on the line of function.
So the idea is add the line of the function to all the lines covered by the entry block.
Tests in compiler-rt/profile will be fixed in another patch: https://reviews.llvm.org/D49854

Reviewers: marco-c, davidxl

Reviewed By: marco-c

Subscribers: sylvestre.ledru, llvm-commits

Differential Revision: https://reviews.llvm.org/D49853

llvm-svn: 344228

llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp

index 625b354..a060dd5 100644 (file)
@@ -570,6 +570,12 @@ void GCOVProfiler::emitProfileNotes() {
                                                 Options.ExitBlockBeforeBody));
       GCOVFunction &Func = *Funcs.back();
 
+      // Add the function line number to the lines of the entry block
+      // to have a counter for the function definition.
+      Func.getBlock(&EntryBlock)
+          .getFile(SP->getFilename())
+          .addLine(SP->getLine());
+
       for (auto &BB : F) {
         GCOVBlock &Block = Func.getBlock(&BB);
         TerminatorInst *TI = BB.getTerminator();