[LLVMdev] Contributing the Apple ARM64 compiler backend

Bradley Smith
Mon, 31 Mar 2014 17:18:57 -0000

> 1. Import the ARM64 backend into the public tree so it's easily
> accessible for everyone to investigate.
> 2. Test it. Benchmark it. Explore it. Get data for the community to
> work with about the state of the back end. ARM has some excellent data
> that will help guide us here.
> 3. Identify the core backend to build on and to merge features and
> tuning from the other to. The data I have seen so far leads me to
> believe ARM64 is the correct choice here, but that's a decision
> primarily for the contributors above.
> 4. Clean up the codebase (C++11-ify it, for example), fix any
> regressions and test failures identified in benchmarking.
>
> This will give us a backend that is a superset of both ARM64 and
> AArch64 in terms both of performance and functionality. We can then
> consolidate to a single backend, named AArch64 for consistency with the
> current public tree.

Our MC Hammer[0] testing on this shows that the ARM64 backend has around a
4% failure rate overall, one criteria for a successful merge would certainly
be to retain the level architectural correctness that is currently present
in the AArch64 backend.

Looking at the failures that are present in the ARM64 backend, it doesn't
look like it would be too much work to fixup the MC layer to get this
testsuite passing.

[0] http://llvm.org/devmtg/2012-04-12/Slides/Richard_Barton.pdf

Regards,
Bradley Smith