Announcing an Open Source LLVM toolchain for Snapdragon CPUs and MCUs
Sign up for Developer monthly newsletter
Join thousands of developers around the globe who receive latest news and updates from our monthly curated newsletter.
Sign upCome for support, stay for the community
Get support from experts, connect with like-minded developers, and access exclusive virtual events.
Join Developer DiscordWe are excited to introduce CPULLVM, a new open source project to build open source LLVM toolchains for Arm and RISC-V 32- and 64-bit targets. This marks a major shift as we move away from the Snapdragon LLVM Compiler (previously a proprietary LLVM toolchain for Snapdragon Software Products) toward a fully open source solution accessible to Qualcomm teams, third parties, OEMs, and partners.
The CPULLVM toolchain delivers the same robust support as our former proprietary solution, empowering users to build Arm, AArch64, and RISC-V 32- and 64-bit embedded images.
Compiler toolchains are essential components of the software ecosystem, encompassing not only compilers but also libraries, headers, linkers, and other related tools.
For many years, Qualcomm has made significant investments in C/C++ compilers, embedded linkers, and complete toolchain solutions, culminating in the development of our proprietary LLVM toolchain for Snapdragon Software Products.
To better meet our customers’ needs and remain true to our open source-first strategy, we have shifted from using a proprietary solution to adopting a fully open source approach.
Components
The CPULLVM toolchain is primarily constructed using LLVM technologies and tools. It features the Clang C and C++ compilers, the libcxx and compiler-rt libraries, and the LLDB debugger, along with a variety of other LLVM-based utilities for building and analyzing programs.
Drawing on our extensive experience with the Polly polyhedral optimizer, we have also integrated it into our toolchain.
Additionally, the toolchain includes ELD, our open source embedded linker. For bare metal targets, we rely on the picolibc open source C library, while for Linux target testing and validation purposes, we use musl open source C library.
These components allow CPULLVM to effectively handle embedded image requirements, including support for embedded bare metal (i.e., non-HLOS) and Zephyr images.
Development Model
Our approach aligns with other well-known open source LLVM toolchain projects— all our LLVM development is conducted within the llvm.org open source LLVM project. New features for CPULLVM are always contributed and integrated into llvm.org’s LLVM first. In addition, CPULLVM offers a customer support model.
This means it may include patches that have already been submitted upstream but are not yet part of an official llvm.org ‘s LLVM release, allowing us to address customer issues efficiently and promptly.
CPULLVM releases will follow llvm.org open source LLVM releases—typically scheduled in March and September—by a few weeks. Our first toolchain release, based on llvm.org’s LLVM 22.1.0, was made available on March 17th, 2026.
Supported Targets and Hosts
CPULLVM toolchain supports the following targets:
- AArch64 bare metal and Linux
- Arm bare metal and Linux
- RISC-V 32- and 64-bit bare metal and Linux
It is available for the following platforms:
- Linux x86_64
- Linux AArch64
- Windows x86_64
- Windows ARM64
CPULLVM 22.1.0 Release Details
The release is accessible on GitHub via the CPULLVM repository including the release source code aligned with llvm.org, pre-built release binaries for different hosts, multi-level project documentation, building from source recipes and release notes.
These resources enable customers to easily download, build, or customize the toolchain to meet their specific needs.
For information on how to get involved, please review the rules in contributing to the CPULLVM project.
When submitting issues, make sure to follow the guidelines in reporting issues.
Acknowledgements
We sincerely appreciate the contributions of the open source community, including LLVM, picolibc, musl, ELD, and Arm Toolchain for Embedded (ATfE), for their dedicated efforts over the past several years. Their work has been instrumental in making it possible to release a fully open source toolchain.
Get started with our open source CPULLVM toolchain—now available on Github.

