search for: __llvm_covmap

Displaying 13 results from an estimated 13 matches for "__llvm_covmap".

2015 May 20
2
[LLVMdev] why is coverage map and profile names mixed?
Hi I'm referencing the method: Lib/Transforms/Instrumentation/InstrProfiling.cpp:InstrProfiling::lowerCoverageData() At the end of the function, why is the variable being placed in __llvm_prf_names section? Shouldn't it be placed in __llvm_covmap section? Thanks Ali -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150520/0c2cab1d/attachment.html>
2017 Jun 19
3
My experience using -DLLVM_BUILD_INSTRUMENTED_COVERAGE to generate coverage
...section is highly compressible, but exploiting > the compressibility has proven to be tricky. I filed: llvm.org/PR33499 > <http://llvm.org/PR33499>. If I'm cross-compiling for a target where the space matters, can I rid of the data for the copy on the device using "strip -R __llvm_covmap" or something like that, then use llvm-cov on the original? > Coverage makes use of frontend-based instrumentation, which is much > less efficient than the IR-based kind. If we can find a way to map > counters inserted by IR PGO to AST nodes, we could improve the > situation....
2018 Feb 01
1
Customizing SBCC for lcov workflows
...r statements that have no children while the coverage mapping generator walks the AST. These statements are leaf nodes and correspond to single, concrete items in the source code (effectively filtering out statements that can span multiple lines of code). Writing the collected line numbers to the __llvm_covmap section is easy enough. I’m still working through the coverage mapping reader code so I can take advantage of the new information in llvm-cov while generating the lcov .info files. I’d like to eventually push this change upstream (I can’t be the only one wanting to use lcov and SBCC together), so...
2017 Sep 06
5
Using source-based code coverage on baremetal
...er() and __llvm_profile_write_buf() for this (and semihosting APIs to transfer the resulting buffer to the host). 3. Then, you have to edit your linker script to include the necessary sections.  __llvm_prf_names, __llvm_prf_data, and __llvm_prf_cnts need to be included in the final image.  And __llvm_covmap needs to be in a non-allocatable section in the ELF output.  And depending on how your linker behaves, you might need to explicitly mark all of these sections KEEP so parts don't get dropped.  This is actually the trickiest part, in the sense that messing it up lead to obscure issues which...
2017 Jul 01
7
[RFC] Placing profile name data, and coverage data, outside of object files
...from a coverage + RA build of ToT clang: * Size of the build directory: 4.3 GB * Wall time needed to run "clang -help" with an SSD: 0.5 seconds * Size of the clang binary: 725.24 MB * Space wasted on duplicate name/coverage data (*.o + *.a): 923.49 MB - Size contributed by __llvm_covmap sections: 1.02 GB \_ Just within clang: 340.48 MB - Size contributed by __llvm_prf_names sections: 327.46 MB \_ Just within clang: 106.76 MB => Space wasted within the clang binary: 447.24 MB Running an instrumented clang binary triggers a 143MB raw profile write which is...
2017 Jul 01
4
[RFC] Placing profile name data, and coverage data, outside of object files
...> > * Size of the build directory: 4.3 GB > > * Wall time needed to run "clang -help" with an SSD: 0.5 seconds > > * Size of the clang binary: 725.24 MB > > * Space wasted on duplicate name/coverage data (*.o + *.a): 923.49 MB > - Size contributed by __llvm_covmap sections: 1.02 GB > \_ Just within clang: 340.48 MB > We live with this duplication for debug info. In some sense, if the overhead is small compared to debug info, should we even bother (i.e., we assume that users accommodate debug builds, so that is a reasonable bound on the tolerable...
2018 Mar 13
1
Profiling Support for BareMetal Target
Hi, I followed two posts as my guideline http://lists.llvm.org/pipermail/llvm-dev/2017-September/117339.html and http://lists.llvm.org/pipermail/llvm-dev/2017-September/117156.html I am using clang 4.0.1 and compiler-rt 4.0 release 1. I made changes in the LCF to mimic Linux Platform (for linker magic) In data section i have added: __start___llvm_prf_cnts = .;
2017 Jul 01
3
[RFC] Placing profile name data, and coverage data, outside of object files
...ild directory: 4.3 GB >> >> * Wall time needed to run "clang -help" with an SSD: 0.5 seconds >> >> * Size of the clang binary: 725.24 MB >> >> * Space wasted on duplicate name/coverage data (*.o + *.a): 923.49 MB >> - Size contributed by __llvm_covmap sections: 1.02 GB >> \_ Just within clang: 340.48 MB >> > > We live with this duplication for debug info. In some sense, if the > overhead is small compared to debug info, should we even bother (i.e., we > assume that users accommodate debug builds, so that is a reason...
2017 Jul 01
0
[RFC] Placing profile name data, and coverage data, outside of object files
...> > * Size of the build directory: 4.3 GB > > * Wall time needed to run "clang -help" with an SSD: 0.5 seconds > > * Size of the clang binary: 725.24 MB > > * Space wasted on duplicate name/coverage data (*.o + *.a): 923.49 MB > - Size contributed by __llvm_covmap sections: 1.02 GB > \_ Just within clang: 340.48 MB > > - Size contributed by __llvm_prf_names sections: 327.46 MB > \_ Just within clang: 106.76 MB > > => Space wasted within the clang binary: 447.24 MB > > Running an instrumented clang binary trigger...
2019 May 16
2
How data is laid out in default.profraw when doing profiling?
Hi all, I'm now working on llvm-cov for a new target and have a problem here. Because of some reasons, users do not stub in the main function and after running elf file, they cannot get a default profraw. Now they want to construct a default profraw manually but don't know how data is laid out in `default profraw` file. We found a struct ProfDataIOVec in InstrProfilingWriter.c in
2017 Jul 01
0
[RFC] Placing profile name data, and coverage data, outside of object files
...t;> >>> * Wall time needed to run "clang -help" with an SSD: 0.5 seconds >>> >>> * Size of the clang binary: 725.24 MB >>> >>> * Space wasted on duplicate name/coverage data (*.o + *.a): 923.49 MB >>> - Size contributed by __llvm_covmap sections: 1.02 GB >>> \_ Just within clang: 340.48 MB >>> >> >> We live with this duplication for debug info. In some sense, if the >> overhead is small compared to debug info, should we even bother (i.e., we >> assume that users accommodate debug bui...
2017 Jun 17
3
My experience using -DLLVM_BUILD_INSTRUMENTED_COVERAGE to generate coverage
I've started looking at the state of code coverage recently; we figured LLVM itself would be a good test to figure out how mature it is, so I gave it a shot. My experience: 1. You have to specify -DLLVM_USE_LINKER=gold (or maybe lld works; I didn't try). If you link with binutils ld, the program will generate broken profile information. Apparently, the linked binary is missing the
2018 Feb 03
2
llvm-dev Digest, Vol 164, Issue 6
...ve no children while the coverage mapping generator walks > the AST. These statements are leaf nodes and correspond to single, > concrete items in the source code (effectively filtering out statements > that can span multiple lines of code). Writing the collected line numbers > to the __llvm_covmap section is easy enough. I’m still working through the > coverage mapping reader code so I can take advantage of the new information > in llvm-cov while generating the lcov .info files. > > This sounds like a reasonable plan -- I don't think it needs to be an > opt-in behavior. O...