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.
The licensing context is also favourable to this approach, ARM says; being “permissive” it allows users to draw on the code base without necessarily feeding back their changes, so “closed”, tuned, versions are possible.
LLVM is an extensible compiler framework which is well suited for advanced code generation techniques such as link-time code generation and just-in-time compilation. LLVM’s modular framework makes it easier to develop and test new optimisations, leading to better performing code and lower power consumption.
“ARM has invested heavily in the development and adoption of open source technologies such as Eclipse, GNU, and Clang and LLVM,” said Hobson Bullman, general manager of development solutions, ARM. “The ARM Compiler 6 extends this investment even further, bringing together the velocity of open source development with the stability and services that come with commercial products, creating a best-case scenario for ARM’s customers.”
Support for the established ARM compiler will continue in parallel, for, “anyone who wants or needs it,” the company says, citing in particular, users working on safety-critical systems. There will also continue to be a path for users developing for Linux/Android target.
ARM is at the forefront of improving LLVM technology for the ARM architecture, contributing architecture support, testing infrastructure, and performance improvements to the open source. ARM Compiler 6 brings LLVM technology to ARM developers as a set of professional development tools with additional benefits:
· Tighter integration: ARM Compiler 6 is a full code generation toolchain consisting of compiler, linker, assembler and libraries. Its integration in the ARM DS-5 Development Studio provides a full C/C++ software development environment
· Optimised for ARM: Highly optimised libraries provide superior performance and code size for embedded applications, maximising software performance and reducing costs
· Professionally supported and maintained – ARM Compiler 6 and DS-5 are actively supported, validated, documented and maintained by ARM’s globally distributed technical experts, ensuring rapid issue resolution and faster time to market
· Commercially licensed – ARM Compiler 6 is GPL-free and distributed under a commercial license, giving users flexibility with regard to ownership of derivative works
ARM Compiler 6 supports the ARM Cortex-A50 processor series and is available as part of the DS-5 Development Studio Ultimate Edition, available April 2014; https://ds.arm.com/ds-5-ultimate-edition