Commit Graph

13 Commits

Author SHA1 Message Date
Nate Chandler
ff7c98123a [Test] Disabled several Concurrency tests for back_deployment_runtime.
rdar://76566598
2021-04-13 15:27:41 -07:00
Arnold Schwaighofer
d6d3cfcad6 2nd attempt at fixing linux 2021-04-08 13:36:16 -07:00
Arnold Schwaighofer
609a57f5bd Try to fix test on linux 2021-04-08 12:02:05 -07:00
Arnold Schwaighofer
ab2d92c0d5 XFAIL on windows: it does not do swifttailcc 2021-04-08 10:59:44 -07:00
Arnold Schwaighofer
a805f575cc Re-enable test run-call-dynamic-void_to_void.swift
This should work after i386 swiftailcc is enabled per
https://github.com/apple/llvm-project/pull/2797.
2021-04-08 08:42:15 -07:00
Michael Gottesman
3c13da1be0 [build-wrangler] Unblock CI by disabling a test that is waiting on an automerger. 2021-04-02 09:52:49 -07:00
Varun Gandhi
67bcb6653d [IRGen] Fix missing musttail call for dynamic functions. 2021-03-30 14:58:27 -07:00
John McCall
6c879d6fd3 Change the async ABI to not pass the active task and executor.
Most of the async runtime functions have been changed to not
expect the task and executor to be passed in.  When knowing the
task and executor is necessary, there are runtime functions
available to recover them.

The biggest change I had to make to a runtime function signature
was to swift_task_switch, which has been altered to expect to be
passed the context and resumption function instead of requiring
the caller to park the task.  This has the pleasant consequence
of allowing the implementation to very quickly turn around when
it recognizes that the current executor is satisfactory.  It does
mean that on arm64e we have to sign the continuation function
pointer as an argument and then potentially resign it when
assigning into the task's resume slot.

rdar://70546948
2021-03-16 22:52:54 -04:00
Nate Chandler
9aced92dd6 [Test] Added -g to IRGen/async test invocations.
Emitting the debug info exercises more functionality.
2021-03-08 14:43:16 -08:00
Arnold Schwaighofer
4373bdd6d0 Conditionally start using llvm::CallingConv::SwiftTail for async functions
This is conditional on UseAsyncLowering and in the future should also be
conditional on `clangTargetInfo.isSwiftAsyncCCSupported()` once that
support is merged.

Update tests to work either with swiftcc or swifttailcc.
2021-02-18 09:25:15 -08:00
Nate Chandler
798f86981f [Test] Replaced runAsyncAndBlock with async @main.
The last outstanding usage is in

    Concurrency/Runtime/checked_continuation.swift
2021-01-28 17:14:55 -08:00
Arnold Schwaighofer
daa72d3cc5 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
2021-01-22 10:01:55 -08:00
Nate Chandler
130c5185d3 [Async CC] Handle dynamic functions.
Ensure that the FunctionPointer we pass to CreateCall has the Function
type.

rdar://problem/73026036
2021-01-14 17:20:07 -08:00