Skip to content

[Type checker] Requestify the formation of an abstract generic signature #26802

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

DougGregor
Copy link
Member

@DougGregor DougGregor commented Aug 23, 2019

Introduce a request to form an abstract generic signature given a
base signature, additional generic parameters, and additional
requirements. It is meant to provide a caching layer in front of the
generic signature builder.

Switch a number of direct clients of the generic signature builder over to this
mechanism, including:

  • Formation of a generic signature for an existential type.
  • Eager, partial, and existential specializers
  • Reabstraction thunks
  • Override signatures
  • Designated initializer override signatures
  • Clang importer signature creation
  • Generic builtin creation
  • Opaque result types
  • Requirement environments

@DougGregor
Copy link
Member Author

@swift-ci please smoke test

@DougGregor
Copy link
Member Author

@swift-ci please test compiler performance

@swift-ci
Copy link
Contributor

Summary for master full

Unexpected test results, excluded stats for RxCocoa, SwifterSwift, Base64CoderSwiftUI

No regressions above thresholds

Debug-batch

debug-batch brief

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (3)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 38,747,183,083,443 38,804,870,280,789 57,687,197,346 0.15%
LLVM.NumLLVMBytesOutput 1,788,495,454 1,788,484,890 -10,564 -0.0%
time.swift-driver.wall 2929.5s 2944.7s 15.2s 0.52%

debug-batch detailed

