diff --git a/include/swift/AST/Builtins.def b/include/swift/AST/Builtins.def index f168751037e..ce625568a79 100644 --- a/include/swift/AST/Builtins.def +++ b/include/swift/AST/Builtins.def @@ -926,17 +926,6 @@ BUILTIN_MISC_OPERATION(FlowSensitiveSelfIsolation, "flowSensitiveSelfIsolation", BUILTIN_MISC_OPERATION(FlowSensitiveDistributedSelfIsolation, "flowSensitiveDistributedSelfIsolation", "", Special) -/// endAsyncLet(): (Builtin.RawPointer) -> Void -/// -/// DEPRECATED. The swift_asyncLet_finish intrinsic and endAsyncLetLifetime -/// builtin are used instead. -/// -/// Ends and destroys an async-let. -/// The ClosureLifetimeFixup pass adds a second operand to the builtin to -/// ensure that optimizations keep the stack-allocated closure arguments alive -/// until the endAsyncLet. -BUILTIN_MISC_OPERATION_WITH_SILGEN(EndAsyncLet, "endAsyncLet", "", Special) - /// endAsyncLetLifetime(): (Builtin.RawPointer) -> Void /// /// Marks the end of an async-let's lifetime. diff --git a/lib/AST/Builtins.cpp b/lib/AST/Builtins.cpp index f0a695983da..83cf9ee6223 100644 --- a/lib/AST/Builtins.cpp +++ b/lib/AST/Builtins.cpp @@ -3382,7 +3382,6 @@ ValueDecl *swift::getBuiltinValueDecl(ASTContext &Context, Identifier Id) { case BuiltinValueKind::StartAsyncLetWithLocalBuffer: return getStartAsyncLet(Context, Id); - case BuiltinValueKind::EndAsyncLet: case BuiltinValueKind::EndAsyncLetLifetime: return getEndAsyncLet(Context, Id); diff --git a/lib/IRGen/GenBuiltin.cpp b/lib/IRGen/GenBuiltin.cpp index fc4a782fbbb..d0880b2ffcb 100644 --- a/lib/IRGen/GenBuiltin.cpp +++ b/lib/IRGen/GenBuiltin.cpp @@ -300,14 +300,6 @@ void irgen::emitBuiltinCall(IRGenFunction &IGF, const BuiltinInfo &Builtin, return; } - case BuiltinValueKind::EndAsyncLet: { - emitEndAsyncLet(IGF, args.claimNext()); - // Ignore a second operand which is inserted by ClosureLifetimeFixup and - // only used for dependency tracking. - (void)args.claimAll(); - return; - } - case BuiltinValueKind::EndAsyncLetLifetime: { IGF.Builder.CreateLifetimeEnd(args.claimNext()); // Ignore a second operand which is inserted by ClosureLifetimeFixup and diff --git a/lib/IRGen/GenConcurrency.cpp b/lib/IRGen/GenConcurrency.cpp index 34d3f046d77..1ebdc1e8a6a 100644 --- a/lib/IRGen/GenConcurrency.cpp +++ b/lib/IRGen/GenConcurrency.cpp @@ -317,15 +317,6 @@ llvm::Value *irgen::emitBuiltinStartAsyncLet(IRGenFunction &IGF, return alet; } -void irgen::emitEndAsyncLet(IRGenFunction &IGF, llvm::Value *alet) { - auto *call = - IGF.Builder.CreateCall(IGF.IGM.getEndAsyncLetFunctionPointer(), {alet}); - call->setDoesNotThrow(); - call->setCallingConv(IGF.IGM.SwiftCC); - - IGF.Builder.CreateLifetimeEnd(alet); -} - llvm::Value *irgen::emitCreateTaskGroup(IRGenFunction &IGF, SubstitutionMap subs, llvm::Value *groupFlags) { diff --git a/lib/IRGen/GenConcurrency.h b/lib/IRGen/GenConcurrency.h index 4663bf1b05c..10fd0339daa 100644 --- a/lib/IRGen/GenConcurrency.h +++ b/lib/IRGen/GenConcurrency.h @@ -78,9 +78,6 @@ llvm::Value *emitBuiltinStartAsyncLet(IRGenFunction &IGF, llvm::Value *resultBuffer, SubstitutionMap subs); -/// Emit the endAsyncLet builtin. -void emitEndAsyncLet(IRGenFunction &IGF, llvm::Value *alet); - /// Emit the createTaskGroup builtin. llvm::Value *emitCreateTaskGroup(IRGenFunction &IGF, SubstitutionMap subs, llvm::Value *groupFlags); diff --git a/lib/SIL/IR/OperandOwnership.cpp b/lib/SIL/IR/OperandOwnership.cpp index 1a78adff4ac..c46c7d89326 100644 --- a/lib/SIL/IR/OperandOwnership.cpp +++ b/lib/SIL/IR/OperandOwnership.cpp @@ -941,7 +941,6 @@ BUILTIN_OPERAND_OWNERSHIP(InstantaneousUse, GetEnumTag) BUILTIN_OPERAND_OWNERSHIP(InstantaneousUse, InjectEnumTag) BUILTIN_OPERAND_OWNERSHIP(InstantaneousUse, DistributedActorAsAnyActor) BUILTIN_OPERAND_OWNERSHIP(InstantaneousUse, AddressOfRawLayout) -BUILTIN_OPERAND_OWNERSHIP(InstantaneousUse, EndAsyncLet) BUILTIN_OPERAND_OWNERSHIP(InstantaneousUse, EndAsyncLetLifetime) BUILTIN_OPERAND_OWNERSHIP(InstantaneousUse, CreateTaskGroup) BUILTIN_OPERAND_OWNERSHIP(InstantaneousUse, CreateTaskGroupWithFlags) diff --git a/lib/SIL/IR/ValueOwnership.cpp b/lib/SIL/IR/ValueOwnership.cpp index dc52a899643..129003801b3 100644 --- a/lib/SIL/IR/ValueOwnership.cpp +++ b/lib/SIL/IR/ValueOwnership.cpp @@ -649,7 +649,6 @@ CONSTANT_OWNERSHIP_BUILTIN(None, BuildOrdinarySerialExecutorRef) CONSTANT_OWNERSHIP_BUILTIN(None, BuildComplexEqualitySerialExecutorRef) CONSTANT_OWNERSHIP_BUILTIN(None, BuildDefaultActorExecutorRef) CONSTANT_OWNERSHIP_BUILTIN(None, BuildMainActorExecutorRef) -CONSTANT_OWNERSHIP_BUILTIN(None, EndAsyncLet) CONSTANT_OWNERSHIP_BUILTIN(None, StartAsyncLetWithLocalBuffer) CONSTANT_OWNERSHIP_BUILTIN(None, EndAsyncLetLifetime) CONSTANT_OWNERSHIP_BUILTIN(None, CreateTaskGroup) diff --git a/lib/SIL/Utils/MemAccessUtils.cpp b/lib/SIL/Utils/MemAccessUtils.cpp index 3eee84427be..f910b65fdf8 100644 --- a/lib/SIL/Utils/MemAccessUtils.cpp +++ b/lib/SIL/Utils/MemAccessUtils.cpp @@ -2655,7 +2655,6 @@ static void visitBuiltinAddress(BuiltinInst *builtin, case BuiltinValueKind::DestroyDefaultActor: case BuiltinValueKind::GetCurrentExecutor: case BuiltinValueKind::StartAsyncLetWithLocalBuffer: - case BuiltinValueKind::EndAsyncLet: case BuiltinValueKind::EndAsyncLetLifetime: case BuiltinValueKind::CreateTaskGroup: case BuiltinValueKind::CreateTaskGroupWithFlags: diff --git a/lib/SILGen/SILGenBuiltin.cpp b/lib/SILGen/SILGenBuiltin.cpp index 02dccf20c8e..aa8d41fe7b2 100644 --- a/lib/SILGen/SILGenBuiltin.cpp +++ b/lib/SILGen/SILGenBuiltin.cpp @@ -1493,13 +1493,6 @@ static ManagedValue emitBuiltinCancelAsyncTask( return SGF.emitCancelAsyncTask(loc, args[0].borrow(SGF, loc).forward(SGF)); } -// Emit SIL for the named builtin: endAsyncLet. -static ManagedValue emitBuiltinEndAsyncLet( - SILGenFunction &SGF, SILLocation loc, SubstitutionMap subs, - ArrayRef args, SGFContext C) { - return SGF.emitCancelAsyncTask(loc, args[0].borrow(SGF, loc).forward(SGF)); -} - // Emit SIL for the named builtin: getCurrentExecutor. static ManagedValue emitBuiltinGetCurrentExecutor( SILGenFunction &SGF, SILLocation loc, SubstitutionMap subs, diff --git a/lib/SILOptimizer/Transforms/AccessEnforcementReleaseSinking.cpp b/lib/SILOptimizer/Transforms/AccessEnforcementReleaseSinking.cpp index 6a3ebe41ab4..fb47dc9f7d6 100644 --- a/lib/SILOptimizer/Transforms/AccessEnforcementReleaseSinking.cpp +++ b/lib/SILOptimizer/Transforms/AccessEnforcementReleaseSinking.cpp @@ -153,7 +153,6 @@ static bool isBarrier(SILInstruction *inst) { case BuiltinValueKind::GetCurrentAsyncTask: case BuiltinValueKind::GetCurrentExecutor: case BuiltinValueKind::AutoDiffCreateLinearMapContextWithType: - case BuiltinValueKind::EndAsyncLet: case BuiltinValueKind::EndAsyncLetLifetime: case BuiltinValueKind::CreateTaskGroup: case BuiltinValueKind::CreateTaskGroupWithFlags: