[Concurrency] Enable TaskGroup/DiscardingTaskGroup in Embedded Swift

This commit is contained in:
Kuba Mracek
2024-09-28 17:52:05 -07:00
parent f787e8f173
commit f1c2334c9a
11 changed files with 249 additions and 33 deletions

View File

@@ -295,20 +295,14 @@ void irgen::emitBuiltinCall(IRGenFunction &IGF, const BuiltinInfo &Builtin,
if (Builtin.ID == BuiltinValueKind::CreateTaskGroup) {
llvm::Value *groupFlags = nullptr;
// Claim metadata pointer.
(void)args.claimAll();
assert(args.size() == 0);
out.add(emitCreateTaskGroup(IGF, substitutions, groupFlags));
return;
}
if (Builtin.ID == BuiltinValueKind::CreateTaskGroupWithFlags) {
auto groupFlags = args.claimNext();
// Claim the remaining metadata pointer.
if (args.size() == 1) {
(void)args.claimNext();
} else if (args.size() > 1) {
llvm_unreachable("createTaskGroupWithFlags expects 1 or 2 arguments");
}
assert(args.size() == 0);
out.add(emitCreateTaskGroup(IGF, substitutions, groupFlags));
return;
}