I would like to have a round table in 2022 LLVM Dev Mtg to bring in all the folks who are interested in profiling, source-based coverage and compiler-rt. I’m tagging people who have been active in these areas before, and please feel free to tag other people who might be interested.
I would like to be involved in that as well. I implemented branch coverage and will be upstreaming MC/DC support very soon.
Great @evodius96! I wanted to tag you but I was not able to find your user name.
I am interested!
I am interested in this area & would like to join!
I’m thinking to set a round table at on Nov 9th at 4:30 - 5:00. For the people who are interested, does it conflict with any of the sessions that you are planning to attend? I’m hoping that we can discuss the current and future work regarding profiling, coverage and compiler-rt.
Unfortunately I’ll be leaving earlier that day (about 3:30-4pm). But If it’s good for others, I’m ok. Thanks!
I’m interested and would like to join.
There is another roundtables session at 3:00 - 3:30. We can also do it at that time so you can join.
I scheduled the round table at 3:00-3:30pm on November 9th.
Thank you everyone for participating in the roundtable, and here’s the meeting minutes:
- Gulfem Savrun Yeniceri
- Working on coverage in the Fuchsia Toolchain team
- Alan Phipps
- Working on code coverage for embedded space that has size constraints at Texas Instruments
- Previously implemented branch coverage and currently working on MCDC coverage
- Ellis Hoag
- Working on instrumentation for mobile apps at Meta
- Bryan Chan
- Trying to get involved in coverage and working at Huawei
- Jessica Paquette
- Recently started working in coverage at Apple, and learning more about coverage
- Daniel Thornburgh
- Working at Fuchsia Toolchain team, recently get involved in coverage and working on adding debuginfod into llvm-cov
- Participant (Sorry, I could not catch the name)
- Working on Android Native Compiler Team and interested in profile instrumentation
- Prabhu Karthikeyan Rajasekaran
- Exploring solutions that are feasible for embedded space in general
- Ramping up in coverage
- Petr Hosek
- Lead the Fuchsia Toolchain team
- Did the initial port of coverage in Fuchsia
- Did improvements into code health quality, compiler-rt, and testing
- Zequan Wu
- Working on source-based code coverage in Chromium Toolchain team
- Michal Rostecki
- Learning about coverage
- Amir Aupov
- Working on BOLT that uses profiling to change code layout
- Lack of documentation, such as the high-level coverage pipeline overview, existing features that can be turned on/off and their limitations
- Testing can be extended and improved
- Existing tools can be improved or new tools can be introduced to better pinpoint the coverage issues
- Jessica: It is hard to distinguish whether error is coming from coverage pipeline or Xcode in certain cases, and some verifier tool might be useful
- Petr: Fuchsia team worked on coverage reliability issues and extended the diagnostics for error messages in coverage
- Basic block minimal coverage in LLVM (don’t need to instrument every basic block, which can for example used for outlining)
- Working with Daniel on using debuginfod for coverage to simplify the coverage pipeline
Future work and ideas
- Rewriting compiler-rt in C++ to improve readability
- Jessica: It is difficult to read compiler-rt code even as an experienced LLVM developer because of all the Macros about different backends
- Instrumenting timestamps into profiles that can be used for function layout and reduce page faults
- Prabhu: Want to learn more about size savings for embedded space
- Alan: Removed certain compiler-rt functions/files that are not necessary for embedded platforms go get size savings
- Petr: Fuchsia built their simple compiler-rt for collecting coverage in its kernel and might use some ideas if Alan can share his work and maybe it can be upstreamed as a minimal compiler-rt
Tools that are currently used for coverage in different projects
- Jessica: xcov
- Petr: llvm-cov
- Justin: lcov
- Zequan: llvm-cov
- Amir: llvm-cov is used to integrate the profile results into other tools
Instrumentation metadata maintenance
- Bryan: Does the optimization pipeline impact instrumentation?
- Daniel: Backend passes respect the instrumentation metadata
- There is currently a CompilerRT category under Runtimes in Discourse
- We can add tags like instrumentation and coverage, so people can subscribe for (Jessica volunteered to do that)
- There are Herald rules in Phabricator that you can subscribe for certain changes
- We can add also add a group like compiler-rt that people can add themselves for reviewing purposes
By the way, we now have a “profiling” channel on Discord. This should be a good place to quickly ask questions or request feedback related to instrumentation, source-based coverage, PGO, and