Add llvm::Attribute::SwiftAsync to the context parameter

* Adds support for generating code that uses swiftasync parameter lowering.

* Currently only arm64's llvm lowering supports the swift_async_context_addr intrinsic.

* Add arm64e pointer signing of updated swift_async_context_addr.

This commit needs the PR llvm-project#2291.

* [runtime] unittests should use just-built compiler if the runtime did

This will start to matter with the introduction of usage of swiftasync parameters which only very recent compilers support.

rdar://71499498
This commit is contained in:
Arnold Schwaighofer
2020-12-18 11:50:51 -08:00
parent 1ef2174bc2
commit daa72d3cc5
61 changed files with 174 additions and 125 deletions

View File

@@ -118,7 +118,7 @@ using JobInvokeFunction =
using TaskContinuationFunction =
SWIFT_CC(swiftasync)
void (AsyncTask *, ExecutorRef, AsyncContext *);
void (AsyncTask *, ExecutorRef, SWIFT_ASYNC_CONTEXT AsyncContext *);
template <class AsyncSignature>
class AsyncFunctionPointer;