3 ms·
Interestingly, I've seen some internal Apple stuff get sent upstream to LLVM. One example is ILP32 support for AArch64, which is apparently used in the Apple W
by spijdar 6y ago
Interestingly, I've seen some internal Apple stuff get sent upstream to LLVM.
One example is ILP32 support for AArch64, which is apparently used in the Apple Watch. It looks like all of Apple's modern SoCs are 64 bit only, and in order to reclaim some memory on constrained devices, they're using ILP32 and a 32 bit address space, with 64 bit registers and such. https://lists.llvm.org/pipermail/llvm-dev/2019-January/129788.html https://lists.llvm.org/pipermail/llvm-dev/2019-January/12978...
- ender341341 6y agoIt's honestly not that surprising, keeping the difference between their fork and upstream minimal makes it easier for them, so for things that they don't consider to be their 'secret sauce' it's easier to have the community involved in maintaining it (and everybody ends up winning).
- CalChris 6y agoYes, but that is Apple's choice rather than a licensing requirement. Apple upstreams a ton of stuff, AArch64, GlobalISel, .... But they do this by choice.
- tinus_hn 6y agoSure, but integration like llvm is integrated in Xcode would be impossible without open-sourcing Xcode.
- saagarjha 6y agoThey get upstreamed for the most part, just very slowly. There's a lot of pointer authentication stuff shipping in their toolchains currently that isn't upstream.