Regressed (0)
name old new delta delta_pct
Improved (2)
name old new delta delta_pct
Driver.NumDriverPipePolls 78,365 77,228 -1,137 -1.45% ✅
Driver.NumDriverPipeReads 69,078 67,912 -1,166 -1.69% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (150)
name old new delta delta_pct
AST.NumASTBytesAllocated 51,627,006,259 51,773,789,400 146,783,141 0.28%
AST.NumDecls 140,002 140,002 0 0.0%
AST.NumDependencies 207,429 207,423 -6 -0.0%
AST.NumInfixOperators 53,782 53,782 0 0.0%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumLoadedModules 270,244 270,244 0 0.0%
AST.NumLocalTypeDecls 253 253 0 0.0%
AST.NumLookupInModule 5,438,444 5,439,537 1,093 0.02%
AST.NumLookupQualifiedInAnyObject 281 281 0 0.0%
AST.NumLookupQualifiedInModule 2,656,678 2,657,835 1,157 0.04%
AST.NumLookupQualifiedInNominal 7,317,170 7,321,067 3,897 0.05%
AST.NumModuleLookupClassMember 15,754 15,754 0 0.0%
AST.NumModuleLookupValue 38,533,598 38,534,734 1,136 0.0%
AST.NumObjCMethods 24,701 24,701 0 0.0%
AST.NumPostfixOperators 23 23 0 0.0%
AST.NumPrecedenceGroups 25,668 25,668 0 0.0%
AST.NumPrefixOperators 99 99 0 0.0%
AST.NumReferencedDynamicNames 189 189 0 0.0%
AST.NumReferencedMemberNames 6,322,382 6,322,382 0 0.0%
AST.NumReferencedTopLevelNames 477,003 477,003 0 0.0%
AST.NumSourceBuffers 302,844 302,844 0 0.0%
AST.NumSourceLines 4,685,544 4,685,544 0 0.0%
AST.NumSourceLinesPerSecond 4,817,349 4,788,224 -29,125 -0.6%
AST.NumTotalClangImportedEntities 4,986,795 4,987,773 978 0.02%
AST.NumUnqualifiedLookup 3,605,471 3,605,408 -63 -0.0%
Driver.ChildrenMaxRSS 227,802,984,448 227,747,905,536 -55,078,912 -0.02%
Driver.DriverDepCascadingDynamic 0 0 0 0.0%
Driver.DriverDepCascadingExternal 0 0 0 0.0%
Driver.DriverDepCascadingMember 0 0 0 0.0%
Driver.DriverDepCascadingNominal 0 0 0 0.0%
Driver.DriverDepCascadingTopLevel 0 0 0 0.0%
Driver.DriverDepDynamic 0 0 0 0.0%
Driver.DriverDepExternal 0 0 0 0.0%
Driver.DriverDepMember 0 0 0 0.0%
Driver.DriverDepNominal 0 0 0 0.0%
Driver.DriverDepTopLevel 0 0 0 0.0%
Driver.NumDriverJobsRun 27,904 27,904 0 0.0%
Driver.NumDriverJobsSkipped 0 0 0 0.0%
Driver.NumProcessFailures 0 0 0 0.0%
Frontend.MaxMallocUsage 952,288,083,944 952,680,928,016 392,844,072 0.04%
Frontend.NumInstructionsExecuted 38,747,183,083,443 38,804,870,280,789 57,687,197,346 0.15%
Frontend.NumProcessFailures 0 0 0 0.0%
IRModule.NumIRAliases 197,197 197,197 0 0.0%
IRModule.NumIRBasicBlocks 6,800,554 6,800,554 0 0.0%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRFunctions 3,364,031 3,364,031 0 0.0%
IRModule.NumIRGlobals 3,522,318 3,522,318 0 0.0%
IRModule.NumIRIFuncs 0 0 0 0.0%
IRModule.NumIRInsts 86,650,634 86,650,634 0 0.0%
IRModule.NumIRNamedMetaData 134,220 134,220 0 0.0%
IRModule.NumIRValueSymbols 6,231,344 6,231,344 0 0.0%
LLVM.NumLLVMBytesOutput 1,788,495,454 1,788,484,890 -10,564 -0.0%
Parse.NumFunctionsParsed 267,971 267,971 0 0.0%
Parse.NumIterableDeclContextParsed 588,478 588,481 3 0.0%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILGenFunctions 1,709,475 1,709,475 0 0.0%
SILModule.NumSILGenGlobalVariables 53,884 53,884 0 0.0%
SILModule.NumSILGenVtables 18,576 18,576 0 0.0%
SILModule.NumSILGenWitnessTables 72,169 72,169 0 0.0%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptFunctions 2,441,630 2,441,630 0 0.0%
SILModule.NumSILOptGlobalVariables 55,508 55,508 0 0.0%
SILModule.NumSILOptVtables 31,332 31,332 0 0.0%
SILModule.NumSILOptWitnessTables 157,752 157,752 0 0.0%
Sema.AccessLevelRequest 10,715,373 10,766,416 51,043 0.48%
Sema.AttachedFunctionBuilderRequest 3 3 0 0.0%
Sema.AttachedPropertyWrapperTypeRequest 515,019 515,019 0 0.0%
Sema.AttachedPropertyWrappersRequest 2,098,437 2,098,437 0 0.0%
Sema.CollectOverriddenDeclsRequest 6,367,936 6,396,058 28,122 0.44%
Sema.CursorInfoRequest 0 0 0 0.0%
Sema.CustomAttrNominalRequest 3 3 0 0.0%
Sema.DefaultAndMaxAccessLevelRequest 52,751 52,746 -5 -0.01%
Sema.DefaultDefinitionTypeRequest 7,678 7,678 0 0.0%
Sema.DefaultTypeRequest 458,934 458,934 0 0.0%
Sema.EmittedMembersRequest 25,756 25,756 0 0.0%
Sema.EnumRawTypeRequest 21,253 21,253 0 0.0%
Sema.ExistentialConformsToSelfRequest 18,496 18,524 28 0.15%
Sema.ExistentialTypeSupportedRequest 15,729 15,729 0 0.0%
Sema.ExtendedNominalRequest 5,133,645 5,137,307 3,662 0.07%
Sema.FunctionBuilderTypeRequest 3 3 0 0.0%
Sema.GetDestructorRequest 26,296 26,296 0 0.0%
Sema.HasDynamicMemberLookupAttributeRequest 0 0 0 0.0%
Sema.InheritedDeclsReferencedRequest 5,005,602 5,010,581 4,979 0.1%
Sema.InheritedTypeRequest 288,490 288,574 84 0.03%
Sema.InitKindRequest 102,150 102,150 0 0.0%
Sema.IsAccessorTransparentRequest 308,581 308,581 0 0.0%
Sema.IsDeclApplicableRequest 0 0 0 0.0%
Sema.IsDynamicRequest 1,591,894 1,591,894 0 0.0%
Sema.IsFinalRequest 2,389,923 2,394,747 4,824 0.2%
Sema.IsGetterMutatingRequest 422,917 422,917 0 0.0%
Sema.IsImplicitlyUnwrappedOptionalRequest 2,361,226 2,360,683 -543 -0.02%
Sema.IsObjCRequest 1,506,881 1,507,717 836 0.06%
Sema.IsSetterMutatingRequest 343,444 343,444 0 0.0%
Sema.LazyStoragePropertyRequest 2,155 2,155 0 0.0%
Sema.MangleLocalTypeDeclRequest 506 506 0 0.0%
Sema.NamedLazyMemberLoadFailureCount 17,728 17,724 -4 -0.02%
Sema.NamedLazyMemberLoadSuccessCount 27,371,037 27,370,201 -836 -0.0%
Sema.NominalTypeLookupDirectCount 34,706,507 34,726,344 19,837 0.06%
Sema.NumAccessorBodiesSynthesized 189,241 189,241 0 0.0%
Sema.NumAccessorsSynthesized 277,024 277,024 0 0.0%
Sema.NumConformancesDeserialized 8,016,190 8,034,702 18,512 0.23%
Sema.NumConstraintScopes 26,972,927 26,975,451 2,524 0.01%
Sema.NumConstraintsConsideredForEdgeContraction 86,008,775 86,008,981 206 0.0%
Sema.NumCyclicOneWayComponentsCollapsed 0 0 0 0.0%
Sema.NumDeclsDeserialized 61,615,183 61,738,756 123,573 0.2%
Sema.NumDeclsTypechecked 1,403,742 1,403,742 0 0.0%
Sema.NumDeclsValidated 2,411,840 2,411,841 1 0.0%
Sema.NumFunctionsTypechecked 527,252 527,252 0 0.0%
Sema.NumGenericSignatureBuilders 1,208,646 1,210,327 1,681 0.14%
Sema.NumLazyGenericEnvironments 11,385,187 11,413,283 28,096 0.25%
Sema.NumLazyGenericEnvironmentsLoaded 299,959 300,038 79 0.03%
Sema.NumLazyIterableDeclContexts 7,424,929 7,430,485 5,556 0.07%
Sema.NumLazyRequirementSignatures 739,899 740,129 230 0.03%
Sema.NumLazyRequirementSignaturesLoaded 499,720 499,938 218 0.04%
Sema.NumLeafScopes 17,342,475 17,344,642 2,167 0.01%
Sema.NumTypesDeserialized 18,363,709 18,390,842 27,133 0.15%
Sema.NumTypesValidated 1,620,146 1,620,147 1 0.0%
Sema.NumUnloadedLazyIterableDeclContexts 4,516,267 4,512,921 -3,346 -0.07%
Sema.OpaqueReadOwnershipRequest 262,198 262,198 0 0.0%
Sema.OverriddenDeclsRequest 2,203,234 2,206,966 3,732 0.17%
Sema.PropertyWrapperBackingPropertyInfoRequest 510,024 510,024 0 0.0%
Sema.PropertyWrapperBackingPropertyTypeRequest 515,019 515,019 0 0.0%
Sema.PropertyWrapperMutabilityRequest 600,401 600,401 0 0.0%
Sema.PropertyWrapperTypeInfoRequest 1 1 0 0.0%
Sema.ProtocolRequiresClassRequest 70,142 70,241 99 0.14%
Sema.ProvideDefaultImplForRequest 6,367,936 6,396,058 28,122 0.44%
Sema.RangeInfoRequest 0 0 0 0.0%
Sema.RequirementRequest 105,707 105,707 0 0.0%
Sema.RequirementSignatureRequest 574,934 575,245 311 0.05%
Sema.RequiresOpaqueAccessorsRequest 1,295,543 1,295,543 0 0.0%
Sema.RequiresOpaqueModifyCoroutineRequest 252,660 252,660 0 0.0%
Sema.ResilienceExpansionRequest 1,671,280 1,671,280 0 0.0%
Sema.ResolveProtocolNameRequest 0 0 0 0.0%
Sema.RootAndResultTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.RootTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.SelfAccessKindRequest 4,888,160 4,887,357 -803 -0.02%
Sema.SelfBoundsFromWhereClauseRequest 6,652,654 6,661,162 8,508 0.13%
Sema.SetterAccessLevelRequest 147,336 147,336 0 0.0%
Sema.StorageImplInfoRequest 1,158,037 1,158,037 0 0.0%
Sema.StoredPropertiesAndMissingMembersRequest 29,852 29,852 0 0.0%
Sema.StoredPropertiesRequest 287,532 287,532 0 0.0%
Sema.StructuralTypeRequest 0 0 0 0.0%
Sema.SuperclassDeclRequest 390,934 391,206 272 0.07%
Sema.SuperclassTypeRequest 49,019 49,019 0 0.0%
Sema.SynthesizeAccessorRequest 277,024 277,024 0 0.0%
Sema.TypeCheckFunctionBodyUntilRequest 527,252 527,252 0 0.0%
Sema.TypeDeclsFromWhereClauseRequest 28,070 28,065 -5 -0.02%
Sema.TypeRelationCheckRequest 0 0 0 0.0%
Sema.USRGenerationRequest 7,461,141 7,489,501 28,360 0.38%
Sema.UnderlyingTypeDeclsReferencedRequest 243,087 243,355 268 0.11%

