The Embedded Toolchains pre conference Workshop will take place on Tuesday the 10th October from 8:30 to 12:30 (Agenda: 2023 LLVM Developers' Meeting).
At the recent Embedded Toolchains Call we drafted a first draft of an agenda. The purpose of this post is to share the initial draft and ask whom is likely to attend. Ultimately the final agenda will be determined by what the people that turn up are interested in.
The format we’d like to take for the workshop is to pick a few large topics of interest and use a birds of a feather (BOF) format, with 2-5 slides to set the context followed by a discussion. In each case we don’t expect to be making decisions on details, but we would like to be able set a general direction for further discussions. We expect each major topic to last 45 minutes to 1 hour. Topics are not in any particular order.
Topic 1: LTO and linker scripts.
There have been two presentations on linker scripts in past LLVM dev meetings 2022 (https://www.youtube.com/watch?v=OkGsMrVd2y8) and https://llvm.org/devmtg/2017-10/slides/LTOLinkerScriptsEdlerVonKoch.pdf , but nothing has landed upstream yet. We would like to get requirements for what needs to be supported as well as agree on a general direction. Ideally an RFC will be available for discussion prior to the event.
Topic 2: LLVM libc and libc++ in embedded systems
A combined topic of llvm-libc and libc++ in embedded systems. Including:
- Subsets of libc libc++ that are suitable for embedded systems without a full POSIX compliant OS.
- Support for threading and concurrency primitives without a POSIX API, is there a lower-level API that could be designed?
- Interaction between llvm-libc and libc++
Topic 3: Code coverage and profiling
The runtime in compiler-rt is not suitable for the smallest embedded systems, while it is possible to hand roll a minimal runtime ideally this should be available in tree. There are also other concerns such as whether counters need to be in memory, or can they be held off target.
- Requirements for embedded systems
- MC/DC and other code-coverage suitable for embedded systems.
- Performance profiling on embedded systems.
Topic 4: Embedded linker features and diagnostics
This is likely to be a more open session, towards the end of the day. Embedded systems often require complex linker scripts and often require more diagnostics to work out if the output is correct. Ideally we can work out what is feasible in LLD, and find out who is willing to collaborate on implementations.
We will likely have some backup topics if people aren’t available on the day.
As mentioned previously, the final agenda will be determined by the people that turn up. It would be helpful if you can reply to this thread if you will or are likely to attend, and let us know if we’ve missed out a topic you would be interested in? I do not expect many will want to commit at this point, but any indication will be helpful.
I’m tagging some of the experts/maintainers that Petr Hosek mentioned in Pre-LLVM-DEV'23 -- Embedded Toolchains Workshop - #2 by petrhosek
@MaskRay for LLD
@snidertm and @ilovepi for LTO and linker scripts
@barrelshifter @ellishg @evodius96 for Code coverage
@sivachandra @michaelrj-google @ldionne for libc++ and llvm-libc
If you know of someone else, please do add to this thead.