mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
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:
@@ -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;
|
||||
|
||||
@@ -1172,6 +1172,9 @@ namespace SpecialPointerAuthDiscriminators {
|
||||
const uint16_t AsyncContextYield = 0xe207; // = 57863
|
||||
const uint16_t CancellationNotificationFunction = 0x1933; // = 6451
|
||||
const uint16_t EscalationNotificationFunction = 0x5be4; // = 23524
|
||||
|
||||
/// Swift async context parameter stored in the extended frame info.
|
||||
const uint16_t SwiftAsyncContextExtendedFrameEntry = 0xc31a;
|
||||
}
|
||||
|
||||
/// The number of arguments that will be passed directly to a generic
|
||||
|
||||
@@ -146,6 +146,9 @@ struct PointerAuthOptions : clang::PointerAuthOptions {
|
||||
|
||||
/// The resume function stored in AsyncTask.
|
||||
PointerAuthSchema TaskResumeFunction;
|
||||
|
||||
/// The swift async context entry in the extended frame info.
|
||||
PointerAuthSchema AsyncContextExtendedFrameEntry;
|
||||
};
|
||||
|
||||
enum class JITDebugArtifact : unsigned {
|
||||
|
||||
@@ -176,6 +176,12 @@ extern uintptr_t __COMPATIBILITY_LIBRARIES_CANNOT_CHECK_THE_IS_SWIFT_BIT_DIRECTL
|
||||
#define SWIFT_INDIRECT_RESULT
|
||||
#endif
|
||||
|
||||
#if __has_attribute(swift_async_context)
|
||||
#define SWIFT_ASYNC_CONTEXT __attribute__((swift_async_context))
|
||||
#else
|
||||
#define SWIFT_ASYNC_CONTEXT
|
||||
#endif
|
||||
|
||||
// SWIFT_CC(swiftasync) is the Swift async calling convention.
|
||||
// We assume that it supports mandatory tail call elimination.
|
||||
#if __has_attribute(swiftasynccall)
|
||||
|
||||
@@ -817,6 +817,8 @@ void SignatureExpansion::addAsyncParameters() {
|
||||
// void (AsyncTask *, ExecutorRef, AsyncContext *);
|
||||
ParamIRTypes.push_back(IGM.SwiftTaskPtrTy);
|
||||
ParamIRTypes.push_back(IGM.SwiftExecutorPtrTy);
|
||||
Attrs = Attrs.addParamAttribute(IGM.getLLVMContext(), getCurParamIndex(),
|
||||
llvm::Attribute::SwiftAsync);
|
||||
ParamIRTypes.push_back(IGM.SwiftContextPtrTy);
|
||||
}
|
||||
|
||||
|
||||
@@ -2385,7 +2385,7 @@ void irgen::emitBlockHeader(IRGenFunction &IGF,
|
||||
|
||||
llvm::Function *IRGenFunction::getOrCreateResumePrjFn() {
|
||||
auto name = "__swift_async_resume_project_context";
|
||||
return cast<llvm::Function>(IGM.getOrCreateHelperFunction(
|
||||
auto Fn = cast<llvm::Function>(IGM.getOrCreateHelperFunction(
|
||||
name, IGM.Int8PtrTy, {IGM.Int8PtrTy},
|
||||
[&](IRGenFunction &IGF) {
|
||||
auto it = IGF.CurFn->arg_begin();
|
||||
@@ -2398,9 +2398,29 @@ llvm::Function *IRGenFunction::getOrCreateResumePrjFn() {
|
||||
PointerAuthInfo::emit(IGF, schema, addr, PointerAuthEntity());
|
||||
callerContext = emitPointerAuthAuth(IGF, callerContext, authInfo);
|
||||
}
|
||||
// TODO: remove this once all platforms support lowering the intrinsic.
|
||||
// At the time of this writing only arm64 supports it.
|
||||
if (IGM.TargetInfo.canUseSwiftAsyncContextAddrIntrinsic()) {
|
||||
auto contextLocationInExtendedFrame =
|
||||
Address(Builder.CreateIntrinsicCall(
|
||||
llvm::Intrinsic::swift_async_context_addr, {}),
|
||||
IGM.getPointerAlignment());
|
||||
// On arm64e we need to sign this pointer address discriminated
|
||||
// with 0xc31a and process dependent key.
|
||||
if (auto schema = IGF.IGM.getOptions()
|
||||
.PointerAuth.AsyncContextExtendedFrameEntry) {
|
||||
auto authInfo = PointerAuthInfo::emit(
|
||||
IGF, schema, contextLocationInExtendedFrame.getAddress(),
|
||||
PointerAuthEntity());
|
||||
callerContext = emitPointerAuthSign(IGF, callerContext, authInfo);
|
||||
}
|
||||
Builder.CreateStore(callerContext, contextLocationInExtendedFrame);
|
||||
}
|
||||
Builder.CreateRet(callerContext);
|
||||
},
|
||||
false /*isNoInline*/));
|
||||
Fn->addFnAttr(llvm::Attribute::AlwaysInline);
|
||||
return Fn;
|
||||
}
|
||||
llvm::Function *
|
||||
IRGenFunction::createAsyncDispatchFn(const FunctionPointer &fnPtr,
|
||||
|
||||
@@ -702,6 +702,10 @@ static void setPointerAuthOptions(PointerAuthOptions &opts,
|
||||
opts.TaskResumeFunction =
|
||||
PointerAuthSchema(codeKey, /*address*/ true, Discrimination::Constant,
|
||||
SpecialPointerAuthDiscriminators::TaskResumeFunction);
|
||||
|
||||
opts.AsyncContextExtendedFrameEntry = PointerAuthSchema(
|
||||
dataKey, /*address*/ true, Discrimination::Constant,
|
||||
SpecialPointerAuthDiscriminators::SwiftAsyncContextExtendedFrameEntry);
|
||||
}
|
||||
|
||||
std::unique_ptr<llvm::TargetMachine>
|
||||
|
||||
@@ -60,6 +60,8 @@ static void configureARM64(IRGenModule &IGM, const llvm::Triple &triple,
|
||||
// arm64 tops out at 56 effective bits of address space and reserves the high
|
||||
// half for the kernel.
|
||||
target.SwiftRetainIgnoresNegativeValues = true;
|
||||
|
||||
target.UsableSwiftAsyncContextAddrIntrinsic = true;
|
||||
}
|
||||
|
||||
/// Configures target-specific information for x86-64 platforms.
|
||||
|
||||
@@ -51,6 +51,10 @@ public:
|
||||
return ObjCHasOpaqueISAs;
|
||||
}
|
||||
|
||||
bool canUseSwiftAsyncContextAddrIntrinsic() const {
|
||||
return UsableSwiftAsyncContextAddrIntrinsic;
|
||||
}
|
||||
|
||||
/// The target's object format type.
|
||||
llvm::Triple::ObjectFormatType OutputObjectFormat;
|
||||
|
||||
@@ -104,6 +108,8 @@ public:
|
||||
/// True if `swift_retain` and `swift_release` are no-ops when passed
|
||||
/// "negative" pointer values.
|
||||
bool SwiftRetainIgnoresNegativeValues = false;
|
||||
|
||||
bool UsableSwiftAsyncContextAddrIntrinsic = false;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -172,7 +172,7 @@ static FullMetadata<HeapMetadata> taskHeapMetadata = {
|
||||
/// to handle the final return.
|
||||
SWIFT_CC(swift)
|
||||
static void completeTask(AsyncTask *task, ExecutorRef executor,
|
||||
AsyncContext *context) {
|
||||
SWIFT_ASYNC_CONTEXT AsyncContext *context) {
|
||||
// Tear down the task-local allocator immediately;
|
||||
// there's no need to wait for the object to be destroyed.
|
||||
_swift_task_alloc_destroy(task);
|
||||
@@ -305,7 +305,7 @@ AsyncTaskAndContext swift::swift_task_create_future_f(
|
||||
|
||||
void swift::swift_task_future_wait(
|
||||
AsyncTask *waitingTask, ExecutorRef executor,
|
||||
AsyncContext *rawContext) {
|
||||
SWIFT_ASYNC_CONTEXT AsyncContext *rawContext) {
|
||||
// Suspend the waiting task.
|
||||
waitingTask->ResumeTask = rawContext->ResumeParent;
|
||||
waitingTask->ResumeContext = rawContext;
|
||||
@@ -402,7 +402,7 @@ using RunAndBlockCalleeContext =
|
||||
/// Second half of the runAndBlock async function.
|
||||
SWIFT_CC(swiftasync)
|
||||
static void runAndBlock_finish(AsyncTask *task, ExecutorRef executor,
|
||||
AsyncContext *_context) {
|
||||
SWIFT_ASYNC_CONTEXT AsyncContext *_context) {
|
||||
auto calleeContext = static_cast<RunAndBlockCalleeContext*>(_context);
|
||||
auto context = popAsyncContext(task, calleeContext);
|
||||
|
||||
@@ -414,7 +414,7 @@ static void runAndBlock_finish(AsyncTask *task, ExecutorRef executor,
|
||||
/// First half of the runAndBlock async function.
|
||||
SWIFT_CC(swiftasync)
|
||||
static void runAndBlock_start(AsyncTask *task, ExecutorRef executor,
|
||||
AsyncContext *_context) {
|
||||
SWIFT_ASYNC_CONTEXT AsyncContext *_context) {
|
||||
auto callerContext = static_cast<RunAndBlockContext*>(_context);
|
||||
|
||||
size_t calleeContextSize;
|
||||
|
||||
@@ -157,7 +157,7 @@ void AsyncTask::groupOffer(AsyncTask *completedTask, AsyncContext *context,
|
||||
void swift::swift_task_group_wait_next(
|
||||
AsyncTask *waitingTask,
|
||||
ExecutorRef executor,
|
||||
AsyncContext *rawContext) {
|
||||
SWIFT_ASYNC_CONTEXT AsyncContext *rawContext) {
|
||||
waitingTask->ResumeTask = rawContext->ResumeParent;
|
||||
waitingTask->ResumeContext = rawContext;
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ func forceSplit() async {
|
||||
func withGenericArg<T>(_ msg: T) async {
|
||||
// This odd debug info is part of a contract with CoroSplit/CoroFrame to fix
|
||||
// this up after coroutine splitting.
|
||||
// CHECK-LABEL: {{^define .*}} @"$s1M14withGenericArgyyxYlF"(%swift.task* %0, %swift.executor* %1, %swift.context* %2)
|
||||
// CHECK-LABEL: {{^define .*}} @"$s1M14withGenericArgyyxYlF"(%swift.task* %0, %swift.executor* %1, %swift.context* swiftasync %2)
|
||||
// CHECK: call void @llvm.dbg.declare(metadata %swift.context** %[[ALLOCA:[^,]*]],
|
||||
// CHECK-SAME: metadata ![[MSG:[0-9]+]], metadata !DIExpression(
|
||||
// CHECK-SAME: DW_OP_deref, DW_OP_plus_uconst, {{[0-9]+}}, DW_OP_deref))
|
||||
@@ -18,7 +18,7 @@ func withGenericArg<T>(_ msg: T) async {
|
||||
// CHECK: store %swift.context* %2, %swift.context** %[[ALLOCA]], align
|
||||
|
||||
await forceSplit()
|
||||
// CHECK-LABEL: {{^define .*}} @"$s1M14withGenericArgyyxYlF.resume.0"(i8* %0, i8* %1, i8* %2)
|
||||
// CHECK-LABEL: {{^define .*}} @"$s1M14withGenericArgyyxYlF.resume.0"(i8* %0, i8* %1, i8* swiftasync %2)
|
||||
// CHECK: store i8* %2, i8** %[[ALLOCA:.*]], align
|
||||
// CHECK: call void @llvm.dbg.declare(metadata i8** %[[ALLOCA]],
|
||||
// CHECK-SAME: metadata ![[TAU_R:[0-9]+]], metadata !DIExpression(
|
||||
|
||||
@@ -14,7 +14,7 @@ public class SomeClass {}
|
||||
@_silgen_name("swift_task_future_wait")
|
||||
public func task_future_wait(_ task: __owned SomeClass) async throws -> Int
|
||||
|
||||
// CHECK: define{{.*}} swiftcc void @"$s5async8testThisyyAA9SomeClassCnYF"(%swift.task* %0, %swift.executor* %1, %swift.context* %2)
|
||||
// CHECK: define{{.*}} swiftcc void @"$s5async8testThisyyAA9SomeClassCnYF"(%swift.task* %0, %swift.executor* %1, %swift.context* swiftasync %2)
|
||||
// CHECK-64: call swiftcc i8* @swift_task_alloc(%swift.task* %{{[0-9]+}}, i64 64)
|
||||
// CHECK: tail call swiftcc void @swift_task_future_wait(
|
||||
public func testThis(_ task: __owned SomeClass) async {
|
||||
|
||||
@@ -8,7 +8,7 @@ sil_stage canonical
|
||||
import Builtin
|
||||
import Swift
|
||||
|
||||
// CHECK-LABEL: define hidden swiftcc void @get_task(%swift.task* %0, %swift.executor* %1, %swift.context* %2)
|
||||
// CHECK-LABEL: define hidden swiftcc void @get_task(%swift.task* %0, %swift.executor* %1, %swift.context* swiftasync %2)
|
||||
sil hidden [ossa] @get_task : $@async @convention(thin) () -> @owned Builtin.NativeObject {
|
||||
bb0:
|
||||
// CHECK: [[TASKLOC:%.*]] = alloca %swift.task*
|
||||
|
||||
@@ -14,7 +14,7 @@ import _Concurrency
|
||||
final actor class MyActor {
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define{{.*}} void @test_simple(%swift.task* %0, %swift.executor* %1, %swift.context* %2)
|
||||
// CHECK-LABEL: define{{.*}} void @test_simple(%swift.task* %0, %swift.executor* %1, %swift.context* swiftasync %2)
|
||||
// CHECK: [[TASK_LOC:%[0-9]+]] = alloca %swift.task*
|
||||
// CHECK: [[CTX:%[0-9]+]] = bitcast %swift.context* %2
|
||||
// CHECK: [[ACTOR_ADDR:%[0-9]+]] = getelementptr {{.*}} [[CTX]], i32 0, i32 6
|
||||
|
||||
@@ -17,7 +17,7 @@ sil @partially_applyable_to_two_classes : $@async @convention(thin) (@owned Swif
|
||||
|
||||
sil @use_closure : $@async @convention(thin) (@noescape @async @callee_guaranteed () -> ()) -> ()
|
||||
|
||||
// CHECK: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_class(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_class(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
sil @partial_apply_class : $@async @convention(thin) (SwiftClass) -> @async @callee_owned () -> () {
|
||||
entry(%c : $SwiftClass):
|
||||
%f = function_ref @partially_applyable_to_class : $@async @convention(thin) (@owned SwiftClass) -> ()
|
||||
@@ -25,7 +25,7 @@ entry(%c : $SwiftClass):
|
||||
return %g : $@async @callee_owned () -> ()
|
||||
}
|
||||
|
||||
// CHECK: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_class_on_stack(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_class_on_stack(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
sil @partial_apply_class_on_stack : $@async @convention(thin) (@owned SwiftClass) -> () {
|
||||
entry(%a : $SwiftClass):
|
||||
%f = function_ref @partially_applyable_to_class : $@async @convention(thin) (@owned SwiftClass) -> ()
|
||||
@@ -38,7 +38,7 @@ entry(%a : $SwiftClass):
|
||||
return %t : $()
|
||||
}
|
||||
|
||||
// CHECK: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_two_classes_on_stack(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_two_classes_on_stack(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil @partial_apply_two_classes_on_stack : $@async @convention(thin) (@owned SwiftClass, @owned SwiftClass) -> () {
|
||||
entry(%a : $SwiftClass, %b: $SwiftClass):
|
||||
@@ -52,7 +52,7 @@ entry(%a : $SwiftClass, %b: $SwiftClass):
|
||||
%t = tuple()
|
||||
return %t : $()
|
||||
}
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s22generic_captured_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s22generic_captured_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
sil public_external @generic_captured_param : $@async @convention(thin) <T> (Int, @inout T) -> Int
|
||||
|
||||
sil @partial_apply_generic_capture : $@async @convention(thin) (Int) -> @async @callee_owned (Int) -> Int {
|
||||
@@ -67,7 +67,7 @@ entry(%x : $Int):
|
||||
|
||||
sil public_external @generic_captured_and_open_param : $@async @convention(thin) <T> (@in T, @inout T) -> @out T
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_open_generic_capture(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_open_generic_capture(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
sil @partial_apply_open_generic_capture : $@async @convention(thin) <T> (@inout T) -> @async @callee_owned (@in T) -> @out T {
|
||||
entry(%a : $*T):
|
||||
%f = function_ref @generic_captured_and_open_param : $@async @convention(thin) <U> (@in U, @inout U) -> @out U
|
||||
@@ -82,7 +82,7 @@ entry(%a : $*T):
|
||||
|
||||
sil public_external @guaranteed_captured_class_param : $@async @convention(thin) (Int, @guaranteed SwiftClass) -> Int
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_guaranteed_class_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_guaranteed_class_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil @partial_apply_guaranteed_class_param : $@async @convention(thin) (@owned SwiftClass) -> @async @callee_owned (Int) -> Int {
|
||||
bb0(%x : $SwiftClass):
|
||||
@@ -93,8 +93,8 @@ bb0(%x : $SwiftClass):
|
||||
|
||||
sil public_external @indirect_guaranteed_captured_class_param : $@async @convention(thin) (Int, @in_guaranteed SwiftClass) -> Int
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_indirect_guaranteed_class_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s40indirect_guaranteed_captured_class_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_indirect_guaranteed_class_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s40indirect_guaranteed_captured_class_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[1-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil @partial_apply_indirect_guaranteed_class_param : $@async @convention(thin) (@in SwiftClass) -> @async @callee_owned (Int) -> Int {
|
||||
bb0(%x : $*SwiftClass):
|
||||
@@ -105,8 +105,8 @@ bb0(%x : $*SwiftClass):
|
||||
|
||||
sil public_external @indirect_consumed_captured_class_param : $@async @convention(thin) (Int, @in SwiftClass) -> Int
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_indirect_consumed_class_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s38indirect_consumed_captured_class_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_indirect_consumed_class_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[1-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s38indirect_consumed_captured_class_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil @partial_apply_indirect_consumed_class_param : $@async @convention(thin) (@in SwiftClass) -> @async @callee_owned (Int) -> Int {
|
||||
bb0(%x : $*SwiftClass):
|
||||
@@ -124,8 +124,8 @@ struct SwiftClassPair { var x: SwiftClass, y: SwiftClass }
|
||||
|
||||
sil public_external @guaranteed_captured_class_pair_param : $@async @convention(thin) (Int, @guaranteed SwiftClassPair) -> Int
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_guaranteed_class_pair_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s36guaranteed_captured_class_pair_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_guaranteed_class_pair_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s36guaranteed_captured_class_pair_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil @partial_apply_guaranteed_class_pair_param : $@async @convention(thin) (@owned SwiftClassPair) -> @async @callee_owned (Int) -> Int {
|
||||
bb0(%x : $SwiftClassPair):
|
||||
@@ -136,8 +136,8 @@ bb0(%x : $SwiftClassPair):
|
||||
|
||||
sil public_external @indirect_guaranteed_captured_class_pair_param : $@async @convention(thin) (Int, @in_guaranteed SwiftClassPair) -> Int
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_indirect_guaranteed_class_pair_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s45indirect_guaranteed_captured_class_pair_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_indirect_guaranteed_class_pair_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s45indirect_guaranteed_captured_class_pair_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil @partial_apply_indirect_guaranteed_class_pair_param : $@async @convention(thin) (@in SwiftClassPair) -> @async @callee_owned (Int) -> Int {
|
||||
bb0(%x : $*SwiftClassPair):
|
||||
@@ -148,8 +148,8 @@ bb0(%x : $*SwiftClassPair):
|
||||
|
||||
sil public_external @indirect_consumed_captured_class_pair_param : $@async @convention(thin) (Int, @in SwiftClassPair) -> Int
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_indirect_consumed_class_pair_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s43indirect_consumed_captured_class_pair_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_indirect_consumed_class_pair_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s43indirect_consumed_captured_class_pair_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil @partial_apply_indirect_consumed_class_pair_param : $@async @convention(thin) (@in SwiftClassPair) -> @async @callee_owned (Int) -> Int {
|
||||
bb0(%x : $*SwiftClassPair):
|
||||
@@ -160,8 +160,8 @@ bb0(%x : $*SwiftClassPair):
|
||||
|
||||
sil public_external @captured_fixed_and_dependent_params : $@async @convention(thin) <A> (@owned SwiftClass, @in A, Int) -> ()
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_indirect_non_fixed_layout(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s35captured_fixed_and_dependent_paramsTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_indirect_non_fixed_layout(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s35captured_fixed_and_dependent_paramsTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
sil @partial_apply_indirect_non_fixed_layout : $@async @convention(thin) <T> (@owned SwiftClass, @in T, Int) -> @async @callee_owned () -> () {
|
||||
bb0(%a : $SwiftClass, %b : $*T, %c : $Int):
|
||||
%f = function_ref @captured_fixed_and_dependent_params : $@async @convention(thin) <B> (@owned SwiftClass, @in B, Int) -> ()
|
||||
@@ -178,7 +178,7 @@ bb0(%x : $*T):
|
||||
return %p : $@async @callee_owned () -> @out T
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s28captured_dependent_out_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s28captured_dependent_out_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil @partial_apply_dynamic_with_out_param : $@async @convention(thin) <T> (Int32, @owned @async @callee_owned (Int32) -> @out T) -> @async @callee_owned () -> @out T {
|
||||
bb0(%x : $Int32, %f : $@async @callee_owned (Int32) -> @out T):
|
||||
@@ -186,7 +186,7 @@ bb0(%x : $Int32, %f : $@async @callee_owned (Int32) -> @out T):
|
||||
return %p : $@async @callee_owned () -> @out T
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_dynamic_with_out_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_dynamic_with_out_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
class Base {
|
||||
}
|
||||
@@ -205,10 +205,10 @@ bb0(%0 : $Base):
|
||||
|
||||
sil public_external @receive_closure : $@async @convention(thin) <C where C : Base> (@owned @async @callee_owned () -> (@owned C)) -> ()
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @test_partial_apply(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @test_partial_apply(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s26parametric_casting_closureTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s26parametric_casting_closureTA.{{[0-9]+}}"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s26parametric_casting_closureTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s26parametric_casting_closureTA.{{[0-9]+}}"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil @test_partial_apply : $@async @convention(thin) (@owned Base) -> () {
|
||||
bb0(%0 : $Base):
|
||||
@@ -223,7 +223,7 @@ bb0(%0 : $Base):
|
||||
|
||||
sil public_external @partial_empty_box : $@async @convention(thin) (@owned <τ_0_0> { var τ_0_0 } <()>, @inout_aliasable ()) -> ()
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @empty_box(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @empty_box(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
sil @empty_box : $@async @convention(thin) () -> () {
|
||||
entry:
|
||||
// CHECK: [[BOX:%.*]] = call {{.*}}swift_allocEmptyBox
|
||||
@@ -249,8 +249,8 @@ bb0(%0 : $Int):
|
||||
%result = tuple ()
|
||||
return %result : $()
|
||||
}
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_complex_generic_function(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s24complex_generic_functionTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_complex_generic_function(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s24complex_generic_functionTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
struct ComplexBoundedType<T: P2> {}
|
||||
|
||||
@@ -288,8 +288,8 @@ enum GenericEnum<T> {
|
||||
}
|
||||
sil public_external @generic_indirect_return : $@async @convention(thin) <T> (Int) -> @owned GenericEnum<T>
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_generic_indirect_return(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s23generic_indirect_returnTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_generic_indirect_return(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s23generic_indirect_returnTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
sil @partial_apply_generic_indirect_return : $@async @convention(thin) (Int) -> @async @callee_owned () -> @owned GenericEnum<Int> {
|
||||
bb0(%0 : $Int):
|
||||
%fn = function_ref @generic_indirect_return :$@async @convention(thin) <T> (Int) -> @owned GenericEnum<T>
|
||||
@@ -305,8 +305,8 @@ enum GenericEnum2<T> {
|
||||
}
|
||||
sil public_external @generic_indirect_return2 : $@async @convention(thin) <T> (Int) -> @owned GenericEnum2<T>
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_generic_indirect_return2(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s24generic_indirect_return2TA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_generic_indirect_return2(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s24generic_indirect_return2TA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
sil @partial_apply_generic_indirect_return2 : $@async @convention(thin) (Int) -> @async @callee_owned () -> @owned GenericEnum2<Int> {
|
||||
bb0(%0 : $Int):
|
||||
%fn = function_ref @generic_indirect_return2 :$@async @convention(thin) <T> (Int) -> @owned GenericEnum2<T>
|
||||
@@ -318,7 +318,7 @@ struct SwiftStruct {}
|
||||
|
||||
sil @fun : $@async @convention(thin) (@thin SwiftStruct.Type, @owned SwiftClass) -> ()
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_thin_type(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_thin_type(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil @partial_apply_thin_type : $@async @convention(thin) (@thin SwiftStruct.Type, @owned SwiftClass) -> @async @callee_owned () -> () {
|
||||
entry(%0: $@thin SwiftStruct.Type, %1: $SwiftClass):
|
||||
@@ -330,7 +330,7 @@ entry(%0: $@thin SwiftStruct.Type, %1: $SwiftClass):
|
||||
sil @afun : $@async @convention(thin) (Int) -> @error Error
|
||||
|
||||
// Check that we don't assert on a thin noescape function.
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @convert_thin_test(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @convert_thin_test(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
sil @convert_thin_test : $@async @convention(thin) (Int) -> () {
|
||||
bb(%0 : $Int):
|
||||
%f = function_ref @afun : $@async @convention(thin) (Int) -> @error Error
|
||||
@@ -393,7 +393,7 @@ bb0(%0 : $*A2<A3>):
|
||||
sil_vtable A3 {}
|
||||
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_callee_guaranteed_indirect_guaranteed_class_pair_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_callee_guaranteed_indirect_guaranteed_class_pair_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil @partial_apply_callee_guaranteed_indirect_guaranteed_class_pair_param : $@async @convention(thin) (@in SwiftClassPair) -> @owned @async @callee_guaranteed (Int) -> Int {
|
||||
bb0(%x : $*SwiftClassPair):
|
||||
@@ -404,8 +404,8 @@ bb0(%x : $*SwiftClassPair):
|
||||
|
||||
sil public_external @use_closure2 : $@async @convention(thin) (@noescape @async @callee_guaranteed (Int) -> Int) -> ()
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_stack_callee_guaranteed_indirect_guaranteed_class_pair_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s45indirect_guaranteed_captured_class_pair_paramTA.70"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_stack_callee_guaranteed_indirect_guaranteed_class_pair_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s45indirect_guaranteed_captured_class_pair_paramTA.70"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil @partial_apply_stack_callee_guaranteed_indirect_guaranteed_class_pair_param : $@async @convention(thin) (@in_guaranteed SwiftClassPair) -> () {
|
||||
bb0(%x : $*SwiftClassPair):
|
||||
@@ -418,8 +418,8 @@ bb0(%x : $*SwiftClassPair):
|
||||
return %t : $()
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_stack_callee_guaranteed_indirect_in_class_pair_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s37indirect_in_captured_class_pair_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_stack_callee_guaranteed_indirect_in_class_pair_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s37indirect_in_captured_class_pair_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil public_external @indirect_in_captured_class_pair_param : $@async @convention(thin) (Int, @in SwiftClassPair) -> Int
|
||||
|
||||
@@ -436,8 +436,8 @@ bb0(%x : $*SwiftClassPair):
|
||||
}
|
||||
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_stack_callee_guaranteed_indirect_in_constant_class_pair_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s46indirect_in_constant_captured_class_pair_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @partial_apply_stack_callee_guaranteed_indirect_in_constant_class_pair_param(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s46indirect_in_constant_captured_class_pair_paramTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil public_external @indirect_in_constant_captured_class_pair_param : $@async @convention(thin) (Int, @in_constant SwiftClassPair) -> Int
|
||||
|
||||
@@ -456,7 +456,7 @@ bb0(%x : $*SwiftClassPair):
|
||||
sil public_external @closure : $@async @convention(thin) (@in_guaranteed ResilientInt, @guaranteed SwiftClass) -> ()
|
||||
|
||||
// Make sure that we use the heap header size (16) for the initial offset.
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @test_initial_offset(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @test_initial_offset(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil @test_initial_offset : $@async @convention(thin) (@in_guaranteed ResilientInt, @guaranteed SwiftClass) -> () {
|
||||
bb0(%x : $*ResilientInt, %y : $SwiftClass):
|
||||
@@ -478,7 +478,7 @@ struct SomeType : Proto2 {
|
||||
|
||||
sil @foo : $@async @convention(thin) <τ_0_0, τ_0_1 where τ_0_0 : Proto1, τ_0_1 : Proto2> (@in_guaranteed τ_0_0, @in_guaranteed τ_0_1) -> ()
|
||||
|
||||
// CHECK-64-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @empty_followed_by_non_fixed(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-64-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @empty_followed_by_non_fixed(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil @empty_followed_by_non_fixed : $@async @convention(thin) (EmptyType, @in_guaranteed SomeType) -> () {
|
||||
entry(%0 : $EmptyType, %1: $*SomeType):
|
||||
@@ -501,7 +501,7 @@ entry(%0 : $EmptyType, %1: $*SomeType):
|
||||
struct FixedType {
|
||||
var f: Int32
|
||||
}
|
||||
// CHECK-64-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @fixed_followed_by_empty_followed_by_non_fixed(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-64-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @fixed_followed_by_empty_followed_by_non_fixed(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil @foo2 : $@async @convention(thin) <τ_0_0, τ_0_1, τ_0_2> (@in_guaranteed τ_0_0, @in_guaranteed τ_0_1, @in_guaranteed τ_0_2) -> ()
|
||||
sil @fixed_followed_by_empty_followed_by_non_fixed : $@async @convention(thin) (EmptyType, @in_guaranteed SomeType, FixedType) -> () {
|
||||
|
||||
@@ -28,7 +28,7 @@ bb0(%0 : $*S):
|
||||
return %2 : $@async @callee_owned (@in O) -> ()
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s23unspecialized_uncurriedTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s23unspecialized_uncurriedTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil hidden @specialized_curried : $@async @convention(thin) (@owned E) -> @owned @async @callee_owned () -> @owned D<C> {
|
||||
bb0(%0 : $E):
|
||||
@@ -40,7 +40,7 @@ bb0(%0 : $E):
|
||||
sil hidden_external @unspecialized_uncurried : $@async @convention(method) <τ_0_0 where τ_0_0 : P> (@guaranteed E) -> @owned D<τ_0_0>
|
||||
|
||||
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s7takingPTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s7takingPTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
sil hidden_external @takingP : $@async @convention(method) <τ_0_0 where τ_0_0 : P> (@in_guaranteed τ_0_0) -> ()
|
||||
|
||||
sil hidden @reabstract_context : $@async @convention(thin) (@owned C) -> () {
|
||||
@@ -71,8 +71,8 @@ sil hidden_external @takingQ : $@async @convention(thin) <τ_0_0 where τ_0_0 :
|
||||
sil hidden_external @takingQAndEmpty : $@async @convention(thin) <τ_0_0 where τ_0_0 : Q> (@owned WeakBox<τ_0_0>, EmptyType) -> ()
|
||||
sil hidden_external @takingEmptyAndQ : $@async @convention(thin) <τ_0_0 where τ_0_0 : Q> (EmptyType, @owned WeakBox<τ_0_0>) -> ()
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @bind_polymorphic_param_from_context(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s7takingQTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @bind_polymorphic_param_from_context(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s7takingQTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil public @bind_polymorphic_param_from_context : $@async @convention(thin) <τ_0_1>(@in τ_0_1) -> @owned @async @callee_owned () -> () {
|
||||
bb0(%0 : $*τ_0_1):
|
||||
@@ -82,7 +82,7 @@ bb0(%0 : $*τ_0_1):
|
||||
return %9 : $@async @callee_owned () -> ()
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @bind_polymorphic_param_from_context_2(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @bind_polymorphic_param_from_context_2(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
sil public @bind_polymorphic_param_from_context_2 : $@async @convention(thin) <τ_0_1>(@in τ_0_1, EmptyType) -> @owned @async @callee_owned () -> () {
|
||||
bb0(%0 : $*τ_0_1, %2: $EmptyType):
|
||||
%1 = alloc_ref $WeakBox<BaseProducer<τ_0_1>>
|
||||
@@ -91,7 +91,7 @@ bb0(%0 : $*τ_0_1, %2: $EmptyType):
|
||||
return %9 : $@async @callee_owned () -> ()
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @bind_polymorphic_param_from_context_3(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @bind_polymorphic_param_from_context_3(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
sil public @bind_polymorphic_param_from_context_3 : $@async @convention(thin) <τ_0_1>(@in τ_0_1, EmptyType) -> @owned @async @callee_owned () -> () {
|
||||
bb0(%0 : $*τ_0_1, %2: $EmptyType):
|
||||
%1 = alloc_ref $WeakBox<BaseProducer<τ_0_1>>
|
||||
@@ -100,8 +100,8 @@ bb0(%0 : $*τ_0_1, %2: $EmptyType):
|
||||
return %9 : $@async @callee_owned () -> ()
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @bind_polymorphic_param_from_forwarder_parameter(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s7takingQTA.19"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @bind_polymorphic_param_from_forwarder_parameter(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s7takingQTA.19"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
|
||||
sil public @bind_polymorphic_param_from_forwarder_parameter : $@async @convention(thin) <τ_0_1>(@in τ_0_1) -> () {
|
||||
bb0(%0 : $*τ_0_1):
|
||||
@@ -118,8 +118,8 @@ struct S {
|
||||
|
||||
sil hidden_external @takingQAndS : $@async @convention(thin) <τ_0_0 where τ_0_0 : Q> (S, @owned WeakBox<τ_0_0>) -> ()
|
||||
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @bind_polymorphic_param_from_context_with_layout(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s11takingQAndSTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @bind_polymorphic_param_from_context_with_layout(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s11takingQAndSTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
sil public @bind_polymorphic_param_from_context_with_layout : $@async @convention(thin) <τ_0_1>(@in τ_0_1, S) -> @owned @async @callee_owned () -> () {
|
||||
bb0(%0 : $*τ_0_1, %1: $S):
|
||||
%2 = alloc_ref $WeakBox<BaseProducer<τ_0_1>>
|
||||
@@ -150,8 +150,8 @@ bb0:
|
||||
return %1 : $@async @callee_guaranteed (Empty<S>) -> (@owned Empty<S>, @owned @async @callee_guaranteed (Empty<S>) -> @owned Empty<S>)
|
||||
}
|
||||
|
||||
// CHECK-LABEL: define hidden swiftcc void @specializes_closure_returning_closure(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s15returns_closureTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define hidden swiftcc void @specializes_closure_returning_closure(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LABEL: define internal swiftcc void @"$s15returns_closureTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
protocol MyEquatable {
|
||||
static func isEqual (lhs: Self, rhs: Self) -> Builtin.Int1
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ protocol P {
|
||||
// CHECK-LL: @"$s4main1XCAA1PA2aDP1fyyYFTWTu" = internal global %swift.async_func_pointer
|
||||
|
||||
extension P {
|
||||
// CHECK-LL: define hidden swiftcc void @"$s4main1PPAAE1fyyYF"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @"$s4main1PPAAE1fyyYF"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
func f() async {
|
||||
print("entering f")
|
||||
printGeneric(Self.self)
|
||||
@@ -40,10 +40,10 @@ extension P {
|
||||
}
|
||||
}
|
||||
|
||||
// CHECK-LL: define internal swiftcc void @"$s4main1XCAA1PA2aDP1fyyYFTW"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define internal swiftcc void @"$s4main1XCAA1PA2aDP1fyyYFTW"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
extension X : P {}
|
||||
|
||||
// CHECK-LL: define hidden swiftcc void @"$s4main6call_fyyxYAA1PRzlF"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @"$s4main6call_fyyxYAA1PRzlF"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
func call_f<T : P>(_ t: T) async {
|
||||
print("entering call_f")
|
||||
await t.f()
|
||||
|
||||
@@ -30,7 +30,7 @@ class S {
|
||||
}
|
||||
|
||||
// CHECK-LL: @classinstanceSInt64ToVoidTu =
|
||||
// CHECK-LL: define hidden swiftcc void @classinstanceSInt64ToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
// CHECK-LL: define hidden swiftcc void @classinstanceSInt64ToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]+}} {
|
||||
sil hidden @classinstanceSInt64ToVoid : $@async @convention(method) (Int64, @guaranteed S) -> () {
|
||||
bb0(%int : $Int64, %instance : $S):
|
||||
%take_s = function_ref @take_S : $@async @convention(thin) (@guaranteed S) -> ()
|
||||
|
||||
@@ -30,7 +30,7 @@ class S {
|
||||
}
|
||||
|
||||
// CHECK-LL: @classinstanceSVoidToVoidTu =
|
||||
// CHECK-LL: define hidden swiftcc void @classinstanceSVoidToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @classinstanceSVoidToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @classinstanceSVoidToVoid : $@async @convention(method) (@guaranteed S) -> () {
|
||||
bb0(%instance : $S):
|
||||
%take_s = function_ref @take_S : $@async @convention(thin) (@guaranteed S) -> ()
|
||||
|
||||
@@ -16,7 +16,7 @@ import _Concurrency
|
||||
|
||||
// CHECK-LL: @"$s4mainyyYcfU_Tu" = internal global %swift.async_func_pointer
|
||||
|
||||
// CHECK-LL: define hidden swiftcc void @"$s4main3runyyYF"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @"$s4main3runyyYF"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
dynamic func run() async {
|
||||
print("running")
|
||||
}
|
||||
|
||||
@@ -38,7 +38,7 @@ bb0(%int : $Int64, %S_type : $@thin S.Type):
|
||||
}
|
||||
|
||||
// CHECK-LL: @existentialToVoidTu =
|
||||
// CHECK-LL: define hidden swiftcc void @existentialToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @existentialToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @existentialToVoid : $@async @convention(thin) (@in_guaranteed P) -> () {
|
||||
bb0(%existential : $*P):
|
||||
%existential_addr = open_existential_addr immutable_access %existential : $*P to $*@opened("B2796A9C-FEBE-11EA-84BB-D0817AD71B77") P
|
||||
|
||||
@@ -20,7 +20,7 @@ import _Concurrency
|
||||
sil public_external @printInt64 : $@convention(thin) (Int64) -> ()
|
||||
|
||||
// CHECK-LL: @genericToGenericTu =
|
||||
// CHECK-LL: define hidden swiftcc void @genericToGeneric(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @genericToGeneric(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @genericToGeneric : $@async @convention(thin) <T> (@in_guaranteed T) -> @out T {
|
||||
bb0(%out : $*T, %in : $*T):
|
||||
copy_addr %in to [initialization] %out : $*T
|
||||
|
||||
@@ -20,7 +20,7 @@ import _Concurrency
|
||||
sil public_external @printGeneric : $@convention(thin) <T> (@in_guaranteed T) -> ()
|
||||
|
||||
// CHECK-LL: @genericToVoidTu =
|
||||
// CHECK-LL: define hidden swiftcc void @genericToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @genericToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @genericToVoid : $@async @convention(thin) <T> (@in_guaranteed T) -> () {
|
||||
bb0(%instance : $*T):
|
||||
%print_generic = function_ref @printGeneric : $@convention(thin) <T> (@in_guaranteed T) -> ()
|
||||
|
||||
@@ -20,7 +20,7 @@ import _Concurrency
|
||||
sil public_external @printBool : $@convention(thin) (Bool) -> ()
|
||||
|
||||
// CHECK-LL: @genericEquatableAndGenericEquatableToBoolTu =
|
||||
// CHECK-LL: define hidden swiftcc void @genericEquatableAndGenericEquatableToBool(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @genericEquatableAndGenericEquatableToBool(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @genericEquatableAndGenericEquatableToBool : $@async @convention(thin) <T where T : Equatable> (@in_guaranteed T, @in_guaranteed T) -> Bool {
|
||||
bb0(%0 : $*T, %1 : $*T):
|
||||
%4 = metatype $@thick T.Type
|
||||
|
||||
@@ -20,7 +20,7 @@ import _Concurrency
|
||||
sil public_external @printInt64 : $@convention(thin) (Int64) -> ()
|
||||
|
||||
// CHECK-LL: @int64AndInt64ToVoidTu =
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @int64AndInt64ToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @int64AndInt64ToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil @int64AndInt64ToVoid : $@async @convention(thin) (Int64, Int64) -> () {
|
||||
entry(%int1: $Int64, %int2: $Int64):
|
||||
%print = function_ref @printInt64 : $@convention(thin) (Int64) -> ()
|
||||
|
||||
@@ -20,7 +20,7 @@ import _Concurrency
|
||||
sil public_external @printInt64 : $@convention(thin) (Int64) -> ()
|
||||
|
||||
// CHECK-LL: @int64ToVoidTu =
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @int64ToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @int64ToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil @int64ToVoid : $@async @convention(thin) (Int64) -> () {
|
||||
entry(%int: $Int64):
|
||||
%print = function_ref @printInt64 : $@convention(thin) (Int64) -> ()
|
||||
|
||||
@@ -34,7 +34,7 @@ struct I : P {
|
||||
}
|
||||
|
||||
// CHECK-LL: @callPrintMeTu =
|
||||
// CHECK-LL: define hidden swiftcc void @callPrintMe(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @callPrintMe(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @callPrintMe : $@async @convention(method) <Self where Self : P> (@in_guaranteed Self) -> Int64 {
|
||||
bb0(%self : $*Self):
|
||||
%P_printMe = witness_method $Self, #P.printMe : <Self where Self : P> (Self) -> () -> Int64 : $@convention(witness_method: P) <τ_0_0 where τ_0_0 : P> (@in_guaranteed τ_0_0) -> Int64
|
||||
|
||||
@@ -30,7 +30,7 @@ struct I : P {
|
||||
}
|
||||
|
||||
// CHECK-LL: @I_printMeTu =
|
||||
// CHECK-LL-LABEL: define hidden swiftcc void @I_printMe(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL-LABEL: define hidden swiftcc void @I_printMe(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @I_printMe : $@async @convention(method) (I) -> Int64 {
|
||||
bb0(%self : $I):
|
||||
%self_addr = alloc_stack $I
|
||||
@@ -42,7 +42,7 @@ bb0(%self : $I):
|
||||
return %result : $Int64
|
||||
}
|
||||
|
||||
// CHECK-LL-LABEL: define internal swiftcc void @I_P_printMe(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL-LABEL: define internal swiftcc void @I_P_printMe(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil private [transparent] [thunk] @I_P_printMe : $@async @convention(witness_method: P) (@in_guaranteed I) -> Int64 {
|
||||
bb0(%self_addr : $*I):
|
||||
%self = load %self_addr : $*I
|
||||
|
||||
@@ -25,7 +25,7 @@ sil public_external [exact_self_class] @$s14ResilientClass5ClazzCACycfC : $@conv
|
||||
// Defined in _Concurrency
|
||||
sil public_external @swift_task_runAndBlockThread : $@convention(thin) (@guaranteed @async @callee_guaranteed () -> ()) -> ()
|
||||
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @test_case(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @test_case(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil @test_case : $@convention(thin) @async () -> () {
|
||||
%s_type = metatype $@thick Clazz.Type
|
||||
%allocating_init = function_ref @$s14ResilientClass5ClazzCACycfC : $@convention(method) (@thick Clazz.Type) -> @owned Clazz
|
||||
|
||||
@@ -20,7 +20,7 @@ func call<T : Protokol>(_ t: T) async {
|
||||
await t.protocolinstanceVoidToVoid()
|
||||
}
|
||||
|
||||
// CHECK-LL: define hidden swiftcc void @"$s4main4callyyxY17ResilientProtocol8ProtokolRzlF"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @"$s4main4callyyxY17ResilientProtocol8ProtokolRzlF"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
func test_case() async {
|
||||
let impl = Impl()
|
||||
await call(impl) // CHECK: Impl()
|
||||
|
||||
@@ -43,7 +43,7 @@ entry(%pack : $Pack):
|
||||
// Defined in _Concurrency
|
||||
sil public_external @swift_task_runAndBlockThread : $@convention(thin) (@guaranteed @async @callee_guaranteed () -> ()) -> ()
|
||||
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @test_case(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @test_case(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil @test_case : $@async @convention(thin) () -> () {
|
||||
|
||||
%a_literal = integer_literal $Builtin.Int1, -1
|
||||
|
||||
@@ -26,7 +26,7 @@ struct S {
|
||||
}
|
||||
|
||||
// CHECK-LL: @structinstanceSInt64ToVoidTu =
|
||||
// CHECK-LL: define hidden swiftcc void @structinstanceSInt64ToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @structinstanceSInt64ToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @structinstanceSInt64ToVoid : $@async @convention(method) (Int64, S) -> () {
|
||||
bb0(%int : $Int64, %self : $S):
|
||||
%takeSAndInt64 = function_ref @takeSAndInt64 : $@async @convention(thin) (S, Int64) -> ()
|
||||
|
||||
@@ -100,7 +100,7 @@ bb5:
|
||||
}
|
||||
|
||||
// CHECK-LL: @voidThrowsToIntTu =
|
||||
// CHECK-LL: define hidden swiftcc void @voidThrowsToInt(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @voidThrowsToInt(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @voidThrowsToInt : $@async @convention(thin) () -> (Int, @error Error) {
|
||||
bb0:
|
||||
%e_type = metatype $@thin E.Type
|
||||
|
||||
@@ -99,7 +99,7 @@ bb5:
|
||||
}
|
||||
|
||||
// CHECK-LL: @voidThrowsToIntTu =
|
||||
// CHECK-LL: define hidden swiftcc void @voidThrowsToInt(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @voidThrowsToInt(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @voidThrowsToInt : $@async @convention(thin) () -> (Int64, @error Error) {
|
||||
entry:
|
||||
%asyncVoidThrowsToInt = function_ref @asyncVoidThrowsToInt : $@async @convention(thin) () -> (Int64, @error Error)
|
||||
|
||||
@@ -100,7 +100,7 @@ bb5:
|
||||
}
|
||||
|
||||
// CHECK-LL: @voidThrowsToIntTu =
|
||||
// CHECK-LL: define hidden swiftcc void @voidThrowsToInt(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @voidThrowsToInt(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @voidThrowsToInt : $@async @convention(thin) () -> (Int, @error Error) {
|
||||
bb0:
|
||||
%asyncVoidThrowsToInt = function_ref @asyncVoidThrowsToInt : $@async @convention(thin) () -> (Int, @error Error)
|
||||
|
||||
@@ -100,7 +100,7 @@ bb5:
|
||||
}
|
||||
|
||||
// CHECK-LL: @voidThrowsToIntTu =
|
||||
// CHECK-LL: define hidden swiftcc void @voidThrowsToInt(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @voidThrowsToInt(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @voidThrowsToInt : $@async @convention(thin) () -> (Int64, @error Error) {
|
||||
entry:
|
||||
%syncVoidThrowsToInt = function_ref @syncVoidThrowsToInt : $@async @convention(thin) () -> (Int64, @error Error)
|
||||
|
||||
@@ -101,7 +101,7 @@ bb5:
|
||||
}
|
||||
|
||||
// CHECK-LL: @voidThrowsToIntTu =
|
||||
// CHECK-LL: define hidden swiftcc void @voidThrowsToInt(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @voidThrowsToInt(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @voidThrowsToInt : $@async @convention(thin) () -> (Int, @error Error) {
|
||||
bb0:
|
||||
%syncVoidThrowsToInt = function_ref @syncVoidThrowsToInt : $@async @convention(thin) () -> (Int, @error Error)
|
||||
|
||||
@@ -37,7 +37,7 @@ bb0(%int : $Int64, %S_type : $@thin S.Type):
|
||||
}
|
||||
|
||||
// CHECK-LL: @voidToExistentialTu =
|
||||
// CHECK-LL: define hidden swiftcc void @voidToExistential(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @voidToExistential(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @voidToExistential : $@async @convention(thin) () -> @out P {
|
||||
bb0(%out : $*P):
|
||||
%S_type = metatype $@thin S.Type
|
||||
|
||||
@@ -20,7 +20,7 @@ import _Concurrency
|
||||
sil public_external @printInt64 : $@convention(thin) (Int64) -> ()
|
||||
|
||||
// CHECK-LL: @voidToInt64AndInt64Tu =
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @voidToInt64AndInt64(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @voidToInt64AndInt64(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil @voidToInt64AndInt64 : $@async @convention(thin) () -> (Int64, Int64) {
|
||||
%int_literal1 = integer_literal $Builtin.Int64, 42
|
||||
%int1 = struct $Int64 (%int_literal1 : $Builtin.Int64)
|
||||
|
||||
@@ -20,7 +20,7 @@ import _Concurrency
|
||||
sil public_external @printInt64 : $@convention(thin) (Int64) -> ()
|
||||
|
||||
// CHECK-LL: @voidToInt64Tu =
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @voidToInt64(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @voidToInt64(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil @voidToInt64 : $@async @convention(thin) () -> (Int64) {
|
||||
%int_literal = integer_literal $Builtin.Int64, 42
|
||||
%int = struct $Int64 (%int_literal : $Builtin.Int64)
|
||||
|
||||
@@ -102,7 +102,7 @@ bb0(%0 : $@thin Big.Type):
|
||||
}
|
||||
|
||||
// CHECK-LL: @getBigTu =
|
||||
// CHECK-LL: define hidden swiftcc void @getBig(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @getBig(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @getBig : $@async @convention(thin) () -> Big {
|
||||
bb0:
|
||||
%0 = metatype $@thin Big.Type
|
||||
|
||||
@@ -46,7 +46,7 @@ bb0(%out_addr : $*T, %in_addr : $*T, %self : $I):
|
||||
}
|
||||
|
||||
// CHECK-LL: @I_P_printMeTu =
|
||||
// CHECK-LL: define internal swiftcc void @I_P_printMe(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define internal swiftcc void @I_P_printMe(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil private [transparent] [thunk] @I_P_printMe : $@convention(witness_method: P) @async <τ_0_0> (@in_guaranteed τ_0_0, @in_guaranteed I) -> (Int64, @out τ_0_0) {
|
||||
bb0(%out_addr : $*τ_0_0, %in_addr : $*τ_0_0, %self_addr : $*I):
|
||||
%self = load %self_addr : $*I
|
||||
|
||||
@@ -32,7 +32,7 @@ struct I : P {
|
||||
// CHECK-LL: @I_printMeTu =
|
||||
// CHECK-LL: @I_P_printMeTu =
|
||||
|
||||
// CHECK-LL-LABEL: define hidden swiftcc void @I_printMe(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL-LABEL: define hidden swiftcc void @I_printMe(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @I_printMe : $@async @convention(method) (I) -> Int64 {
|
||||
bb0(%self : $I):
|
||||
%self_addr = alloc_stack $I
|
||||
@@ -44,7 +44,7 @@ bb0(%self : $I):
|
||||
return %result : $Int64
|
||||
}
|
||||
|
||||
// CHECK-LL-LABEL: define internal swiftcc void @I_P_printMe(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL-LABEL: define internal swiftcc void @I_P_printMe(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil private [transparent] [thunk] @I_P_printMe : $@async @convention(witness_method: P) (@in_guaranteed I) -> Int64 {
|
||||
bb0(%self_addr : $*I):
|
||||
%self = load %self_addr : $*I
|
||||
|
||||
@@ -18,7 +18,7 @@ import _Concurrency
|
||||
|
||||
sil public_external @printInt64 : $@convention(thin) (Int64) -> ()
|
||||
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @int64ToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @int64ToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil @int64ToVoid : $@async @convention(thin) (Int64) -> () {
|
||||
entry(%int : $Int64):
|
||||
%printInt64 = function_ref @printInt64 : $@convention(thin) (Int64) -> ()
|
||||
|
||||
@@ -58,7 +58,7 @@ sil_vtable S {
|
||||
}
|
||||
|
||||
// CHECK-LL: @classinstanceSToVoidTu =
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @classinstanceSToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @classinstanceSToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil @classinstanceSToVoid : $@async @convention(thin) (@owned S) -> () {
|
||||
entry(%c : $S):
|
||||
%class_addr = alloc_stack $S
|
||||
|
||||
@@ -58,7 +58,7 @@ sil_vtable S {
|
||||
}
|
||||
|
||||
// CHECK-LL: @classinstanceSToVoidTu =
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @classinstanceSToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @classinstanceSToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil @classinstanceSToVoid : $@async @convention(method) (@owned S) -> () {
|
||||
entry(%c : $S):
|
||||
%class_addr = alloc_stack $S
|
||||
|
||||
@@ -29,7 +29,7 @@ class ObservableImpl : Observable {
|
||||
}
|
||||
sil_vtable ObservableImpl {
|
||||
}
|
||||
// CHECK-LL: define hidden swiftcc void @subscribe_ObservableImpl_Observable(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @subscribe_ObservableImpl_Observable(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @subscribe_ObservableImpl_Observable : $@convention(witness_method: Observable) @async <τ_0_0 where τ_0_0 : Observer> (@in_guaranteed τ_0_0, @in_guaranteed ObservableImpl) -> () {
|
||||
bb0(%observer : $*τ_0_0, %self : $*ObservableImpl):
|
||||
%printGeneric = function_ref @printGeneric : $@convention(thin) <T> (@in_guaranteed T) -> ()
|
||||
@@ -55,7 +55,7 @@ sil_witness_table ObserverImpl : Observer module main {
|
||||
associated_type Result : ()
|
||||
}
|
||||
|
||||
// CHECK-LL: define internal swiftcc void @"$sTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define internal swiftcc void @"$sTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @witness_method : $@async @convention(thin) <S where S : Observable><O where O : Observer, S.Result == O.Result> (@in S) -> @owned @async @callee_owned (@in O) -> () {
|
||||
bb0(%0 : $*S):
|
||||
%1 = witness_method $S, #Observable.subscribe : $@async @convention(witness_method: Observable) <τ_0_0 where τ_0_0 : Observable><τ_1_0 where τ_1_0 : Observer, τ_0_0.Result == τ_1_0.Result> (@in τ_1_0, @in_guaranteed τ_0_0) -> ()
|
||||
|
||||
@@ -20,8 +20,8 @@ sil public_external @printGeneric : $@convention(thin) <T> (@in_guaranteed T) ->
|
||||
sil public_external @printInt64 : $@convention(thin) (Int64) -> ()
|
||||
|
||||
// CHECK-LL: @inGenericAndInoutGenericToGenericTu =
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @inGenericAndInoutGenericToGeneric(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define internal swiftcc void @"$s017inGenericAndInoutb2ToB0TA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @inGenericAndInoutGenericToGeneric(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define internal swiftcc void @"$s017inGenericAndInoutb2ToB0TA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil @inGenericAndInoutGenericToGeneric : $@async @convention(thin) <T> (@in T, @inout T) -> @out T {
|
||||
entry(%out : $*T, %in : $*T, %inout : $*T):
|
||||
%printGeneric = function_ref @printGeneric : $@convention(thin) <T> (@in_guaranteed T) -> ()
|
||||
|
||||
@@ -46,8 +46,8 @@ exit:
|
||||
}
|
||||
|
||||
// CHECK-LL: @closureTu =
|
||||
// CHECK-LL: define internal swiftcc void @closure(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}}
|
||||
// CHECK-LL: define internal swiftcc void @"$s7closureTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}}
|
||||
// CHECK-LL: define internal swiftcc void @closure(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}}
|
||||
// CHECK-LL: define internal swiftcc void @"$s7closureTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}}
|
||||
sil hidden @createPartialApply : $@async @convention(thin) (Int64) -> @owned @async @callee_guaranteed (Int64) -> (Int64, @error Error) {
|
||||
bb0(%captured : $Int64):
|
||||
%closure = function_ref @closure : $@async @convention(thin) (Int64, Int64) -> (Int64, @error Error)
|
||||
|
||||
@@ -37,8 +37,8 @@ bb0:
|
||||
}
|
||||
|
||||
// CHECK-LL: @closureTu =
|
||||
// CHECK-LL: define internal swiftcc void @closure(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}}
|
||||
// CHECK-LL: define internal swiftcc void @"$s7closureTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}}
|
||||
// CHECK-LL: define internal swiftcc void @closure(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}}
|
||||
// CHECK-LL: define internal swiftcc void @"$s7closureTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}}
|
||||
sil hidden @createPartialApply : $@async @convention(thin) (Int64) -> @owned @async @callee_guaranteed (Int64) -> Int64 {
|
||||
bb0(%captured : $Int64):
|
||||
%closure = function_ref @closure : $@async @convention(thin) (Int64, Int64) -> Int64
|
||||
|
||||
@@ -25,8 +25,8 @@ bb0(%x : $Int32, %f : $@async @callee_owned (Int32) -> @out T):
|
||||
return %p : $@async @callee_owned () -> @out T
|
||||
}
|
||||
|
||||
// CHECK-LL: define internal swiftcc void @"$sTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define internal swiftcc void @"$s6calleeTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define internal swiftcc void @"$sTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define internal swiftcc void @"$s6calleeTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil @callee : $@async @convention(thin) <T> (Int32, @in_guaranteed T) -> @out T {
|
||||
entry(%out_t : $*T, %x : $Int32, %in_t : $*T):
|
||||
%printGeneric = function_ref @printGeneric : $@convention(thin) <T> (@in_guaranteed T) -> ()
|
||||
|
||||
@@ -62,8 +62,8 @@ sil_vtable C {
|
||||
struct S { var x: C, y: C }
|
||||
|
||||
// CHECK-LL: @structClassInstanceClassInstanceAndInt64ToInt64Tu =
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @structClassInstanceClassInstanceAndInt64ToInt64(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define internal swiftcc void @"$s019structClassInstancebc10AndInt64ToE0TA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @structClassInstanceClassInstanceAndInt64ToInt64(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define internal swiftcc void @"$s019structClassInstancebc10AndInt64ToE0TA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil @structClassInstanceClassInstanceAndInt64ToInt64 : $@async @convention(thin) (Int64, @guaranteed S) -> Int64 {
|
||||
entry(%in : $Int64, %s : $S):
|
||||
%s_addr = alloc_stack $S
|
||||
|
||||
@@ -42,7 +42,7 @@ entry(%value : $A2<A3>):
|
||||
// CHECK-LL: @amethodTu =
|
||||
// CHECK-LL: @repoTu =
|
||||
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @amethod(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @amethod(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil @amethod : $@async @convention(method) (@in_guaranteed A2<A3>) -> (@owned A1, @error Error) {
|
||||
entry(%a2_at_a3_addr : $*A2<A3>):
|
||||
%a2_at_a3 = load %a2_at_a3_addr : $*A2<A3>
|
||||
@@ -52,8 +52,8 @@ entry(%a2_at_a3_addr : $*A2<A3>):
|
||||
return %result : $A1
|
||||
}
|
||||
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @repo(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define internal swiftcc void @"$s7amethodTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @repo(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define internal swiftcc void @"$s7amethodTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil @repo : $@async @convention(thin) (@in_guaranteed A2<A3>) -> @owned @async @callee_guaranteed () -> (@owned A1, @error Error) {
|
||||
bb0(%0 : $*A2<A3>):
|
||||
%1 = load %0 : $*A2<A3>
|
||||
|
||||
@@ -32,7 +32,7 @@ sil_witness_table <T> BaseProducer<T> : Q module main {
|
||||
public class WeakBox<T> {}
|
||||
sil_vtable WeakBox {}
|
||||
|
||||
// CHECK-LL: define internal swiftcc void @"$s7takingQTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define internal swiftcc void @"$s7takingQTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @takingQ : $@async @convention(thin) <τ_0_0 where τ_0_0 : Q> (@owned WeakBox<τ_0_0>) -> () {
|
||||
entry(%box : $WeakBox<τ_0_0>):
|
||||
%box_addr = alloc_stack $WeakBox<τ_0_0>
|
||||
|
||||
@@ -33,7 +33,7 @@ public class WeakBox<T> {}
|
||||
sil_vtable WeakBox {}
|
||||
|
||||
// CHECK-LL: @takingQTu =
|
||||
// CHECK-LL: define hidden swiftcc void @takingQ(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define hidden swiftcc void @takingQ(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil hidden @takingQ : $@async @convention(thin) <τ_0_0 where τ_0_0 : Q> (@owned WeakBox<τ_0_0>) -> () {
|
||||
entry(%box : $WeakBox<τ_0_0>):
|
||||
%box_addr = alloc_stack $WeakBox<τ_0_0>
|
||||
@@ -45,7 +45,7 @@ entry(%box : $WeakBox<τ_0_0>):
|
||||
}
|
||||
|
||||
|
||||
// CHECK-LL: define internal swiftcc void @"$s7takingQTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define internal swiftcc void @"$s7takingQTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil public @bind_polymorphic_param_from_forwarder_parameter : $@async @convention(thin) <τ_0_1>(@in τ_0_1) -> @callee_owned @async (@owned WeakBox<BaseProducer<τ_0_1>>) -> () {
|
||||
bb0(%0 : $*τ_0_1):
|
||||
%1 = alloc_ref $WeakBox<BaseProducer<τ_0_1>>
|
||||
|
||||
@@ -60,8 +60,8 @@ sil_vtable C {
|
||||
|
||||
struct S {}
|
||||
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @structtypeSAndClassinstanceCToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define internal swiftcc void @"$s34structtypeSAndClassinstanceCToVoidTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @structtypeSAndClassinstanceCToVoid(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define internal swiftcc void @"$s34structtypeSAndClassinstanceCToVoidTA"(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil @structtypeSAndClassinstanceCToVoid : $@async @convention(thin) (@thin S.Type, @owned C) -> () {
|
||||
entry(%S_type: $@thin S.Type, %C_instance: $C):
|
||||
%S_type_addr = alloc_stack $@thick S.Type
|
||||
|
||||
@@ -18,7 +18,7 @@ import _Concurrency
|
||||
|
||||
sil public_external @printInt64 : $@convention(thin) (Int64) -> ()
|
||||
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @afun2(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @afun2(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil @afun2 : $@async @convention(thin) (Int64) -> () {
|
||||
entry(%int : $Int64):
|
||||
%print = function_ref @printInt64 : $@convention(thin) (Int64) -> ()
|
||||
@@ -26,7 +26,7 @@ entry(%int : $Int64):
|
||||
return %result : $()
|
||||
}
|
||||
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @test_apply_of_thin_to_thick(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
// CHECK-LL: define{{( dllexport)?}}{{( protected)?}} swiftcc void @test_apply_of_thin_to_thick(%swift.task* {{%[0-9]+}}, %swift.executor* {{%[0-9]+}}, %swift.context* swiftasync {{%[0-9]+}}) {{#[0-9]*}} {
|
||||
sil @test_apply_of_thin_to_thick : $@async @convention(thin) () -> () {
|
||||
entry:
|
||||
%f = function_ref @afun2 : $@async @convention(thin) (Int64) -> ()
|
||||
|
||||
@@ -119,7 +119,7 @@ class TaskContinuationFromLambda {
|
||||
|
||||
SWIFT_CC(swiftasync)
|
||||
static void invoke(AsyncTask *task, ExecutorRef executor,
|
||||
AsyncContext *context) {
|
||||
SWIFT_ASYNC_CONTEXT AsyncContext *context) {
|
||||
(*lambdaStorage)(task, executor, static_cast<Context*>(context));
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,10 @@ if(("${SWIFT_HOST_VARIANT_SDK}" STREQUAL "${SWIFT_PRIMARY_VARIANT_SDK}") AND
|
||||
("${SWIFT_HOST_VARIANT_ARCH}" STREQUAL "${SWIFT_PRIMARY_VARIANT_ARCH}"))
|
||||
|
||||
if("${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
|
||||
# Do nothing
|
||||
if(NOT SWIFT_BUILD_RUNTIME_WITH_HOST_COMPILER)
|
||||
set(CMAKE_CXX_COMPILER "${SWIFT_NATIVE_CLANG_TOOLS_PATH}/clang++")
|
||||
set(CMAKE_C_COMPILER "${SWIFT_NATIVE_CLANG_TOOLS_PATH}/clang")
|
||||
endif()
|
||||
elseif(SWIFT_BUILD_RUNTIME_WITH_HOST_COMPILER)
|
||||
if(NOT "${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
|
||||
message(FATAL_ERROR "Building the swift runtime is not supported with ${CMAKE_C_COMPILER_ID}. Use the just-built clang instead.")
|
||||
|
||||
@@ -40,7 +40,7 @@ using undeduced =
|
||||
template <class T>
|
||||
SWIFT_CC(swift)
|
||||
static void simpleTaskInvokeFunction(AsyncTask *task, ExecutorRef executor,
|
||||
AsyncContext *context) {
|
||||
SWIFT_ASYNC_CONTEXT AsyncContext *context) {
|
||||
auto valueContext = static_cast<ValueContext<T>*>(context);
|
||||
valueContext->StoredInvokeFn(task, executor, valueContext);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user