Release

release brief

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (3)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 47,054,924,562,854 47,052,696,086,734 -2,228,476,120 -0.0%
LLVM.NumLLVMBytesOutput 1,541,593,646 1,541,598,606 4,960 0.0%
time.swift-driver.wall 5191.6s 5196.8s 5.2s 0.1%

release detailed

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (21)
name old new delta delta_pct
AST.NumLoadedModules 30,333 30,333 0 0.0%
AST.NumTotalClangImportedEntities 1,231,537 1,231,537 0 0.0%
IRModule.NumIRBasicBlocks 5,632,945 5,632,945 0 0.0%
IRModule.NumIRFunctions 2,856,736 2,856,736 0 0.0%
IRModule.NumIRGlobals 3,026,851 3,026,851 0 0.0%
IRModule.NumIRInsts 53,112,848 53,112,848 0 0.0%
IRModule.NumIRValueSymbols 5,526,332 5,526,332 0 0.0%
LLVM.NumLLVMBytesOutput 1,541,593,646 1,541,598,606 4,960 0.0%
SILModule.NumSILGenFunctions 1,191,466 1,191,466 0 0.0%
SILModule.NumSILOptFunctions 1,681,840 1,681,840 0 0.0%
Sema.NumConformancesDeserialized 3,930,087 3,930,087 0 0.0%
Sema.NumConstraintScopes 26,603,733 26,603,733 0 0.0%
Sema.NumDeclsDeserialized 10,453,700 10,453,700 0 0.0%
Sema.NumDeclsValidated 1,826,146 1,826,146 0 0.0%
Sema.NumFunctionsTypechecked 530,874 530,874 0 0.0%
Sema.NumGenericSignatureBuilders 295,642 293,860 -1,782 -0.6%
Sema.NumLazyGenericEnvironments 2,062,676 2,062,676 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 35,748 35,748 0 0.0%
Sema.NumLazyIterableDeclContexts 1,330,132 1,330,132 0 0.0%
Sema.NumTypesDeserialized 5,621,264 5,621,264 0 0.0%
Sema.NumTypesValidated 947,067 947,067 0 0.0%

