Arm's embedded toolchain has existed since the establishment of the company 35 years ago. For the first 20 years the toolchain was entirely proprietary. Over the last 15 years Arm has incrementally replaced the proprietary parts of the toolchain with LLVM technology, with the latest incarnation providing an option for a fully open-source LLVM based toolchain using LLVM libc. Throughout the process we have kept our toolchain in sync with the LLVM main branch. This presentation covers the toolchains adoption of LLVM technology, including: * Early experiments to bridge the EDG front-end used by the proprietary compiler with a LLVM backend. * Replacement of the compiler with a derivative of clang. * Testing the correctness of the combined toolchain. * Adoption of libc++ as the C++ library. * How our strategy of managing downstream changes evolved. * Replacement of all remaining proprietary tools with LLVM equivalents and removal of downstream patches. * Our plans for integrating LLVM libc. The intended audience includes those interested in: * Assembling a toolchain using a mixture of LLVM and proprietary technology. * Managing downstream changes across a full toolchain, including merging and testing. * Migrating customers through technology changes.