[LLVMdev] Contributing the Apple ARM64 compiler backend

Eric Christopher
Fri, 28 Mar 2014 23:25:56 -0000

On Fri, Mar 28, 2014 at 12:35 PM, James Grosbach <grosbach at apple.com>
wrote:
> All,
>
> Attached below are the patches that make up the Apple ARM64 compiler
backend (in addition to compiler_rt, libc++ and lldb support), and we'd like
to start the process of integrating them into mainline LLVM.  We and ARM have
discussed a general approach to integrating them into mainline and look forward
to working through this with the community at large.
>
> 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. In
the source tree, the backend co-exists with the AArch64 backend without
conflicts.
>
> As a first step, we'd like to add this as a peer of the AArch64
backend.  While having two AArch64 backends in the tree long term doesn't
make sense, this approach worked well when the Sparc backends were merged and
for AMDIL. This will allow us to work quickly towards merging the ports to
create a backend that is truly the best of both. The public AArch64 backend has
attracted an excellent core group of contributors all of whom have done great
work and we are very much looking forward to collaborating with them and the
rest of the community to make this happen.
>
> Getting to that idillic end-state of one AArch64 backend in the tree which
encompasses the best of both is going to take a fair bit of work and a lot of
discussion amongst the interested parties. To get there, I think a rough roadmap
like the following makes sense:
>
> 1. Import the ARM64 backend into the public tree so it's easily
accessible for everyone to investigate.

For the record I've reviewed the lib/Basic stuff (non-neon,
non-mangling) code for arm64 for clang and that's OK to commit.

-eric