Skip to content

Commit 94b5f76

Browse files
committed
Revert "[SIL] Add SILFunctionType flag for async."
This reverts commit 9b88288.
1 parent 7fcc7ba commit 94b5f76

30 files changed

+81
-113
lines changed

include/swift/AST/Types.h

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -362,12 +362,11 @@ class alignas(1 << TypeAlignInBits) TypeBase {
362362
ID : 32
363363
);
364364

365-
SWIFT_INLINE_BITFIELD(SILFunctionType, TypeBase, NumSILExtInfoBits+1+3+1+1+2+1+1,
365+
SWIFT_INLINE_BITFIELD(SILFunctionType, TypeBase, NumSILExtInfoBits+1+3+1+2+1+1,
366366
ExtInfoBits : NumSILExtInfoBits,
367367
HasClangTypeInfo : 1,
368368
CalleeConvention : 3,
369369
HasErrorResult : 1,
370-
IsAsync : 1,
371370
CoroutineKind : 2,
372371
HasInvocationSubs : 1,
373372
HasPatternSubs : 1
@@ -3980,7 +3979,7 @@ class SILFunctionType final
39803979
+ 1);
39813980
}
39823981

3983-
SILFunctionType(GenericSignature genericSig, ExtInfo ext, bool isAsync,
3982+
SILFunctionType(GenericSignature genericSig, ExtInfo ext,
39843983
SILCoroutineKind coroutineKind,
39853984
ParameterConvention calleeConvention,
39863985
ArrayRef<SILParameterInfo> params,
@@ -3994,8 +3993,7 @@ class SILFunctionType final
39943993

39953994
public:
39963995
static CanSILFunctionType
3997-
get(GenericSignature genericSig, ExtInfo ext, bool isAsync,
3998-
SILCoroutineKind coroutineKind,
3996+
get(GenericSignature genericSig, ExtInfo ext, SILCoroutineKind coroutineKind,
39993997
ParameterConvention calleeConvention,
40003998
ArrayRef<SILParameterInfo> interfaceParams,
40013999
ArrayRef<SILYieldInfo> interfaceYields,

lib/AST/ASTContext.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3300,7 +3300,6 @@ void SILFunctionType::Profile(
33003300
SILFunctionType::SILFunctionType(
33013301
GenericSignature genericSig,
33023302
ExtInfo ext,
3303-
bool isAsync,
33043303
SILCoroutineKind coroutineKind,
33053304
ParameterConvention calleeConvention,
33063305
ArrayRef<SILParameterInfo> params,
@@ -3326,7 +3325,6 @@ SILFunctionType::SILFunctionType(
33263325
"Bits were dropped!");
33273326
static_assert(SILExtInfoBuilder::NumMaskBits == NumSILExtInfoBits,
33283327
"ExtInfo and SILFunctionTypeBitfields must agree on bit size");
3329-
Bits.SILFunctionType.IsAsync = isAsync;
33303328
Bits.SILFunctionType.CoroutineKind = unsigned(coroutineKind);
33313329
NumParameters = params.size();
33323330
if (coroutineKind == SILCoroutineKind::None) {
@@ -3470,7 +3468,7 @@ CanSILBlockStorageType SILBlockStorageType::get(CanType captureType) {
34703468

34713469
CanSILFunctionType SILFunctionType::get(
34723470
GenericSignature genericSig,
3473-
ExtInfo ext, bool isAsync, SILCoroutineKind coroutineKind,
3471+
ExtInfo ext, SILCoroutineKind coroutineKind,
34743472
ParameterConvention callee,
34753473
ArrayRef<SILParameterInfo> params,
34763474
ArrayRef<SILYieldInfo> yields,
@@ -3537,7 +3535,7 @@ CanSILFunctionType SILFunctionType::get(
35373535
}
35383536

35393537
auto fnType =
3540-
new (mem) SILFunctionType(genericSig, ext, isAsync, coroutineKind, callee,
3538+
new (mem) SILFunctionType(genericSig, ext, coroutineKind, callee,
35413539
params, yields, normalResults, errorResult,
35423540
patternSubs, invocationSubs,
35433541
ctx, properties, witnessMethodConformance);

lib/AST/ASTDemangler.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -558,8 +558,7 @@ Type ASTBuilder::createImplFunctionType(
558558
auto conv = getResultConvention(errorResult->getConvention());
559559
funcErrorResult.emplace(type, conv);
560560
}
561-
return SILFunctionType::get(genericSig, einfo,
562-
/*isAsync*/ false, funcCoroutineKind,
561+
return SILFunctionType::get(genericSig, einfo, funcCoroutineKind,
563562
funcCalleeConvention, funcParams, funcYields,
564563
funcResults, funcErrorResult,
565564
SubstitutionMap(), SubstitutionMap(), Ctx);

lib/AST/ASTPrinter.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4277,7 +4277,6 @@ class TypePrinter : public TypeVisitor<TypePrinter> {
42774277

42784278
void visitSILFunctionType(SILFunctionType *T) {
42794279
printSILCoroutineKind(T->getCoroutineKind());
4280-
printSILAsyncAttr(T->isAsync());
42814280
printFunctionExtInfo(T->getASTContext(), T->getExtInfo(),
42824281
T->getWitnessMethodConformanceOrInvalid());
42834282
printCalleeConvention(T->getCalleeConvention());

lib/AST/Type.cpp

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4378,7 +4378,6 @@ case TypeKind::Id:
43784378
return SILFunctionType::get(
43794379
fnTy->getInvocationGenericSignature(),
43804380
fnTy->getExtInfo(),
4381-
fnTy->isAsync(),
43824381
fnTy->getCoroutineKind(),
43834382
fnTy->getCalleeConvention(),
43844383
transInterfaceParams,
@@ -5372,7 +5371,7 @@ SILFunctionType::withInvocationSubstitutions(SubstitutionMap subs) const {
53725371
assert(!subs || CanGenericSignature(subs.getGenericSignature())
53735372
== getInvocationGenericSignature());
53745373
return SILFunctionType::get(getInvocationGenericSignature(),
5375-
getExtInfo(), isAsync(), getCoroutineKind(),
5374+
getExtInfo(), getCoroutineKind(),
53765375
getCalleeConvention(),
53775376
getParameters(), getYields(), getResults(),
53785377
getOptionalErrorResult(),
@@ -5390,7 +5389,7 @@ SILFunctionType::withPatternSubstitutions(SubstitutionMap subs) const {
53905389
assert(!subs || CanGenericSignature(subs.getGenericSignature())
53915390
== getPatternGenericSignature());
53925391
return SILFunctionType::get(getInvocationGenericSignature(),
5393-
getExtInfo(), isAsync(), getCoroutineKind(),
5392+
getExtInfo(), getCoroutineKind(),
53945393
getCalleeConvention(),
53955394
getParameters(), getYields(), getResults(),
53965395
getOptionalErrorResult(),
@@ -5409,7 +5408,7 @@ SILFunctionType::withPatternSpecialization(CanGenericSignature sig,
54095408
assert(!subs || CanGenericSignature(subs.getGenericSignature())
54105409
== getSubstGenericSignature());
54115410
return SILFunctionType::get(sig,
5412-
getExtInfo(), isAsync(), getCoroutineKind(),
5411+
getExtInfo(), getCoroutineKind(),
54135412
getCalleeConvention(),
54145413
getParameters(), getYields(), getResults(),
54155414
getOptionalErrorResult(),

lib/IRGen/GenProto.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3056,7 +3056,7 @@ GenericTypeRequirements::GenericTypeRequirements(IRGenModule &IGM,
30563056
// Construct a representative function type.
30573057
auto generics = ncGenerics.getCanonicalSignature();
30583058
auto fnType = SILFunctionType::get(generics, SILFunctionType::ExtInfo(),
3059-
/*isAsync*/ false, SILCoroutineKind::None,
3059+
SILCoroutineKind::None,
30603060
/*callee*/ ParameterConvention::Direct_Unowned,
30613061
/*params*/ {}, /*yields*/ {},
30623062
/*results*/ {}, /*error*/ None,

lib/IRGen/LoadableByAddress.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,6 @@ LargeSILTypeMapper::getNewSILFunctionType(GenericEnvironment *env,
297297
auto newFnType = SILFunctionType::get(
298298
fnType->getInvocationGenericSignature(),
299299
fnType->getExtInfo(),
300-
fnType->isAsync(),
301300
fnType->getCoroutineKind(),
302301
fnType->getCalleeConvention(),
303302
newParams,
@@ -2362,7 +2361,6 @@ static bool rewriteFunctionReturn(StructLoweringState &pass) {
23622361
auto NewTy = SILFunctionType::get(
23632362
loweredTy->getSubstGenericSignature(),
23642363
loweredTy->getExtInfo(),
2365-
loweredTy->isAsync(),
23662364
loweredTy->getCoroutineKind(),
23672365
loweredTy->getCalleeConvention(),
23682366
loweredTy->getParameters(),

lib/SIL/IR/SILBuilder.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,6 @@ SILType SILBuilder::getPartialApplyResultType(
107107

108108
auto appliedFnType = SILFunctionType::get(nullptr,
109109
extInfo,
110-
FTI->isAsync(),
111110
FTI->getCoroutineKind(),
112111
calleeConvention,
113112
newParams,

lib/SIL/IR/SILFunctionType.cpp

Lines changed: 24 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ CanSILFunctionType SILFunctionType::getUnsubstitutedType(SILModule &M) const {
9494
: CanGenericSignature();
9595
return SILFunctionType::get(signature,
9696
getExtInfo(),
97-
isAsync(),
9897
getCoroutineKind(),
9998
getCalleeConvention(),
10099
params, yields, results, errorResult,
@@ -288,11 +287,11 @@ SILFunctionType::getWithDifferentiability(DifferentiabilityKind kind,
288287
}
289288
auto newExtInfo =
290289
getExtInfo().intoBuilder().withDifferentiabilityKind(kind).build();
291-
return get(getInvocationGenericSignature(), newExtInfo, isAsync(),
292-
getCoroutineKind(), getCalleeConvention(), newParameters,
293-
getYields(), newResults, getOptionalErrorResult(),
294-
getPatternSubstitutions(), getInvocationSubstitutions(),
295-
getASTContext(), getWitnessMethodConformanceOrInvalid());
290+
return get(getInvocationGenericSignature(), newExtInfo, getCoroutineKind(),
291+
getCalleeConvention(), newParameters, getYields(), newResults,
292+
getOptionalErrorResult(), getPatternSubstitutions(),
293+
getInvocationSubstitutions(), getASTContext(),
294+
getWitnessMethodConformanceOrInvalid());
296295
}
297296

298297
CanSILFunctionType SILFunctionType::getWithoutDifferentiability() {
@@ -312,9 +311,9 @@ CanSILFunctionType SILFunctionType::getWithoutDifferentiability() {
312311
newResults.push_back(result.getWithDifferentiability(
313312
SILResultDifferentiability::DifferentiableOrNotApplicable));
314313
return SILFunctionType::get(
315-
getInvocationGenericSignature(), nondiffExtInfo, isAsync(),
316-
getCoroutineKind(), getCalleeConvention(), newParams, getYields(),
317-
newResults, getOptionalErrorResult(), getPatternSubstitutions(),
314+
getInvocationGenericSignature(), nondiffExtInfo, getCoroutineKind(),
315+
getCalleeConvention(), newParams, getYields(), newResults,
316+
getOptionalErrorResult(), getPatternSubstitutions(),
318317
getInvocationSubstitutions(), getASTContext());
319318
}
320319

@@ -503,9 +502,9 @@ static CanSILFunctionType getAutoDiffDifferentialType(
503502
llvm::makeArrayRef(substConformances));
504503
}
505504
return SILFunctionType::get(
506-
GenericSignature(), SILFunctionType::ExtInfo(), /*isAsync*/ false,
507-
SILCoroutineKind::None, ParameterConvention::Direct_Guaranteed,
508-
differentialParams, {}, differentialResults, None, substitutions,
505+
GenericSignature(), SILFunctionType::ExtInfo(), SILCoroutineKind::None,
506+
ParameterConvention::Direct_Guaranteed, differentialParams, {},
507+
differentialResults, None, substitutions,
509508
/*invocationSubstitutions*/ SubstitutionMap(), ctx);
510509
}
511510

@@ -682,9 +681,9 @@ static CanSILFunctionType getAutoDiffPullbackType(
682681
llvm::makeArrayRef(substConformances));
683682
}
684683
return SILFunctionType::get(
685-
GenericSignature(), SILFunctionType::ExtInfo(), /*isAsync*/ false,
686-
SILCoroutineKind::None, ParameterConvention::Direct_Guaranteed,
687-
pullbackParams, {}, pullbackResults, None, substitutions,
684+
GenericSignature(), SILFunctionType::ExtInfo(), SILCoroutineKind::None,
685+
ParameterConvention::Direct_Guaranteed, pullbackParams, {},
686+
pullbackResults, None, substitutions,
688687
/*invocationSubstitutions*/ SubstitutionMap(), ctx);
689688
}
690689

@@ -738,7 +737,7 @@ static SILFunctionType *getConstrainedAutoDiffOriginalFunctionType(
738737
constrainedInvocationGenSig->areAllParamsConcrete()
739738
? GenericSignature()
740739
: constrainedInvocationGenSig,
741-
original->getExtInfo(), original->isAsync(), original->getCoroutineKind(),
740+
original->getExtInfo(), original->getCoroutineKind(),
742741
original->getCalleeConvention(), newParameters, original->getYields(),
743742
newResults, original->getOptionalErrorResult(),
744743
/*patternSubstitutions*/ SubstitutionMap(),
@@ -829,7 +828,6 @@ CanSILFunctionType SILFunctionType::getAutoDiffDerivativeFunctionType(
829828
// cache and return.
830829
cachedResult = SILFunctionType::get(
831830
constrainedOriginalFnTy->getSubstGenericSignature(), extInfo,
832-
constrainedOriginalFnTy->isAsync(),
833831
constrainedOriginalFnTy->getCoroutineKind(),
834832
constrainedOriginalFnTy->getCalleeConvention(), newParameters,
835833
constrainedOriginalFnTy->getYields(), newResults,
@@ -915,9 +913,9 @@ CanSILFunctionType SILFunctionType::getAutoDiffTransposeFunctionType(
915913
for (auto &res : getResults())
916914
newParameters.push_back(getParameterInfoForOriginalResult(res));
917915
return SILFunctionType::get(
918-
getInvocationGenericSignature(), getExtInfo(), isAsync(),
919-
getCoroutineKind(), getCalleeConvention(), newParameters, getYields(),
920-
newResults, getOptionalErrorResult(), getPatternSubstitutions(),
916+
getInvocationGenericSignature(), getExtInfo(), getCoroutineKind(),
917+
getCalleeConvention(), newParameters, getYields(), newResults,
918+
getOptionalErrorResult(), getPatternSubstitutions(),
921919
/*invocationSubstitutions*/ {}, getASTContext());
922920
}
923921

@@ -991,8 +989,7 @@ Lowering::adjustFunctionType(CanSILFunctionType type,
991989
return type;
992990

993991
return SILFunctionType::get(type->getInvocationGenericSignature(),
994-
extInfo, type->isAsync(),
995-
type->getCoroutineKind(), callee,
992+
extInfo, type->getCoroutineKind(), callee,
996993
type->getParameters(), type->getYields(),
997994
type->getResults(),
998995
type->getOptionalErrorResult(),
@@ -1019,9 +1016,9 @@ CanSILFunctionType SILFunctionType::getWithExtInfo(ExtInfo newExt) {
10191016
: Lowering::DefaultThickCalleeConvention)
10201017
: ParameterConvention::Direct_Unowned);
10211018

1022-
return get(getInvocationGenericSignature(), newExt, isAsync(),
1023-
getCoroutineKind(), calleeConvention, getParameters(), getYields(),
1024-
getResults(), getOptionalErrorResult(), getPatternSubstitutions(),
1019+
return get(getInvocationGenericSignature(), newExt, getCoroutineKind(),
1020+
calleeConvention, getParameters(), getYields(), getResults(),
1021+
getOptionalErrorResult(), getPatternSubstitutions(),
10251022
getInvocationSubstitutions(), getASTContext(),
10261023
getWitnessMethodConformanceOrInvalid());
10271024
}
@@ -2169,8 +2166,7 @@ static CanSILFunctionType getSILFunctionType(
21692166
}
21702167
}
21712168

2172-
return SILFunctionType::get(genericSig, silExtInfo,
2173-
substFnInterfaceType->isAsync(), coroutineKind,
2169+
return SILFunctionType::get(genericSig, silExtInfo, coroutineKind,
21742170
calleeConvention, inputs, yields,
21752171
results, errorResult,
21762172
substitutions, SubstitutionMap(),
@@ -3760,7 +3756,7 @@ class SILTypeSubstituter :
37603756
? origType->getInvocationGenericSignature()
37613757
: nullptr;
37623758

3763-
return SILFunctionType::get(genericSig, extInfo, origType->isAsync(),
3759+
return SILFunctionType::get(genericSig, extInfo,
37643760
origType->getCoroutineKind(),
37653761
origType->getCalleeConvention(), substParams,
37663762
substYields, substResults, substErrorResult,

lib/SIL/IR/SILType.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -671,10 +671,9 @@ TypeBase::replaceSubstitutedSILFunctionTypesWithUnsubstituted(SILModule &M) cons
671671

672672
if (!didChange)
673673
return sft;
674-
674+
675675
return SILFunctionType::get(sft->getInvocationGenericSignature(),
676-
sft->getExtInfo(), sft->isAsync(),
677-
sft->getCoroutineKind(),
676+
sft->getExtInfo(), sft->getCoroutineKind(),
678677
sft->getCalleeConvention(),
679678
newParams, newYields, newResults,
680679
newErrorResult,

0 commit comments

Comments
 (0)