Brussels / 4 & 5 February 2023


Open source C/C++ embedded toolchains using LLVM

Open-source tools based on LLVM that target rich software platforms such as Linux are in widespread use. A large proportion of the investment in upstream LLVM development is targeted at this use case. There is much less use of open-source C/C++ toolchains for embedded software development, with GCC toolchains being dominant. This can be explained by a number of factors: * Assembling an embedded toolchain is complicated, due to cross-compilation and missing components such as the C-library. * Differences in the toolchain interface and missing functionality compared to GCC. * Code-size and performance gaps on embedded targets.

There are efforts in the LLVM community to improve the suitability for embedded software development. This presentation will cover some of the gaps and what we are trying to do to fill them. Specifically: * Hosted versus embedded toolchains. * Why do we want to use LLVM for an embedded toolchain? * What components make up an embedded toolchain, and which of these can be supplied by the LLVM project. * The LLVM bare metal driver. * A comparison of a LLVM based toolchain against an equivalent GNU toolchain. * Work that is being done in the community to improve embedded development. * How to get involved!

The presentation does not require any in depth knowledge of LLVM or compilers. An awareness of the components of a toolchain such as compiler, linker and libraries will be helpful. The toolchains used for comparison are the LLVM Embedded Toolchain for Arm and the GNU Arm Embedded Toolchain.

Details of LLVM community meet-ups, including the Monthly LLVM Embedded Toolchains call are available at


Photo of Peter Smith Peter Smith