@DougGregor
Copy link
Member Author

Smaller reduction in the number of GenericSignatureBuilders than I'd hoped. Grrr

@DougGregor
Copy link
Member Author

@swift-ci please test

@DougGregor
Copy link
Member Author

@swift-ci please test compiler performance

@DougGregor
Copy link
Member Author

@swift-ci please test

@DougGregor
Copy link
Member Author

@swift-ci please test compiler performance

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - da4fc065b505fa30a35306b99033a8e8b66f0bbb

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - da4fc065b505fa30a35306b99033a8e8b66f0bbb

@swift-ci
Copy link
Contributor

Summary for master full

Unexpected test results, excluded stats for RxCocoa, Base64CoderSwiftUI, SwifterSwift

Regressions found (see below)

Debug-batch

debug-batch brief

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (3)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 43,147,783,144,240 43,383,805,176,248 236,022,032,008 0.55%
LLVM.NumLLVMBytesOutput 1,787,597,738 1,787,668,412 70,674 0.0%
time.swift-driver.wall 4475.3s 4472.6s -2.7s -0.06%

debug-batch detailed

Regressed (6)
name old new delta delta_pct
Driver.NumDriverPipePolls 67,098 69,431 2,333 3.48% ⛔
Driver.NumDriverPipeReads 56,325 58,618 2,293 4.07% ⛔
Sema.AccessLevelRequest 12,392,551 12,605,710 213,159 1.72% ⛔
Sema.CollectOverriddenDeclsRequest 7,710,995 7,912,106 201,111 2.61% ⛔
Sema.ProvideDefaultImplForRequest 7,710,995 7,912,106 201,111 2.61% ⛔
Sema.USRGenerationRequest 8,871,331 9,081,861 210,530 2.37% ⛔
Improved (1)
name old new delta delta_pct
Sema.ClassAncestryFlagsRequest 100,661 0 -100,661 -100.0% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (146)
name old new delta delta_pct
AST.NumASTBytesAllocated 59,547,742,938 59,905,013,490 357,270,552 0.6%
AST.NumDecls 140,002 140,002 0 0.0%
AST.NumDependencies 253,397 253,427 30 0.01%
AST.NumInfixOperators 53,782 53,782 0 0.0%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumLoadedModules 321,736 321,736 0 0.0%
AST.NumLocalTypeDecls 253 253 0 0.0%
AST.NumLookupInModule 6,079,658 6,095,704 16,046 0.26%
AST.NumLookupQualifiedInAnyObject 281 281 0 0.0%
AST.NumLookupQualifiedInModule 3,010,588 3,026,979 16,391 0.54%
AST.NumLookupQualifiedInNominal 7,746,914 7,774,401 27,487 0.35%
AST.NumModuleLookupClassMember 15,754 15,754 0 0.0%
AST.NumModuleLookupValue 41,518,340 41,534,597 16,257 0.04%
AST.NumObjCMethods 24,701 24,701 0 0.0%
AST.NumPostfixOperators 23 23 0 0.0%
AST.NumPrecedenceGroups 25,668 25,668 0 0.0%
AST.NumPrefixOperators 99 99 0 0.0%
AST.NumReferencedDynamicNames 189 189 0 0.0%
AST.NumReferencedMemberNames 6,319,270 6,322,367 3,097 0.05%
AST.NumReferencedTopLevelNames 477,030 477,030 0 0.0%
AST.NumSourceBuffers 395,556 395,556 0 0.0%
AST.NumSourceLines 4,685,544 4,685,544 0 0.0%
AST.NumSourceLinesPerSecond 3,479,673 3,481,767 2,094 0.06%
AST.NumTotalClangImportedEntities 5,665,069 5,672,423 7,354 0.13%
AST.NumUnqualifiedLookup 3,917,665 3,917,303 -362 -0.01%
Driver.ChildrenMaxRSS 194,956,945,408 196,279,248,896 1,322,303,488 0.68%
Driver.DriverDepCascadingDynamic 0 0 0 0.0%
Driver.DriverDepCascadingExternal 0 0 0 0.0%
Driver.DriverDepCascadingMember 0 0 0 0.0%
Driver.DriverDepCascadingNominal 0 0 0 0.0%
Driver.DriverDepCascadingTopLevel 0 0 0 0.0%
Driver.DriverDepDynamic 0 0 0 0.0%
Driver.DriverDepExternal 0 0 0 0.0%
Driver.DriverDepMember 0 0 0 0.0%
Driver.DriverDepNominal 0 0 0 0.0%
Driver.DriverDepTopLevel 0 0 0 0.0%
Driver.NumDriverJobsRun 27,904 27,904 0 0.0%
Driver.NumDriverJobsSkipped 0 0 0 0.0%
Driver.NumProcessFailures 0 0 0 0.0%
Frontend.MaxMallocUsage 978,955,930,192 982,328,367,384 3,372,437,192 0.34%
Frontend.NumInstructionsExecuted 43,147,783,144,240 43,383,805,176,248 236,022,032,008 0.55%
Frontend.NumProcessFailures 0 0 0 0.0%
IRModule.NumIRAliases 197,197 197,197 0 0.0%
IRModule.NumIRBasicBlocks 6,800,530 6,800,554 24 0.0%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRFunctions 3,364,031 3,364,031 0 0.0%
IRModule.NumIRGlobals 3,522,317 3,522,317 0 0.0%
IRModule.NumIRIFuncs 0 0 0 0.0%
IRModule.NumIRInsts 86,650,442 86,650,634 192 0.0%
IRModule.NumIRNamedMetaData 134,220 134,220 0 0.0%
IRModule.NumIRValueSymbols 6,231,344 6,231,344 0 0.0%
LLVM.NumLLVMBytesOutput 1,787,597,738 1,787,668,412 70,674 0.0%
Parse.NumFunctionsParsed 267,971 267,971 0 0.0%
Parse.NumIterableDeclContextParsed 714,048 714,061 13 0.0%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILGenFunctions 1,709,475 1,709,475 0 0.0%
SILModule.NumSILGenGlobalVariables 53,884 53,884 0 0.0%
SILModule.NumSILGenVtables 18,576 18,576 0 0.0%
SILModule.NumSILGenWitnessTables 72,169 72,169 0 0.0%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptFunctions 2,441,634 2,441,630 -4 -0.0%
SILModule.NumSILOptGlobalVariables 55,508 55,508 0 0.0%
SILModule.NumSILOptVtables 31,332 31,332 0 0.0%
SILModule.NumSILOptWitnessTables 157,752 157,752 0 0.0%
Sema.AttachedFunctionBuilderRequest 3 3 0 0.0%
Sema.AttachedPropertyWrapperTypeRequest 515,429 515,429 0 0.0%
Sema.AttachedPropertyWrappersRequest 2,132,747 2,132,747 0 0.0%
Sema.CursorInfoRequest 0 0 0 0.0%
Sema.CustomAttrNominalRequest 3 3 0 0.0%
Sema.DefaultAndMaxAccessLevelRequest 54,969 54,973 4 0.01%
Sema.DefaultDefinitionTypeRequest 7,903 7,903 0 0.0%
Sema.DefaultTypeRequest 459,631 459,631 0 0.0%
Sema.EmittedMembersRequest 26,648 26,648 0 0.0%
Sema.EnumRawTypeRequest 22,799 22,799 0 0.0%
Sema.ExistentialConformsToSelfRequest 20,885 20,895 10 0.05%
Sema.ExistentialTypeSupportedRequest 16,539 16,539 0 0.0%
Sema.ExtendedNominalRequest 5,912,909 5,944,424 31,515 0.53%
Sema.FunctionBuilderTypeRequest 3 3 0 0.0%
Sema.GetDestructorRequest 27,132 27,132 0 0.0%
Sema.HasDynamicMemberLookupAttributeRequest 0 0 0 0.0%
Sema.InheritedDeclsReferencedRequest 5,701,914 5,727,511 25,597 0.45%
Sema.InheritedTypeRequest 307,093 305,421 -1,672 -0.54%
Sema.InitKindRequest 106,451 106,451 0 0.0%
Sema.IsAccessorTransparentRequest 315,162 315,162 0 0.0%
Sema.IsDeclApplicableRequest 0 0 0 0.0%
Sema.IsDynamicRequest 1,626,868 1,626,868 0 0.0%
Sema.IsFinalRequest 2,620,014 2,626,716 6,702 0.26%
Sema.IsGetterMutatingRequest 434,048 434,048 0 0.0%
Sema.IsImplicitlyUnwrappedOptionalRequest 2,450,533 2,450,775 242 0.01%
Sema.IsObjCRequest 1,566,267 1,566,085 -182 -0.01%
Sema.IsSetterMutatingRequest 347,741 347,741 0 0.0%
Sema.LazyStoragePropertyRequest 2,400 2,400 0 0.0%
Sema.MangleLocalTypeDeclRequest 506 506 0 0.0%
Sema.NamedLazyMemberLoadFailureCount 19,696 19,717 21 0.11%
Sema.NamedLazyMemberLoadSuccessCount 28,553,197 28,586,657 33,460 0.12%
Sema.NominalTypeLookupDirectCount 35,952,691 36,182,843 230,152 0.64%
Sema.NumAccessorBodiesSynthesized 189,252 189,252 0 0.0%
Sema.NumAccessorsSynthesized 289,230 289,230 0 0.0%
Sema.NumConformancesDeserialized 9,060,096 9,131,230 71,134 0.79%
Sema.NumConstraintScopes 27,078,196 27,081,758 3,562 0.01%
Sema.NumConstraintsConsideredForEdgeContraction 86,043,896 86,044,732 836 0.0%
Sema.NumCyclicOneWayComponentsCollapsed 0 0 0 0.0%
Sema.NumDeclsDeserialized 70,809,182 71,470,982 661,800 0.93%
Sema.NumDeclsTypechecked 1,403,505 1,403,505 0 0.0%
Sema.NumDeclsValidated 2,493,265 2,493,235 -30 -0.0%
Sema.NumFunctionsTypechecked 527,252 527,252 0 0.0%
Sema.NumGenericSignatureBuilders 1,349,369 1,351,163 1,794 0.13%
Sema.NumLazyGenericEnvironments 12,845,324 12,950,538 105,214 0.82%
Sema.NumLazyGenericEnvironmentsLoaded 311,591 311,588 -3 -0.0%
Sema.NumLazyIterableDeclContexts 8,498,014 8,539,927 41,913 0.49%
Sema.NumLazyRequirementSignatures 857,445 862,642 5,197 0.61%
Sema.NumLazyRequirementSignaturesLoaded 568,849 571,484 2,635 0.46%
Sema.NumLeafScopes 17,428,242 17,431,330 3,088 0.02%
Sema.NumTypesDeserialized 20,751,230 20,825,774 74,544 0.36%
Sema.NumTypesValidated 1,706,299 1,706,281 -18 -0.0%
Sema.NumUnloadedLazyIterableDeclContexts 5,177,286 5,189,553 12,267 0.24%
Sema.OpaqueReadOwnershipRequest 273,007 273,007 0 0.0%
Sema.OverriddenDeclsRequest 2,426,103 2,432,311 6,208 0.26%
Sema.PropertyWrapperBackingPropertyInfoRequest 510,305 510,305 0 0.0%
Sema.PropertyWrapperBackingPropertyTypeRequest 515,429 515,429 0 0.0%
Sema.PropertyWrapperMutabilityRequest 612,163 612,163 0 0.0%
Sema.PropertyWrapperTypeInfoRequest 1 1 0 0.0%
Sema.ProtocolRequiresClassRequest 80,724 80,718 -6 -0.01%
Sema.RangeInfoRequest 0 0 0 0.0%
Sema.RequirementRequest 108,452 108,447 -5 -0.0%
Sema.RequirementSignatureRequest 655,983 658,612 2,629 0.4%
Sema.RequiresOpaqueAccessorsRequest 1,311,500 1,311,500 0 0.0%
Sema.RequiresOpaqueModifyCoroutineRequest 264,389 264,389 0 0.0%
Sema.ResilienceExpansionRequest 1,748,109 1,748,085 -24 -0.0%
Sema.ResolveProtocolNameRequest 0 0 0 0.0%
Sema.RootAndResultTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.RootTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.SelfAccessKindRequest 5,526,858 5,533,834 6,976 0.13%
Sema.SelfBoundsFromWhereClauseRequest 7,502,628 7,570,927 68,299 0.91%
Sema.SetterAccessLevelRequest 149,654 149,654 0 0.0%
Sema.StorageImplInfoRequest 1,182,857 1,182,857 0 0.0%
Sema.StoredPropertiesAndMissingMembersRequest 30,980 30,980 0 0.0%
Sema.StoredPropertiesRequest 314,826 314,826 0 0.0%
Sema.StructuralTypeRequest 0 0 0 0.0%
Sema.SuperclassDeclRequest 440,125 441,736 1,611 0.37%
Sema.SuperclassTypeRequest 52,020 52,020 0 0.0%
Sema.SynthesizeAccessorRequest 289,230 289,230 0 0.0%
Sema.TypeCheckFunctionBodyUntilRequest 527,252 527,252 0 0.0%
Sema.TypeDeclsFromWhereClauseRequest 28,960 28,964 4 0.01%
Sema.TypeRelationCheckRequest 0 0 0 0.0%
Sema.UnderlyingTypeDeclsReferencedRequest 274,304 274,712 408 0.15%

