[LLVMdev] Contributing the Apple ARM64 compiler backend

Renato Golin renato.golin at linaro.org
Fri Mar 28 13:36:51 PDT 2014


On 28 March 2014 19:35, James Grosbach <grosbach at apple.com> wrote:
> 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.

W00t!! With libraries and debugger support, nice!


> 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.

Count me in. Would that be a different triple? arm64-linux-gnu?


> 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.

Either way, we'll have to move features form one side to the other. I
don't see bad choices ahead, just hard work.


> 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.

Do you have an idea of how much work would be involved and a
finger-in-the-air estimate of time?

I don't think we'll be able to move everything and remove one of the
back-ends in a single release cycle, so it doesn't make sense to wait
for 3.5 to go out before the merge, since it won't be ready by the
time 3.6 leaves the door. So, now is as good as any time to start
this. If people are concerned with confusion, we may just ship one of
the back-ends on the final binaries, whichever is in better shape.

Thanks Jim, glad to see things are finally rolling out. Interesting times ahead!

cheers,
--renato




More information about the llvm-dev mailing list