[LLVMdev] Contributing the Apple ARM64 compiler backend

Tim Northover t.p.northover at gmail.com
Fri Mar 28 15:06:11 PDT 2014


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

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



More information about the llvm-dev mailing list