ARM moves to LLVM open source for future compilers
ARM Compiler 6 supports the coming 64bit ARMv8 architecture and will be integrated into future versions of the DS-5 development suite for high and system on chip development. This will also become the basis of the compiler for microcontroller projects.
“The benefit for our users is greater feature velocity from open source,” said Daniel Owens, product manager for software development tools at ARM. “The ARM v8 backend is in open source today as it goes into open source first, then we pull it back in for integration and testing in DS-5.”
“V8 will be supported out of the gate and then V7A and R and that will happen by the end of this year and then following on is V7M and that’s probably 2015 so Keil will stay with V7 through that time,” he said.
ARM bought Keil eight years ago and at that time the tools were a separate tool chain with their own compiler but they quickly adopted the RVDS RealView Compilation tools. “DS-5 and Keil have the same proprietary compiler but they are still separate tool chains because they are different in the way they operation and we just haven’t had the engineering capacity to merge those two,” said Owens. “For DS-5 we have been building in microcontroller features so eventually it will cover this. We don’t want to force people over but allow them to move at their own pace and that’s why we are slowly adding features for microcontrollers into DS-5.”
“The licensing is the most distinguishing feature,” said Owens. “LLVM is more attractive to corporate contributors vs people that are just hobbyist or enthusiasts. Intel, Nvidia, Google, Qualcomm have all been heavy contributors because they are not fond of GPL for obvious reasons.
“We own the architecture and having a compiler that improves the performance, code size and power consumption that is a proprietary has never been popular with the partnerships so what are moving into the open,” said Owens. “Then customers have the option to take that from the open source and build their own tool chain or take the DS-5 bundle so its really the best of both worlds."
ARM has supported GCC open source but LLVM will form the basis of all new compiler technology developments.
“We have invested heavily in GCC over the years, that’s the basis for Linux and Android so that’s not going away any time soon,” said Owens. “LLVM has more features such as just in time compilation and link time optimisation so this is the basis for the next 25 years.”
“We have shipped GCC inside DS-5 for years but when we looked at the new networking, server, and multicore applications we weren’t able to push that technology where it needs to go so we either had to develop a new compiler, but that would take 8 to 10 years, or use something that’s already out there," he said. "LLVM gives us the ability to collaborate with partners and even the academic community so it’s an easy choice to use that as the framework for our tools.”
The move to LLVM open source will not create a free tool suite either he says. “I don’t think it will pull down the cost of DS-5, the value is about the full integrated package for end to end development all the way from an emulator or FPGA all the way to the finished device,” he said. “ARM Compiler 6 will be another choice with our proprietary tools around it. Long term we want to pull the compilers out and have them as plug-ins to eclipse as they are big and the whole package is getting big, but we are not there yet. You can plug in your own version of GCC today into Eclipse and we ship the Linaro GCC compiler because that’s the one we invest in
Lead customers are already using the new LLVM technology. “We have a v8 tool chain today that’s not public – it’s been in use by our lead partners for a couple of years now,” said Owens. “We will also announce the public availability of that previously private tool chain, effectively its DS-5 Ultimate, which is DS-5 Pro with the new compiler and support for ARM v8. The tools for v8 are not new for ARM, the real announcement is the new compiler and we really need to have a good silicon platform to start doing the optimization. We will have platforms this year and we have optimizations planned for both GCC and LLVM and as its open source, anyone can go and do their benchmarks. In the past the proprietary compiler we did not allow open benchmarking, but now anyone can run their own benchmarks. All of the optimizations will go back into open source first and then pull in a snapshot for the commercial product.”