Live data from Hacker News

The LLVM 64-bit ARM64/AArch64 Back-Ends Have Merged

phoronix.com

1–10 of 11 posts

Re: The LLVM 64-bit ARM64/AArch64 Back-Ends Have Merged

#2
This has all happened impressively quickly. Apple released their ARM64 implementation at the end of March (http://article.gmane.org/gmane.comp.compilers.llvm.devel/716...). Whether to merge the existing AArch64 in to ARM64 or vise versa was discussed and decided the following week (http://article.gmane.org/gmane.comp.compilers.llvm.devel/717...), and a good portion of the work was done by the end of April (http://article.gmane.org/gmane.comp.compilers.llvm.cvs/18538...). The resulting backend (now named AArch64) contains the best of both AArch64 and Apple's ARM64. A lot of this merging work has been driven by ARM Ltd. itself, who of course as of version 6 build their official compiler on LLVM+Clang (http://www.arm.com/about/newsroom/arm-compiler-builds-on-ope...).

If you're interesting in LLVM/Clang news and developments, you may be interested to subscribe to my http://llvmweekly.org (and/or follow @llvmweekly)

Re: The LLVM 64-bit ARM64/AArch64 Back-Ends Have Merged

#3
post #2

This has all happened impressively quickly. Apple released their ARM64 implementation at the end of March ( http://article.gmane.org/gmane.comp.compilers.llvm.devel/716... ). Whether to merge the existing AArch64 in to ARM64 or vise versa was discussed and decided the following week ( http://article.gmane.org/gmane.comp.compilers.llvm.devel/717... ), and a good portion of the work was done by the end of April ( http:…

Thank you, Alex, for the excellent digest service.

Re: The LLVM 64-bit ARM64/AArch64 Back-Ends Have Merged

#5
post #2

This has all happened impressively quickly. Apple released their ARM64 implementation at the end of March ( http://article.gmane.org/gmane.comp.compilers.llvm.devel/716... ). Whether to merge the existing AArch64 in to ARM64 or vise versa was discussed and decided the following week ( http://article.gmane.org/gmane.comp.compilers.llvm.devel/717... ), and a good portion of the work was done by the end of April ( http:…

> This has all happened impressively quickly.

I'm confused by this claim. Apple has an ARM64 device shipped to millions of people since September 2013.

It appears to me that they kept their compiler improvements a secret for an additional six months after the public release of a product using them, and so the fact that it's only taken an additional couple months to complete the contribution doesn't really strike me as fast.

What am I missing here?

Re: The LLVM 64-bit ARM64/AArch64 Back-Ends Have Merged

#6
post #5
post #2

This has all happened impressively quickly. Apple released their ARM64 implementation at the end of March ( http://article.gmane.org/gmane.comp.compilers.llvm.devel/716... ). Whether to merge the existing AArch64 in to ARM64 or vise versa was discussed and decided the following week ( http://article.gmane.org/gmane.comp.compilers.llvm.devel/717... ), and a good portion of the work was done by the end of April ( http:…

> This has all happened impressively quickly. I'm confused by this claim. Apple has an ARM64 device shipped to millions of people since September 2013. It appears to me that they kept their compiler improvements a secret for an additional six months after the public release of a product using them, and so the fact that it's only taken an additional couple months to complete the contribution doesn't really strike me a…

Apple can actually do this theoretically since LLVM uses "University of Illinois/NCSA Open Source License" [1].

This license is much like BSD License, which doesn't require to release modification.

For Example, Sony uses LLVM as part of the PS4 Toolchain[2], but they also doesn't release their code.

[1] http://llvm.org/releases/2.8/LICENSE.TXT [2] http://llvm.org/devmtg/2013-11/slides/Robinson-PS4Toolchain....

Re: The LLVM 64-bit ARM64/AArch64 Back-Ends Have Merged

#7
post #6
post #5

Earlier quoted context omitted.

> This has all happened impressively quickly. I'm confused by this claim. Apple has an ARM64 device shipped to millions of people since September 2013. It appears to me that they kept their compiler improvements a secret for an additional six months after the public release of a product using them, and so the fact that it's only taken an additional couple months to complete the contribution doesn't really strike me a…

Apple can actually do this theoretically since LLVM uses "University of Illinois/NCSA Open Source License" [1]. This license is much like BSD License, which doesn't require to release modification. For Example, Sony uses LLVM as part of the PS4 Toolchain[2], but they also doesn't release their code. [1] http://llvm.org/releases/2.8/LICENSE.TXT [2] http://llvm.org/devmtg/2013-11/slides/Robinson-PS4Toolchain....

I was under the impression that Sony pushed upstream a lot of the improvements they made to clang/llvm, but they had to wait until the PS4 was announced to do so.

Re: The LLVM 64-bit ARM64/AArch64 Back-Ends Have Merged

#8
post #7
post #6

Earlier quoted context omitted.

Apple can actually do this theoretically since LLVM uses "University of Illinois/NCSA Open Source License" [1]. This license is much like BSD License, which doesn't require to release modification. For Example, Sony uses LLVM as part of the PS4 Toolchain[2], but they also doesn't release their code. [1] http://llvm.org/releases/2.8/LICENSE.TXT [2] http://llvm.org/devmtg/2013-11/slides/Robinson-PS4Toolchain....

I was under the impression that Sony pushed upstream a lot of the improvements they made to clang/llvm, but they had to wait until the PS4 was announced to do so.

Well, I doesn't 100% sure that Sony didn't release PS4 LLVM code yet, maybe my memory is wrong?

Re: The LLVM 64-bit ARM64/AArch64 Back-Ends Have Merged

#9
post #5
post #2

This has all happened impressively quickly. Apple released their ARM64 implementation at the end of March ( http://article.gmane.org/gmane.comp.compilers.llvm.devel/716... ). Whether to merge the existing AArch64 in to ARM64 or vise versa was discussed and decided the following week ( http://article.gmane.org/gmane.comp.compilers.llvm.devel/717... ), and a good portion of the work was done by the end of April ( http:…

> This has all happened impressively quickly. I'm confused by this claim. Apple has an ARM64 device shipped to millions of people since September 2013. It appears to me that they kept their compiler improvements a secret for an additional six months after the public release of a product using them, and so the fact that it's only taken an additional couple months to complete the contribution doesn't really strike me a…

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.

Re: The LLVM 64-bit ARM64/AArch64 Back-Ends Have Merged

#10
post #6
post #5

Earlier quoted context omitted.

> This has all happened impressively quickly. I'm confused by this claim. Apple has an ARM64 device shipped to millions of people since September 2013. It appears to me that they kept their compiler improvements a secret for an additional six months after the public release of a product using them, and so the fact that it's only taken an additional couple months to complete the contribution doesn't really strike me a…

Apple can actually do this theoretically since LLVM uses "University of Illinois/NCSA Open Source License" [1]. This license is much like BSD License, which doesn't require to release modification. For Example, Sony uses LLVM as part of the PS4 Toolchain[2], but they also doesn't release their code. [1] http://llvm.org/releases/2.8/LICENSE.TXT [2] http://llvm.org/devmtg/2013-11/slides/Robinson-PS4Toolchain....

Poll: how many people think this is a bad thing?
Post reply on HN