ARM moves to open-source compiler

Microprocessor-design company ARM has decided to move to an open-source compiler for the latest release of its software development tools, moving away from its own technology.

Rather than adopting the Gnu compiler technology, which is covered by the Gnu Public Licence (GPL), ARM has decided to embrace the combination of Clang and LLVM partly due to its architecture but also because the open-source licence used by the LLVM team does not compel developers to make any enhancements they make to the community.

Up to now, ARM's own tools have been derived from the compiler originally developed for the Acorn Archimedes computer, which used the first versions of the ARM processor architecture.

Daniel Owens, product manager for software development tools at ARM, said the modular nature of LLVM made it a stronger choice for ongoing development. "We think it is a better framework for more advanced code generation techniques such as just-in-time compilation, link-time code generation, and profile-guided optimisation.

"The non-GPL aspect allows us to optionally contribute back to the open source, or keep our changes proprietary. For example, if we are developing support for new cores that have not yet been announced, we can provide compiler builds to lead partners that are proprietary, thus protecting our IP until the products are announced,” said Owens.

Free-software pioneer Richard Stallman has criticised the shift to LLVM because of the tendency for companies to use open-source software as the foundation for closed-source products – something that the latest version of the GPL explicitly forbids. Under the GPL, any published enhancements made by users need to be made available as source code under the same licence terms.

However, the more permissive licence used by LLVM has encouraged projects such as FreeBSD, which provides a version of Unix, to switch away from the Gnu C Compiler (GCC). LLVM has become increasingly popular in embedded-systems projects such as the Multicore Association's SHIM project to build performance-estimators for parallelised software.

Masaki Gondo, software CTO at eSol and chairman of the SHIM working group, said the project will use LLVM's intermediate instruction set to provide a portable way of estimating the speed of software across a variety of incompatible processors.