Hacker News new | ask | show | jobs
by cokernel_hacker 4402 days ago
Merging two compiler backends, despite both targeting the same architecture, is not a day in the park.

LLVM gives you several opportunities to make decisions on how lowering from LLVM IR to machine code will occur, it is not likely that both backends would have been able to handle the same sets of preconditions for each other.

A very obvious example to consider: relocations.

Relocations are tied very closely to the final object file format. I doubt Apple's ARM64 backend had any provisions to deal with the ELF relocations in the psABI and I similarly doubt that the AArch64 backend had any understanding on what kind of relocations were available to it if it were to target Mach-O.