Release

release brief

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (3)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 47,237,759,216,755 47,257,340,421,135 19,581,204,380 0.04%
LLVM.NumLLVMBytesOutput 1,538,872,810 1,541,595,546 2,722,736 0.18%
time.swift-driver.wall 7548.9s 7532.8s -16.1s -0.21%

release detailed

Regressed (0)
name old new delta delta_pct
Improved (1)
name old new delta delta_pct
Sema.NumGenericSignatureBuilders 295,123 291,653 -3,470 -1.18% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (20)
name old new delta delta_pct
AST.NumLoadedModules 30,333 30,333 0 0.0%
AST.NumTotalClangImportedEntities 1,231,541 1,231,537 -4 -0.0%
IRModule.NumIRBasicBlocks 5,632,945 5,632,945 0 0.0%
IRModule.NumIRFunctions 2,856,736 2,856,736 0 0.0%
IRModule.NumIRGlobals 3,026,851 3,026,851 0 0.0%
IRModule.NumIRInsts 53,112,662 53,112,848 186 0.0%
IRModule.NumIRValueSymbols 5,526,332 5,526,332 0 0.0%
LLVM.NumLLVMBytesOutput 1,538,872,810 1,541,595,546 2,722,736 0.18%
SILModule.NumSILGenFunctions 1,191,466 1,191,466 0 0.0%
SILModule.NumSILOptFunctions 1,681,226 1,681,840 614 0.04%
Sema.NumConformancesDeserialized 3,928,135 3,930,087 1,952 0.05%
Sema.NumConstraintScopes 26,603,733 26,603,733 0 0.0%
Sema.NumDeclsDeserialized 10,409,724 10,453,700 43,976 0.42%
Sema.NumDeclsValidated 1,826,146 1,826,146 0 0.0%
Sema.NumFunctionsTypechecked 530,874 530,874 0 0.0%
Sema.NumLazyGenericEnvironments 2,062,264 2,062,676 412 0.02%
Sema.NumLazyGenericEnvironmentsLoaded 35,748 35,748 0 0.0%
Sema.NumLazyIterableDeclContexts 1,326,477 1,330,132 3,655 0.28%
Sema.NumTypesDeserialized 5,617,165 5,621,264 4,099 0.07%
Sema.NumTypesValidated 947,067 947,067 0 0.0%

