@@ -486,7 +486,7 @@ SILGenFunction::getOrCreateScope(const ast_scope::ASTScopeImpl *ASTScope,
486
486
// Collapse BraceStmtScopes whose parent is a .*BodyScope.
487
487
if (auto Parent = ASTScope->getParent ().getPtrOrNull ())
488
488
if (Parent->getSourceRangeOfThisASTNode () ==
489
- ASTScope->getSourceRangeOfThisASTNode ())
489
+ ASTScope->getSourceRangeOfThisASTNode ())
490
490
return cache (getOrCreateScope (Parent, FnScope, InlinedAt));
491
491
492
492
// The calls to defer closures have cleanup source locations pointing to the
@@ -1387,28 +1387,6 @@ void SILGenFunction::emitArtificialTopLevel(Decl *mainDecl) {
1387
1387
}
1388
1388
}
1389
1389
1390
- static bool isCreateExecutorsFunctionAvailable (SILGenModule &SGM) {
1391
- FuncDecl *createExecutorsFuncDecl = SGM.getCreateExecutors ();
1392
- if (!createExecutorsFuncDecl)
1393
- return false ;
1394
-
1395
- auto &ctx = createExecutorsFuncDecl->getASTContext ();
1396
-
1397
- if (ctx.LangOpts .hasFeature (Feature::Embedded))
1398
- return true ;
1399
-
1400
- if (!ctx.LangOpts .DisableAvailabilityChecking ) {
1401
- auto deploymentAvailability = AvailabilityRange::forDeploymentTarget (ctx);
1402
- auto runtimeAvailability = AvailabilityRange::forRuntimeTarget (ctx);
1403
- auto declAvailability = ctx.getCustomExecutorsAvailability ();
1404
- auto declRtAvailability = ctx.getCustomExecutorsRuntimeAvailability ();
1405
- return deploymentAvailability.isContainedIn (declAvailability)
1406
- && runtimeAvailability.isContainedIn (declRtAvailability);
1407
- }
1408
-
1409
- return true ;
1410
- }
1411
-
1412
1390
void SILGenFunction::emitAsyncMainThreadStart (SILDeclRef entryPoint) {
1413
1391
auto moduleLoc = entryPoint.getAsRegularLocation ();
1414
1392
auto *entryBlock = B.getInsertionBB ();
@@ -1424,51 +1402,6 @@ void SILGenFunction::emitAsyncMainThreadStart(SILDeclRef entryPoint) {
1424
1402
1425
1403
B.setInsertionPoint (entryBlock);
1426
1404
1427
- // If we're using a new enough deployment target, call swift_createExecutors()
1428
- if (ctx.LangOpts .ExecutorFactory ) {
1429
- if (!isCreateExecutorsFunctionAvailable (SGM)) {
1430
- ctx.Diags .diagnose (SourceLoc (), diag::executor_factory_not_supported);
1431
- } else {
1432
- CanType factoryTy = SGM.getExecutorFactory ()->getCanonicalType ();
1433
-
1434
- if (!factoryTy) {
1435
- ctx.Diags .diagnose (SourceLoc (), diag::cannot_find_executor_factory_type,
1436
- *ctx.LangOpts .ExecutorFactory );
1437
- }
1438
-
1439
- ProtocolDecl *executorFactoryProtocol = SGM.getExecutorFactoryProtocol ();
1440
- auto conformance = lookupConformance (factoryTy, executorFactoryProtocol);
1441
-
1442
- if (conformance.isInvalid ()) {
1443
- // If this type doesn't conform, ignore it and use the default factory
1444
- SourceLoc loc = extractNearestSourceLoc (factoryTy);
1445
-
1446
- ctx.Diags .diagnose (loc, diag::executor_factory_must_conform, factoryTy);
1447
-
1448
- factoryTy = SGM.getDefaultExecutorFactory ()->getCanonicalType ();
1449
- conformance = lookupConformance (factoryTy, executorFactoryProtocol);
1450
-
1451
- assert (!conformance.isInvalid ());
1452
- }
1453
-
1454
- FuncDecl *createExecutorsFuncDecl = SGM.getCreateExecutors ();
1455
- assert (createExecutorsFuncDecl
1456
- && " Failed to find swift_createExecutors function decl" );
1457
- SILFunction *createExecutorsSILFunc =
1458
- SGM.getFunction (SILDeclRef (createExecutorsFuncDecl, SILDeclRef::Kind::Func),
1459
- NotForDefinition);
1460
- SILValue createExecutorsFunc =
1461
- B.createFunctionRefFor (moduleLoc, createExecutorsSILFunc);
1462
- MetatypeType *factoryThickMetaTy
1463
- = MetatypeType::get (factoryTy, MetatypeRepresentation::Thick);
1464
- SILValue factorySILMetaTy
1465
- = B.createMetatype (moduleLoc, getLoweredType (factoryThickMetaTy));
1466
- auto ceSubs = SubstitutionMap::getProtocolSubstitutions (
1467
- conformance.getRequirement (), factoryTy, conformance);
1468
- B.createApply (moduleLoc, createExecutorsFunc, ceSubs, { factorySILMetaTy });
1469
- }
1470
- }
1471
-
1472
1405
auto wrapCallArgs = [this , &moduleLoc](SILValue originalValue, FuncDecl *fd,
1473
1406
uint32_t paramIndex) -> SILValue {
1474
1407
Type parameterType = fd->getParameters ()->get (paramIndex)->getTypeInContext ();
0 commit comments