[PATCHES] Upstreaming watchOS and tvOS support

Tim Northover via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 28 10:50:06 PDT 2015


Hi,

I'd like to start upstreaming support for Apple's watchOS and tvOS
platforms. The more substantial changes are to support watchOS, tvOS
is mostly just iOS with the freedom to diverge in future.

At the LLVM level, the watchOS ABI is very close to an extension of
AAPCS-VFP to support 16-byte naturally aligned vectors, increasing the
required stack alignment to 16 as a result. Exception handling uses a
new compact unwind format (like ARM64 & x86), falling back to DWARF if
necessary.

So, I've split the LLVM patches into what I think are reasonably
self-contained chunks:

1. Add Triple basic support, with one exercising feature for testing:
the .watchos_version_min and .tvos_version_min directives.
2. Ensure correct libcalls are present on Watch and TV.
3. Support generic changes for new watchOS ABI.
4. Support watchOS compact unwind format and switch to DWARF as fallback.
5. A helper function used by Clang to determine watchOS versions.

The most substantial change that could use looking over is probably
the compact unwind generation. The rest is pretty obvious and
straightforward: "grep ios | add watchOS and tvOS".

So are people happy for these to go in? I'm hoping to upload the
corresponding Clang bits later today.

Cheers.

Tim.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-ARM-support-.watchos_version_min-and-.tvos_version_m.patch
Type: application/octet-stream
Size: 27382 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151028/e80a57de/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-ARM-teach-backend-about-WatchOS-and-TvOS-libcalls.patch
Type: application/octet-stream
Size: 12594 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151028/e80a57de/attachment-0001.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-ARM-add-backend-support-for-the-ABI-used-in-WatchOS.patch
Type: application/octet-stream
Size: 14568 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151028/e80a57de/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-ARM-add-support-for-WatchOS-s-compact-unwind-informa.patch
Type: application/octet-stream
Size: 28792 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151028/e80a57de/attachment-0003.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0005-ARM-add-watchOS-default-version-support-function.patch
Type: application/octet-stream
Size: 2808 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151028/e80a57de/attachment-0004.obj>


More information about the llvm-commits mailing list