Apple Open-Sources Their 64-bit ARM LLVM Back-End
It took Apple quite a while to open-source their 64-bit ARM LLVM back-end and in the months since -- and going back further in 2013 -- the LLVM development community has taken on to developing their own AArch64 back-end with support of several ARM SoC vendors. Now that Apple has finally published their back-end, which they consider to be production quality and is used right now for compiling iOS and related components for the 64-bit ARM Apple hardware, they are wanting to merge their back-end into LLVM.
Apple's 64-bit ARM back-end supports not only iOS as a platform target but also Linux. James Grosbach of Apple shared, "First a bit of context to help jump-start the discussion. The ARM64 backend is a complete production quality implementation for ARM’s 64-bit architecture, AArch64. It supports both iOS and Linux as target platforms."
The approach Apple has laid out for merging this new 64-bit ARM back-end is to put it into the LLVM source tree and let it co-exist with the existing AArch64 back-end. Over time, developers will look at both code-bases, collaboration is to happen, and in the end the LLVM developers will decide what back-end to build upon and merge features into it from the competing back-end. The decision of what 64-bit ARM back-end should be the default to build upon and merge from the other back-end will be left up to LLVM contributors, but Apple is obviously pushing their ARM64 work.
Those wanting to learn more about Apple's AArch64 back-end plans for the LLVM compiler infrastructure and the patches that they have finally opened up, see this LLVM development list message. In the early hours of this morning, this commit landed the Apple ARM64 compiler back-end along with the initial Clang support.