@DougGregor DougGregor force-pushed the abstract-generic-signature-request branch from 901a586 to 4d611eb Compare August 26, 2019 06:52
@DougGregor
Copy link
Member Author

@swift-ci please test and merge

1 similar comment
@DougGregor
Copy link
Member Author

@swift-ci please test and merge

@DougGregor DougGregor force-pushed the abstract-generic-signature-request branch from 4d611eb to 22df882 Compare August 26, 2019 13:46
@DougGregor
Copy link
Member Author

@swift-ci please smoke test and merge

2 similar comments
@DougGregor
Copy link
Member Author

@swift-ci please smoke test and merge

@DougGregor
Copy link
Member Author

@swift-ci please smoke test and merge

Introduce a request to form an abstract generic signature given a
base signature, additional generic parameters, and additional
requirements. It is meant to provide a caching layer in front of the
generic signature builder.

Switch one direct client of the generic signature builder over to this
mechanism, the formation of a generic signature for an existential
type.
Eliminates another hardcoded, non-cached use of the generic signature
builder.
Partial specialization had its own form of generic signature builder
use, which maps well to the new abstract generic signature
request. Use it.
If we are creating a generic signature without any requirements, we
can form the signature directly; it's well-formed by definition.
When a request for an abstract generic signature contains noncanonical
types, first compute the abstract generic signature for the
canonicalized types, then map back to the provided generic
parameters. Clients of this request generally work in canonical types
already, but it's a small win.
Rather than storing the set of input requirements in a
(SIL)SpecializeAttr, store the specialized generic signature. This
prevents clients from having to rebuild the same specialized generic
signature on every use.
Print the requirements that are in the `@_specialize` signature but aren’t
part of the enclosing context, matching the previous form but after
semantic analysis.
@DougGregor DougGregor force-pushed the abstract-generic-signature-request branch from 50e7b39 to 7883dc2 Compare August 26, 2019 16:55
@DougGregor
Copy link
Member Author

@swift-ci please smoke test and merge

1 similar comment
@DougGregor
Copy link
Member Author

@swift-ci please smoke test and merge

@swift-ci swift-ci merged commit aed25d1 into swiftlang:master Aug 26, 2019
@DougGregor DougGregor deleted the abstract-generic-signature-request branch August 26, 2019 19:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants