ARM Compiler 6 is now available, bringing to you a modern, extensible compiler architecture for the next generation of ARM processors. Version 6 of the ARM Compiler adopts the Clang and LLVM compiler framework, which is swiftly gaining momentum as the compiler of choice for advanced code generation. By working with the open source Clang/LLVM, ARM is able to work in cooperation with our partners, accelerating feature creation and code generation efficiency targeting the ARM architecture. Tuning, testing and implementation are all much faster with open source LLVM.
ARM has gained success based on partnership. Using an open source framework for the next-generation ARM Compiler, we have opened the door for better collaboration with regard to code generators; a critical component for improving performance and power consumption on ARM processors. ARM has actively contributed to many open source communities for years, but the ARM Compiler was developed alongside the ARM architecture and has always been proprietary. ARM Compiler 6 marks the start of a new generation, channelling open source contributions into an integrated, validated and fully supported commercial product, enabling partners and end users to take advantage of the velocity of open source development and the efficiency of Clang/LLVM.
The flexible and modern Clang and LLVM infrastructure provides a solid foundation for ARM’s code generation tools. Clang is a C/C++ compiler front end based on a modular architecture with well-defined interfaces for applying complimentary tools such as code analyzers and code generators. Clang also offers improved diagnostic capabilities, leading to higher quality code and shorter development cycles.
LLVM is an extensible compiler framework which is well suited for advanced code generation techniques such as link-time code generation. LLVM’s modular framework makes it easier to develop and test new optimizations, leading to better performing code and lower power consumption.
To learn more about Clang & LLVM technology, read Vinod's blog.
Building on Clang & LLVM, ARM Compiler 6 really does provide the best of both worlds. It delivers efficient code size and performance and comes as an integrated and validated toolchain that works straight out-of-the-box. Benefits include:
Yes, to ensure as smooth a transition as possible, we have put together a comprehensive migration guide which is included within the DS-5 Ultimate Edition installation.
To get everything you need to develop for the ARMv8 architecture, request a free 30-day trial of ARM DS-5 Ultimate Edition. Or learn more about ARM Compiler 6 and DS-5 Ultimate Edition.
Apple have now released their version of the 64 bit LLVM compiler.
[Phoronix] Apple Open-Sources Their 64-bit ARM LLVM Back-End
and there is an effort underway to get the best of both. Both will live and be developed for a while, the Apple one as ARM64 and the ARM one as Aarch64 and they seem to have come to the conclusion that the Apple one will form the basis of the eventual unified compiler and the good bits and the tests from the other one will be incorporated into it.
LLVM Project Blog: LLVM Weekly - #14, Apr 7th 2014
The Apple compiler brings some useful optimisations.
Gmane -- Re: Contributing the Apple ARM64 compiler backend
There's probably a few things that need doing yet to be a complete replacement for gcc, for instance I noticed this which would probably affect trying to implement the ilp32 option
Gmane -- Re: 32bit pointers on a pure 64bit architecture
Overall I think this is a very good move on ARM's part. It allows for collaborative improvement like the Apple merge.