[LLVMdev] Contributing the Apple ARM64 compiler backend (original) (raw)

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