With the release of Compiler 6 today, ARM moves from a proprietary architecture to one based on open sourced Clang/LLVM. Although there is going to be a lot contributed back the greater DS-5 Ultimate Edition are initially not going to be as fully open as SemiAccurate would like.
The idea is simple, ARM has an in-house compiler called Compiler that for versions 1-5 were based on a closed and proprietary code base. As ARM becomes more and more involved in the mainstream computing world it makes a lot of sense to open things up. It is a win/win for ARM, the users, and just about everyone else even if you never use Compiler 6.
First up is the fact that Clang/LLVM are licensed with a BSD-style license rather than a more restrictive but also more open GPL license. While not wanting to get in to the religious open source licensing debate lets just say that the BSD license allowed ARM to make this move away from proprietary code, a GPL variant wouldn’t.
This doesn’t mean ARM is abandoning their internal code base, it will be maintained until 2018, nor does it mean ARM will not contribute to GCC, they will continue to do so. What Clang/LLVM does for them is allow them to keep some things proprietary and open the rest. If things were GPL based it would be really hard to release compilers for non-released designs to partners and other such things without running afoul of the license. Then there is the problem of linking and including non-open code in end-user projects, a non-trivial but also not insurmountable problem. Some companies are extremely averse to GPL-style licenses even if they can’t tell you why. Pity but understandable in this case.
ARM is saying they will put out all the compiler additions and code they work on to the main Clang/LLVM code trees presumably after the architectures are public. In effect once a project is announced the open builds of the compiler should be just as good as those included in the proprietary ARM package. The differentiator is going to be two things, some libraries/packages other than the basic Clang/LLVM versions and support. The DS-5 suite has an ARM linker, a bunch of code for specific use cases, ARM lists scatterloading, semihosting, and automatic library selection, and more.
If you pay ARM a lot of money for the Ultimate Edition of DS-5 they will answer the phone when you have a problem. While the community will also provide excellent support in most cases, it isn’t guaranteed and middle managers like guarantees. This also extends to migration between old and new versions, plus the aforementioned hand holding on new IP. DS-5 works out of the box, is compatible with all the tools that you expect it to be, and there is no mucking about. While most sane coders like mucking about, most companies don’t like paying for them to do so and frown on the practice. This is another debate we won’t get in to now.
So what do you get with the Compiler 6 in DS-5 Ultimate Edition? More than anything Microsoft delivered on with their Ultimate Editions for starters but that is a pretty low bar to hurdle. You get the compiler, linker, libraries, debugger, and all the goodies for ARM V8 cores and V7 A/R cores. V7 M cores have some support and more will be added in time. Since DS-5 UE also ships with Compiler 5 from DS-5 Professional, there should be no real downside to the new additions. If you want to give it a spin, there should be a trial version here by the time you read this.
While it is tempting to say that ARM has moved their compiler from an ancient design to the modern era by adopting Clang/LLVM as a base but that would be unfair. Add in that SemiAccurate has no experience with the current ARM suite so we can’t comment on what it was, but what it is now is a completely different animal. ARM is unquestionably doing the right thing for both users and themselves by going the open source route even if some disagree with the licenses chosen.
Even the stalwart GPL backers will have to admit this is a step in the right direction. Add in that the Clang/LLVM main trees will probably get everything ARM does from here on out, eventually, this is a great advance for all. With Compiler 6 we welcome ARM in to the happy, fluffy, nice and friendly world of open source, it’s better here. Yay puppies.S|A
Have you signed up for our newsletter yet?
Did you know that you can access all our past subscription-only articles with a simple Student Membership for 100 USD per year? If you want in-depth analysis and exclusive exclusives, we don’t make the news, we just report it so there is no guarantee when exclusives are added to the Professional level but that’s where you’ll find the deep dive analysis.
Latest posts by Charlie Demerjian (see all)
- Intel shows off 10nm 112Gbps SerDes - Mar 12, 2019
- Intel releases Compute Express Link spec - Mar 11, 2019
- Qualcomm rolls out a second gen 5G modem called X55 - Feb 19, 2019
- What is Intel’s Foveros tech and what isn’t it? - Feb 11, 2019
- Why SemiAccurate called 10nm wrong - Jan 25, 2019