ARM says that the “velocity” of open source Clang and LLVM, combined with the stability of commercial products, will improve code quality, performance and power efficiency on ARM processors. The company emphasises that the rest of the tool chain remains ARM-proprietary – the change is limited to the compiler and the distinction is that the compiler is “based on” open-source but is not in its entirety open-source.
The first architecture to be supported under this arrangement will be ARM v8, for which ARM anticipates seeing the first silicon [at licensees] “soon”.
This means that users will be able to draw on the open-source LLVM community for immediate improvements, and that ARM will periodically – around twice a year – take a “snapshot” of the evolving code base, test and verify it, and give it a release number.
The official phrasing is that , “ARM Compiler 6 adopts the Clang and LLVM open source compiler framework, channeling contributions from the whole ARM Partnership to improve code quality, performance and power efficiency of software on ARM processors.”
ARM cites the flexible and modern Clang and LLVM infrastructure as providing a solid foundation for ARM’s code generation tools – the technology is attractive and easy to work with, the company comments. Clang is a C/C++ compiler front end based on a modular architecture with well-defined interfaces for applying complimentary tools such as code analysers and code generators. Clang also offers improved diagnostic capabilities, leading to higher quality code and shorter development cycles.