[LLVMdev] Contributing the Apple ARM64 compiler backend

Bob Wilson bob.wilson at apple.com
Fri Mar 28 15:29:04 PDT 2014


On Mar 28, 2014, at 3:06 PM, Tim Northover <t.p.northover at gmail.com> wrote:

>> Are these two backends ABI compatible?
> 
> They should be, where there's overlap. AArch64 doesn't have any MachO
> support at the moment. ARM64 does have ELF support (obviously with
> less testing than AArch64's). Any ABI discrepancy would be considered
> a bug.

It depends on what you mean. The ARM64 backend supports the standard AAPCS64 ABI, and as Tim says, any discrepancies are bugs. It also supports a slightly different ABI that Apple uses. We settled on a calling convention before the standard was fully specified, and we ended up not adopting all of the changes that came later. The places where we diverge are documented here: 

https://developer.apple.com/library/ios/documentation/Xcode/Conceptual/iPhoneOSABIReference/Articles/ARM64FunctionCallingConventions.html

> 
>> If I have a toolchain setup for the existing aarch64-linux-gnu triple, could
>> I try the new backend and still have clang find the linker and other object
>> files in the lib/gcc directories?
> 
> I believe so. You *should* be able to take any command-line you now
> have with "--target aarch64-X-Y-Z", replace it with "--target
> arm64-X-Y-Z" and it will just work.
> 
> Once the merge really gets started, that's a property everyone wants
> to make sure is preserved: no regressions with existing commands for
> trunk, and the final backend should be a drop-in replacement for both
> iOS and ELF targets. Hopefully strictly better in both cases.
> 
> A big choice approaching is exactly how we go about the merge. In my
> opinion trying an actual merge on .td files isn't going to work
> (massive inconsistency even if we could make it happen technically) so
> we're going to have to pick one of the two as a core for the final
> backend, and strip all the useful bits out of the other one
> cherry-pick style.
> 
> Cheers.
> 
> Tim.
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev




More information about the llvm-dev mailing list