Skip to content

GSB: Rewrite getConformanceAccessPath(), again #37296

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

slavapestov
Copy link
Contributor

The new approach is to not look at RequirementSources at all. Instead,
we exhaustively enumerate all conformance access paths, beginning
from the root conformance requirements in the signature, then doing
all conformance requirements from those protocols' requirement
signatures, and so on.

We enumerate conformance access paths in breadth first order by
length until we find the one we want. The results are memoized.

This fixes a regression with another change I'm working on. The
test case does not fail with this PR alone, but I'm adding it now
anyway.

The new approach is to not look at RequirementSources at all. Instead,
we exhaustively enumerate all conformance access paths, beginning
from the root conformance requirements in the signature, then doing
all conformance requirements from those protocols' requirement
signatures, and so on.

We enumerate conformance access paths in breadth first order by
length until we find the one we want. The results are memoized.

This fixes a regression with another change I'm working on. The
test case does not fail with this PR alone, but I'm adding it now
anyway.
@slavapestov
Copy link
Contributor Author

@swift-ci Please smoke test

@slavapestov
Copy link
Contributor Author

@swift-ci Please test source compatibility

@slavapestov
Copy link
Contributor Author

@swift-ci Please test compiler performance

@swift-ci
Copy link
Contributor

swift-ci commented May 7, 2021

Summary for main full

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) (2)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 21,837,783,435,751 21,769,271,148,434 -68,512,287,317 -0.31%
LLVM.NumLLVMBytesOutput 820,748,280 820,764,836 16,556 0.0%

debug-batch detailed

Regressed (1)
name old new delta delta_pct
Sema.LookupPrefixOperatorRequest 53 54 1 1.89% ⛔
Improved (1)
name old new delta delta_pct
Frontend.NumProcessFailures 38 35 -3 -7.89% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (248)
name old new delta delta_pct
AST.ImportSetCacheHit 1,109,949 1,109,743 -206 -0.02%
AST.ImportSetCacheMiss 251,385 251,398 13 0.01%
AST.ImportSetFoldHit 94,137 94,139 2 0.0%
AST.ImportSetFoldMiss 157,248 157,258 10 0.01%
AST.ModuleShadowCacheHit 1,541 1,541 0 0.0%
AST.ModuleShadowCacheMiss 613 613 0 0.0%
AST.ModuleVisibilityCacheHit 24,092 24,103 11 0.05%
AST.ModuleVisibilityCacheMiss 3,890 3,894 4 0.1%
AST.NumASTBytesAllocated 23,986,078,526 23,990,865,251 4,786,725 0.02%
AST.NumASTScopeExpansions 3,252,230 3,252,285 55 0.0%
AST.NumASTScopeLookups 2,984,748 2,984,253 -495 -0.02%
AST.NumDecls 62,291 62,282 -9 -0.01%
AST.NumDependencies 224,925 225,004 79 0.04%
AST.NumIncrementalDependencies 7,858 7,858 0 0.0%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumLoadedModules 148,266 148,277 11 0.01%
AST.NumLocalTypeDecls 173 173 0 0.0%
AST.NumModuleLookupClassMember 3,437 3,437 0 0.0%
AST.NumModuleLookupValue 36,204,606 36,201,960 -2,646 -0.01%
AST.NumObjCMethods 23,446 23,445 -1 -0.0%
AST.NumOperators 352 352 0 0.0%
AST.NumPrecedenceGroups 56 56 0 0.0%
AST.NumReferencedDynamicNames 75 75 0 0.0%
AST.NumReferencedMemberNames 5,709,193 5,709,008 -185 -0.0%
AST.NumReferencedTopLevelNames 540,430 540,425 -5 -0.0%
AST.NumSourceBuffers 267,198 267,197 -1 -0.0%
AST.NumSourceLines 2,254,942 2,254,836 -106 -0.0%
AST.NumSourceLinesPerSecond 1,486,174 1,492,587 6,413 0.43%
AST.NumTotalClangImportedEntities 2,264,358 2,262,993 -1,365 -0.06%
Frontend.MaxMallocUsage 414,801,116,072 410,897,957,832 -3,903,158,240 -0.94%
Frontend.NumInstructionsExecuted 21,837,783,435,751 21,769,271,148,434 -68,512,287,317 -0.31%
IRGen.IRGenRequest 11,895 11,895 0 0.0%
IRGen.OptimizedIRRequest 0 0 0 0.0%
IRGen.SymbolObjectCodeRequest 0 0 0 0.0%
IRModule.NumGOTEntries 96,179 96,179 0 0.0%
IRModule.NumIRAliases 102,590 102,590 0 0.0%
IRModule.NumIRBasicBlocks 3,112,712 3,112,712 0 0.0%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRFunctions 1,580,250 1,580,250 0 0.0%
IRModule.NumIRGlobals 1,695,010 1,695,016 6 0.0%
IRModule.NumIRIFuncs 0 0 0 0.0%
IRModule.NumIRInsts 35,287,343 35,287,381 38 0.0%
IRModule.NumIRNamedMetaData 61,620 61,620 0 0.0%
IRModule.NumIRValueSymbols 3,050,349 3,050,355 6 0.0%
LLVM.NumLLVMBytesOutput 820,748,280 820,764,836 16,556 0.0%
Parse.CodeCompletionSecondPassRequest 0 0 0 0.0%
Parse.NumFunctionsParsed 125,043 125,008 -35 -0.03%
Parse.NumIterableDeclContextParsed 360,625 360,674 49 0.01%
Parse.ParseAbstractFunctionBodyRequest 112,315 112,299 -16 -0.01%
Parse.ParseMembersRequest 499,967 500,027 60 0.01%
Parse.ParseSourceFileRequest 261,226 261,237 11 0.0%
SILGen.ASTLoweringRequest 12,467 12,467 0 0.0%
SILGen.ParseSILModuleRequest 0 0 0 0.0%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILGenFunctions 983,764 983,764 0 0.0%
SILModule.NumSILGenGlobalVariables 21,261 21,261 0 0.0%
SILModule.NumSILGenVtables 12,010 12,010 0 0.0%
SILModule.NumSILGenWitnessTables 64,869 64,869 0 0.0%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptFunctions 1,182,040 1,182,040 0 0.0%
SILModule.NumSILOptGlobalVariables 22,102 22,102 0 0.0%
SILModule.NumSILOptVtables 12,038 12,038 0 0.0%
SILModule.NumSILOptWitnessTables 82,122 82,122 0 0.0%
SILOptimizer.ExecuteSILPipelineRequest 48,173 48,173 0 0.0%
SILOptimizer.LoweredSILRequest 0 0 0 0.0%
Sema.ABIMembersRequest 43,602 43,597 -5 -0.01%
Sema.AbstractGenericSignatureRequest 16,842 16,841 -1 -0.01%
Sema.AccessLevelRequest 5,981,699 5,980,788 -911 -0.02%
Sema.ActorIsolationRequest 1,471,118 1,471,174 56 0.0%
Sema.AllMembersRequest 76,017 76,017 0 0.0%
Sema.AnyObjectLookupRequest 107 107 0 0.0%
Sema.ApplyAccessNoteRequest 986,196 985,953 -243 -0.02%
Sema.AreAllStoredPropertiesDefaultInitableRequest 9,619 9,619 0 0.0%
Sema.AsyncAlternativeRequest 0 0 0 0.0%
Sema.AttachedPropertyWrapperTypeRequest 4,077 4,078 1 0.02%
Sema.AttachedPropertyWrappersRequest 61,138,605 61,137,451 -1,154 -0.0%
Sema.AttachedResultBuilderRequest 319,520 319,474 -46 -0.01%
Sema.BodyInitKindRequest 21,853 21,848 -5 -0.02%
Sema.CallerSideDefaultArgExprRequest 45,536 45,536 0 0.0%
Sema.CanBeAsyncHandlerRequest 0 0 0 0.0%
Sema.CheckInconsistentImplementationOnlyImportsRequest 4,766 4,767 1 0.02%
Sema.CheckRedeclarationRequest 433,902 433,863 -39 -0.01%
Sema.ClassAncestryFlagsRequest 61,575 61,568 -7 -0.01%
Sema.ClosureHasExplicitResultRequest 36,976 37,040 64 0.17%
Sema.CodeCompletionFileRequest 0 0 0 0.0%
Sema.CollectOverriddenDeclsRequest 3,362,158 3,360,484 -1,674 -0.05%
Sema.CompareDeclSpecializationRequest 235,860 235,495 -365 -0.15%
Sema.ConditionalRequirementsRequest 234,829 234,841 12 0.01%
Sema.ConformanceHasEffectRequest 0 0 0 0.0%
Sema.CursorInfoRequest 0 0 0 0.0%
Sema.CustomAttrNominalRequest 1,560 1,560 0 0.0%
Sema.CustomAttrTypeRequest 494 494 0 0.0%
Sema.DefaultAndMaxAccessLevelRequest 28,162 28,156 -6 -0.02%
Sema.DefaultArgumentExprRequest 19,576 19,575 -1 -0.01%
Sema.DefaultArgumentInitContextRequest 153 153 0 0.0%
Sema.DefaultDefinitionTypeRequest 2,827 2,829 2 0.07%
Sema.DefaultTypeRequest 114,483 114,515 32 0.03%
Sema.DerivativeAttrOriginalDeclRequest 0 0 0 0.0%
Sema.DifferentiableAttributeTypeCheckRequest 0 0 0 0.0%
Sema.DirectLookupRequest 21,101,644 21,097,285 -4,359 -0.02%
Sema.DirectOperatorLookupRequest 671,681 671,824 143 0.02%
Sema.DirectPrecedenceGroupLookupRequest 358,365 358,406 41 0.01%
Sema.DynamicallyReplacedDeclRequest 498,915 498,868 -47 -0.01%
Sema.EnumRawTypeRequest 14,309 14,309 0 0.0%
Sema.EnumRawValuesRequest 5,562 5,562 0 0.0%
Sema.ExistentialConformsToSelfRequest 10,091 10,092 1 0.01%
Sema.ExistentialTypeSupportedRequest 8,829 8,829 0 0.0%
Sema.ExtendedNominalRequest 428,350 428,425 75 0.02%
Sema.ExtendedTypeRequest 37,369 37,352 -17 -0.05%
Sema.FragileFunctionKindRequest 708,962 708,955 -7 -0.0%
Sema.FunctionOperatorRequest 5,579 5,581 2 0.04%
Sema.GenericParamListRequest 2,514,587 2,514,180 -407 -0.02%
Sema.GenericSignatureRequest 1,480,646 1,480,024 -622 -0.04%
Sema.GetDestructorRequest 12,758 12,754 -4 -0.03%
Sema.GetImplicitSendableRequest 87,628 87,911 283 0.32%
Sema.GlobalActorAttributeRequest 1,749,560 1,749,693 133 0.01%
Sema.GlobalActorInstanceRequest 129 129 0 0.0%
Sema.HasCircularInheritedProtocolsRequest 5,249 5,247 -2 -0.04%
Sema.HasCircularRawValueRequest 3,772 3,772 0 0.0%
Sema.HasDefaultInitRequest 24,283 24,275 -8 -0.03%
Sema.HasDynamicCallableAttributeRequest 0 0 0 0.0%
Sema.HasDynamicMemberLookupAttributeRequest 292,662 292,450 -212 -0.07%
Sema.HasImplementationOnlyImportsRequest 260,422 260,433 11 0.0%
Sema.HasMemberwiseInitRequest 9,115 9,115 0 0.0%
Sema.HasMissingDesignatedInitializersRequest 10,738 10,737 -1 -0.01%
Sema.HasUserDefinedDesignatedInitRequest 24,295 24,287 -8 -0.03%
Sema.InferredGenericSignatureRequest 106,208 106,143 -65 -0.06%
Sema.InheritedDeclsReferencedRequest 3,418,662 3,415,495 -3,167 -0.09%
Sema.InheritedProtocolsRequest 321,190 321,027 -163 -0.05%
Sema.InheritedTypeRequest 164,144 163,807 -337 -0.21%
Sema.InheritsSuperclassInitializersRequest 15,723 15,718 -5 -0.03%
Sema.InitKindRequest 46,537 46,531 -6 -0.01%
Sema.InterfaceTypeRequest 6,774,921 6,773,459 -1,462 -0.02%
Sema.IsABICompatibleOverrideRequest 61,615 61,615 0 0.0%
Sema.IsAccessorTransparentRequest 158,818 158,823 5 0.0%
Sema.IsActorRequest 537,289 537,223 -66 -0.01%
Sema.IsAsyncHandlerRequest 760,169 760,194 25 0.0%
Sema.IsCallableNominalTypeRequest 961 960 -1 -0.1%
Sema.IsDeclApplicableRequest 0 0 0 0.0%
Sema.IsDeclRefinementOfRequest 16,958 16,964 6 0.04%
Sema.IsDefaultActorRequest 19,805 19,805 0 0.0%
Sema.IsDynamicRequest 814,745 814,707 -38 -0.0%
Sema.IsFinalRequest 1,317,774 1,317,829 55 0.0%
Sema.IsGetterMutatingRequest 220,256 220,276 20 0.01%
Sema.IsImplicitlyUnwrappedOptionalRequest 1,226,629 1,226,268 -361 -0.03%
Sema.IsObjCRequest 760,280 760,199 -81 -0.01%
Sema.IsSetterMutatingRequest 162,406 162,422 16 0.01%
Sema.IsStaticRequest 1,300,804 1,300,678 -126 -0.01%
Sema.LazyStoragePropertyRequest 3,329 3,329 0 0.0%
Sema.LookupAllConformancesInContextRequest 752,633 753,223 590 0.08%
Sema.LookupConformanceInModuleRequest 17,484,974 17,483,969 -1,005 -0.01%
Sema.LookupInModuleRequest 3,720,166 3,717,139 -3,027 -0.08%
Sema.LookupInfixOperatorRequest 22,772 22,777 5 0.02%
Sema.LookupPostfixOperatorRequest 29 29 0 0.0%
Sema.LookupPrecedenceGroupRequest 12,525 12,527 2 0.02%
Sema.MangleLocalTypeDeclRequest 346 346 0 0.0%
Sema.ModuleImplicitImportsRequest 5,331 5,332 1 0.02%
Sema.ModuleLibraryLevelRequest 0 0 0 0.0%
Sema.ModuleQualifiedLookupRequest 1,603,791 1,601,120 -2,671 -0.17%
Sema.NamedLazyMemberLoadSuccessCount 12,613,528 12,611,648 -1,880 -0.01%
Sema.NamingPatternRequest 120,564 120,615 51 0.04%
Sema.NeedsNewVTableEntryRequest 366,845 366,845 0 0.0%
Sema.NumAccessorBodiesSynthesized 88,825 88,813 -12 -0.01%
Sema.NumAccessorsSynthesized 166,175 166,164 -11 -0.01%
Sema.NumConformancesDeserialized 4,117,224 4,114,343 -2,881 -0.07%
Sema.NumConstraintScopes 7,936,682 7,936,817 135 0.0%
Sema.NumConstraintsConsideredForEdgeContraction 166,556 166,581 25 0.02%
Sema.NumCrossImportsChecked 0 0 0 0.0%
Sema.NumCrossImportsFound 0 0 0 0.0%
Sema.NumCyclicOneWayComponentsCollapsed 174 174 0 0.0%
Sema.NumDeclsDeserialized 35,288,049 35,272,279 -15,770 -0.04%
Sema.NumDeclsTypechecked 623,176 623,147 -29 -0.0%
Sema.NumGenericSignatureBuilders 620,813 620,791 -22 -0.0%
Sema.NumLazyIterableDeclContexts 4,599,994 4,598,662 -1,332 -0.03%
Sema.NumLazyRequirementSignatures 437,073 437,043 -30 -0.01%
Sema.NumLazyRequirementSignaturesLoaded 306,935 306,917 -18 -0.01%
Sema.NumLeafScopes 5,722,457 5,722,488 31 0.0%
Sema.NumTypesDeserialized 10,981,186 10,980,895 -291 -0.0%
Sema.NumUnloadedLazyIterableDeclContexts 2,986,270 2,984,812 -1,458 -0.05%
Sema.OpaqueReadOwnershipRequest 153,491 153,498 7 0.0%
Sema.OpaqueResultTypeRequest 236 236 0 0.0%
Sema.OperatorPrecedenceGroupRequest 419 419 0 0.0%
Sema.OverriddenDeclsRequest 1,639,890 1,640,347 457 0.03%
Sema.ParamSpecifierRequest 670,273 670,042 -231 -0.03%
Sema.PatternBindingEntryRequest 225,503 225,523 20 0.01%
Sema.PatternTypeRequest 267,606 267,646 40 0.01%
Sema.PolymorphicEffectKindRequest 53,161 53,156 -5 -0.01%
Sema.PolymorphicEffectRequirementsRequest 0 0 0 0.0%
Sema.PreCheckResultBuilderRequest 536 536 0 0.0%
Sema.PrimarySourceFilesRequest 5,331 5,332 1 0.02%
Sema.PropertyWrapperAuxiliaryVariablesRequest 235,815 235,828 13 0.01%
Sema.PropertyWrapperBackingPropertyTypeRequest 4,077 4,078 1 0.02%
Sema.PropertyWrapperInitializerInfoRequest 154,582 154,598 16 0.01%
Sema.PropertyWrapperLValuenessRequest 389 389 0 0.0%
Sema.PropertyWrapperMutabilityRequest 298,818 298,856 38 0.01%
Sema.PropertyWrapperTypeInfoRequest 126 126 0 0.0%
Sema.ProtocolRequiresClassRequest 24,645 24,591 -54 -0.22%
Sema.ProvideDefaultImplForRequest 3,362,158 3,360,484 -1,674 -0.05%
Sema.QualifiedLookupRequest 3,259,698 3,259,205 -493 -0.02%
Sema.RangeInfoRequest 0 0 0 0.0%
Sema.RequirementRequest 37,166 36,901 -265 -0.71%
Sema.RequirementSignatureRequest 351,144 351,041 -103 -0.03%
Sema.RequiresOpaqueAccessorsRequest 625,833 625,810 -23 -0.0%
Sema.RequiresOpaqueModifyCoroutineRequest 137,756 137,759 3 0.0%
Sema.ResolveEffectiveMemberwiseInitRequest 0 0 0 0.0%
Sema.ResolveImplicitMemberRequest 218,523 218,512 -11 -0.01%
Sema.ResolveProtocolNameRequest 0 0 0 0.0%
Sema.ResolveTypeEraserTypeRequest 0 0 0 0.0%
Sema.ResolveTypeRequest 1,880,264 1,878,631 -1,633 -0.09%
Sema.ResultBuilderTypeRequest 163,743 163,726 -17 -0.01%
Sema.ResultTypeRequest 347,171 347,087 -84 -0.02%
Sema.RootAndResultTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.RootTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.SPIGroupsRequest 2,999,122 2,998,535 -587 -0.02%
Sema.ScopedImportLookupRequest 42 42 0 0.0%
Sema.SelfAccessKindRequest 448,803 448,701 -102 -0.02%
Sema.SelfBoundsFromWhereClauseRequest 1,107,016 1,105,224 -1,792 -0.16%
Sema.SetterAccessLevelRequest 80,585 80,590 5 0.01%
Sema.SimpleDidSetRequest 986,019 985,033 -986 -0.1%
Sema.SpecializeAttrTargetDeclRequest 858 858 0 0.0%
Sema.StorageImplInfoRequest 701,713 701,755 42 0.01%
Sema.StoredPropertiesAndMissingMembersRequest 26,888 26,888 0 0.0%
Sema.StoredPropertiesRequest 163,737 163,737 0 0.0%
Sema.StructuralTypeRequest 592 592 0 0.0%
Sema.SuperclassDeclRequest 230,538 230,392 -146 -0.06%
Sema.SuperclassTypeRequest 25,544 25,534 -10 -0.04%
Sema.SynthesizeAccessorRequest 166,175 166,164 -11 -0.01%
Sema.SynthesizeDefaultInitRequest 2,905 2,906 1 0.03%
Sema.SynthesizeMainFunctionRequest 42,647 42,642 -5 -0.01%
Sema.SynthesizeMemberwiseInitRequest 1,322 1,322 0 0.0%
Sema.TangentStoredPropertyRequest 0 0 0 0.0%
Sema.TypeCheckASTNodeAtLocRequest 0 0 0 0.0%
Sema.TypeCheckFunctionBodyRequest 234,697 234,646 -51 -0.02%
Sema.TypeCheckSourceFileRequest 12,358 12,359 1 0.01%
Sema.TypeDeclsFromWhereClauseRequest 13,808 13,801 -7 -0.05%
Sema.TypeEraserHasViableInitRequest 0 0 0 0.0%
Sema.TypeRelationCheckRequest 0 0 0 0.0%
Sema.TypeWitnessRequest 3,984 3,983 -1 -0.03%
Sema.USRGenerationRequest 3,985,233 3,982,953 -2,280 -0.06%
Sema.UnderlyingTypeDeclsReferencedRequest 227,882 227,903 21 0.01%
Sema.UnderlyingTypeRequest 15,808 15,810 2 0.01%
Sema.UnqualifiedLookupRequest 2,513,213 2,512,211 -1,002 -0.04%
Sema.ValidatePrecedenceGroupRequest 91,087 91,096 9 0.01%
Sema.ValueWitnessRequest 44,601 44,603 2 0.0%
TBDGen.APIGenRequest 0 0 0 0.0%
TBDGen.GenerateTBDRequest 0 0 0 0.0%
TBDGen.PublicSymbolsRequest 11,902 11,902 0 0.0%
TBDGen.SymbolSourceMapRequest 0 0 0 0.0%

Release

release brief

Regressed (0)
name old new delta delta_pct
Improved (2)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 47,163,091,883,580 22,464,590,627,573 -24,698,501,256,007 -52.37% ✅
LLVM.NumLLVMBytesOutput 1,663,963,936 836,922,844 -827,041,092 -49.7% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (0)
name old new delta delta_pct

release detailed

Regressed (0)
name old new delta delta_pct
Improved (207)
name old new delta delta_pct
AST.ImportSetCacheHit 1,195,249 592,737 -602,512 -50.41% ✅
AST.ImportSetCacheMiss 55,683 27,682 -28,001 -50.29% ✅
AST.ImportSetFoldHit 24,139 13,258 -10,881 -45.08% ✅
AST.ImportSetFoldMiss 31,543 14,424 -17,119 -54.27% ✅
AST.ModuleShadowCacheHit 2,935 1,109 -1,826 -62.21% ✅
AST.ModuleShadowCacheMiss 1,102 387 -715 -64.88% ✅
AST.ModuleVisibilityCacheHit 34,831 15,887 -18,944 -54.39% ✅
AST.ModuleVisibilityCacheMiss 3,491 2,049 -1,442 -41.31% ✅
AST.NumASTBytesAllocated 8,944,342,302 4,140,093,914 -4,804,248,388 -53.71% ✅
AST.NumASTScopeExpansions 2,694,675 1,280,931 -1,413,744 -52.46% ✅
AST.NumASTScopeLookups 3,914,203 1,856,663 -2,057,540 -52.57% ✅
AST.NumDecls 133,136 62,766 -70,370 -52.86% ✅
AST.NumDependencies 58,457 38,651 -19,806 -33.88% ✅
AST.NumLoadedModules 27,135 12,718 -14,417 -53.13% ✅
AST.NumLocalTypeDecls 248 173 -75 -30.24% ✅
AST.NumModuleLookupClassMember 6,569 3,330 -3,239 -49.31% ✅
AST.NumModuleLookupValue 28,116,589 15,934,710 -12,181,879 -43.33% ✅
AST.NumObjCMethods 26,795 23,447 -3,348 -12.49% ✅
AST.NumOperators 581 353 -228 -39.24% ✅
AST.NumPrecedenceGroups 93 57 -36 -38.71% ✅
AST.NumSourceBuffers 29,483 14,185 -15,298 -51.89% ✅
AST.NumSourceLines 4,492,239 2,272,185 -2,220,054 -49.42% ✅
AST.NumSourceLinesPerSecond 294,044 128,598 -165,446 -56.27% ✅
AST.NumTotalClangImportedEntities 439,340 233,703 -205,637 -46.81% ✅
Frontend.MaxMallocUsage 231,463,369,256 105,092,625,208 -126,370,744,048 -54.6% ✅
Frontend.NumInstructionsExecuted 47,163,091,883,580 22,464,590,627,573 -24,698,501,256,007 -52.37% ✅
IRModule.NumGOTEntries 208,135 90,346 -117,789 -56.59% ✅
IRModule.NumIRAliases 151,873 91,159 -60,714 -39.98% ✅
IRModule.NumIRBasicBlocks 4,369,416 2,087,332 -2,282,084 -52.23% ✅
IRModule.NumIRFunctions 2,605,120 1,310,405 -1,294,715 -49.7% ✅
IRModule.NumIRGlobals 2,961,838 1,559,300 -1,402,538 -47.35% ✅
IRModule.NumIRInsts 42,575,031 20,853,739 -21,721,292 -51.02% ✅
IRModule.NumIRNamedMetaData 121,865 61,635 -60,230 -49.42% ✅
IRModule.NumIRValueSymbols 5,329,159 2,755,655 -2,573,504 -48.29% ✅
LLVM.NumLLVMBytesOutput 1,663,963,936 836,922,844 -827,041,092 -49.7% ✅
Parse.NumFunctionsParsed 262,404 125,723 -136,681 -52.09% ✅
Parse.NumIterableDeclContextParsed 87,812 39,354 -48,458 -55.18% ✅
Parse.ParseAbstractFunctionBodyRequest 239,335 110,511 -128,824 -53.83% ✅
Parse.ParseMembersRequest 576 398 -178 -30.9% ✅
Parse.ParseSourceFileRequest 24,492 12,393 -12,099 -49.4% ✅
SILGen.ASTLoweringRequest 1,166 587 -579 -49.66% ✅
SILModule.NumSILGenFunctions 1,135,983 539,927 -596,056 -52.47% ✅
SILModule.NumSILGenGlobalVariables 54,984 21,427 -33,557 -61.03% ✅
SILModule.NumSILGenVtables 15,142 6,395 -8,747 -57.77% ✅
SILModule.NumSILGenWitnessTables 66,825 32,357 -34,468 -51.58% ✅
SILModule.NumSILOptFunctions 953,738 463,743 -489,995 -51.38% ✅
SILModule.NumSILOptGlobalVariables 41,500 17,850 -23,650 -56.99% ✅
SILModule.NumSILOptVtables 18,563 7,898 -10,665 -57.45% ✅
SILModule.NumSILOptWitnessTables 68,371 33,055 -35,316 -51.65% ✅
SILOptimizer.ExecuteSILPipelineRequest 4,652 2,336 -2,316 -49.79% ✅
Sema.ABIMembersRequest 85,683 39,010 -46,673 -54.47% ✅
Sema.AbstractGenericSignatureRequest 23,163 8,500 -14,663 -63.3% ✅
Sema.AccessLevelRequest 1,471,103 700,231 -770,872 -52.4% ✅
Sema.ActorIsolationRequest 1,223,434 576,771 -646,663 -52.86% ✅
Sema.AllMembersRequest 84,708 38,424 -46,284 -54.64% ✅
Sema.AnyObjectLookupRequest 224 107 -117 -52.23% ✅
Sema.ApplyAccessNoteRequest 1,514,110 723,683 -790,427 -52.2% ✅
Sema.AreAllStoredPropertiesDefaultInitableRequest 12,395 5,332 -7,063 -56.98% ✅
Sema.AttachedPropertyWrapperTypeRequest 6,678 2,873 -3,805 -56.98% ✅
Sema.AttachedPropertyWrappersRequest 98,459,310 50,535,391 -47,923,919 -48.67% ✅
Sema.AttachedResultBuilderRequest 637,397 307,815 -329,582 -51.71% ✅
Sema.BodyInitKindRequest 43,622 20,686 -22,936 -52.58% ✅
Sema.CallerSideDefaultArgExprRequest 102,884 45,465 -57,419 -55.81% ✅
Sema.CheckInconsistentImplementationOnlyImportsRequest 1,164 585 -579 -49.74% ✅
Sema.CheckRedeclarationRequest 917,203 438,014 -479,189 -52.24% ✅
Sema.ClassAncestryFlagsRequest 42,170 19,377 -22,793 -54.05% ✅
Sema.ClosureHasExplicitResultRequest 84,226 37,178 -47,048 -55.86% ✅
Sema.CompareDeclSpecializationRequest 370,097 190,814 -179,283 -48.44% ✅
Sema.ConditionalRequirementsRequest 167,816 77,051 -90,765 -54.09% ✅
Sema.CustomAttrNominalRequest 544 308 -236 -43.38% ✅
Sema.CustomAttrTypeRequest 405 220 -185 -45.68% ✅
Sema.DefaultAndMaxAccessLevelRequest 38,202 17,434 -20,768 -54.36% ✅
Sema.DefaultArgumentExprRequest 36,739 19,623 -17,116 -46.59% ✅
Sema.DefaultArgumentInitContextRequest 109 77 -32 -29.36% ✅
Sema.DefaultDefinitionTypeRequest 2,726 1,240 -1,486 -54.51% ✅
Sema.DefaultTypeRequest 237,892 108,877 -129,015 -54.23% ✅
Sema.DerivativeAttrOriginalDeclRequest 4 0 -4 -100.0% ✅
Sema.DirectLookupRequest 30,907,845 17,195,881 -13,711,964 -44.36% ✅
Sema.DirectOperatorLookupRequest 1,143,728 596,686 -547,042 -47.83% ✅
Sema.DirectPrecedenceGroupLookupRequest 571,770 331,959 -239,811 -41.94% ✅
Sema.DynamicallyReplacedDeclRequest 744,015 344,134 -399,881 -53.75% ✅
Sema.EnumRawTypeRequest 8,871 3,791 -5,080 -57.27% ✅
Sema.EnumRawValuesRequest 9,626 4,598 -5,028 -52.23% ✅
Sema.ExistentialConformsToSelfRequest 4,457 1,886 -2,571 -57.68% ✅
Sema.ExistentialTypeSupportedRequest 7,700 4,086 -3,614 -46.94% ✅
Sema.ExtendedNominalRequest 41,927 19,830 -22,097 -52.7% ✅
Sema.ExtendedTypeRequest 41,868 19,798 -22,070 -52.71% ✅
Sema.FragileFunctionKindRequest 942,541 441,709 -500,832 -53.14% ✅
Sema.FunctionOperatorRequest 8,956 5,334 -3,622 -40.44% ✅
Sema.GenericParamListRequest 1,124,663 535,199 -589,464 -52.41% ✅
Sema.GenericSignatureRequest 956,807 464,004 -492,803 -51.5% ✅
Sema.GetDestructorRequest 16,266 7,689 -8,577 -52.73% ✅
Sema.GetImplicitSendableRequest 37,226 16,135 -21,091 -56.66% ✅
Sema.GlobalActorAttributeRequest 1,462,446 683,221 -779,225 -53.28% ✅
Sema.GlobalActorInstanceRequest 56 20 -36 -64.29% ✅
Sema.HasCircularInheritedProtocolsRequest 7,946 4,174 -3,772 -47.47% ✅
Sema.HasCircularRawValueRequest 8,870 3,790 -5,080 -57.27% ✅
Sema.HasDefaultInitRequest 27,171 11,439 -15,732 -57.9% ✅
Sema.HasDynamicMemberLookupAttributeRequest 230,379 106,169 -124,210 -53.92% ✅
Sema.HasImplementationOnlyImportsRequest 24,398 12,381 -12,017 -49.25% ✅
Sema.HasMemberwiseInitRequest 11,958 4,980 -6,978 -58.35% ✅
Sema.HasMissingDesignatedInitializersRequest 16,537 7,253 -9,284 -56.14% ✅
Sema.HasUserDefinedDesignatedInitRequest 27,171 11,439 -15,732 -57.9% ✅
Sema.InferredGenericSignatureRequest 62,276 30,356 -31,920 -51.26% ✅
Sema.InheritedDeclsReferencedRequest 1,029,528 514,440 -515,088 -50.03% ✅
Sema.InheritedProtocolsRequest 90,229 43,178 -47,051 -52.15% ✅
Sema.InheritedTypeRequest 140,712 64,194 -76,518 -54.38% ✅
Sema.InheritsSuperclassInitializersRequest 12,431 6,067 -6,364 -51.19% ✅
Sema.InitKindRequest 53,463 24,351 -29,112 -54.45% ✅
Sema.InterfaceTypeRequest 3,011,513 1,427,012 -1,584,501 -52.61% ✅
Sema.IsABICompatibleOverrideRequest 124,112 59,606 -64,506 -51.97% ✅
Sema.IsAccessorTransparentRequest 251,436 124,670 -126,766 -50.42% ✅
Sema.IsActorRequest 197,648 91,079 -106,569 -53.92% ✅
Sema.IsAsyncHandlerRequest 671,880 319,843 -352,037 -52.4% ✅
Sema.IsCallableNominalTypeRequest 2,011 964 -1,047 -52.06% ✅
Sema.IsDeclRefinementOfRequest 20,076 8,455 -11,621 -57.89% ✅
Sema.IsDefaultActorRequest 22,236 9,296 -12,940 -58.19% ✅
Sema.IsDynamicRequest 1,156,403 541,120 -615,283 -53.21% ✅
Sema.IsFinalRequest 926,833 455,772 -471,061 -50.82% ✅
Sema.IsGetterMutatingRequest 304,195 145,552 -158,643 -52.15% ✅
Sema.IsImplicitlyUnwrappedOptionalRequest 1,786,100 874,654 -911,446 -51.03% ✅
Sema.IsObjCRequest 1,021,411 495,611 -525,800 -51.48% ✅
Sema.IsSetterMutatingRequest 290,727 135,724 -155,003 -53.32% ✅
Sema.IsStaticRequest 536,457 272,249 -264,208 -49.25% ✅
Sema.LazyStoragePropertyRequest 816 760 -56 -6.86% ✅
Sema.LookupAllConformancesInContextRequest 106,709 50,922 -55,787 -52.28% ✅
Sema.LookupConformanceInModuleRequest 61,550,508 31,852,588 -29,697,920 -48.25% ✅
Sema.LookupInModuleRequest 2,096,513 1,009,657 -1,086,856 -51.84% ✅
Sema.LookupInfixOperatorRequest 49,315 22,342 -26,973 -54.7% ✅
Sema.LookupPostfixOperatorRequest 38 29 -9 -23.68% ✅
Sema.LookupPrecedenceGroupRequest 23,613 12,059 -11,554 -48.93% ✅
Sema.LookupPrefixOperatorRequest 115 47 -68 -59.13% ✅
Sema.MangleLocalTypeDeclRequest 268 193 -75 -27.99% ✅
Sema.ModuleImplicitImportsRequest 1,168 589 -579 -49.57% ✅
Sema.ModuleQualifiedLookupRequest 402,729 186,145 -216,584 -53.78% ✅
Sema.NamedLazyMemberLoadSuccessCount 7,875,913 4,252,644 -3,623,269 -46.0% ✅
Sema.NamingPatternRequest 65,925 33,552 -32,373 -49.11% ✅
Sema.NeedsNewVTableEntryRequest 514,400 252,595 -261,805 -50.9% ✅
Sema.NumAccessorBodiesSynthesized 187,400 88,882 -98,518 -52.57% ✅
Sema.NumAccessorsSynthesized 191,049 91,562 -99,487 -52.07% ✅
Sema.NumConformancesDeserialized 2,883,136 1,154,003 -1,729,133 -59.97% ✅
Sema.NumConstraintScopes 15,282,118 7,771,373 -7,510,745 -49.15% ✅
Sema.NumConstraintsConsideredForEdgeContraction 983,018 169,735 -813,283 -82.73% ✅
Sema.NumCyclicOneWayComponentsCollapsed 260 174 -86 -33.08% ✅
Sema.NumDeclsDeserialized 10,561,206 4,756,883 -5,804,323 -54.96% ✅
Sema.NumDeclsTypechecked 1,316,417 629,641 -686,776 -52.17% ✅
Sema.NumGenericSignatureBuilders 211,225 102,723 -108,502 -51.37% ✅
Sema.NumLazyIterableDeclContexts 1,346,967 633,824 -713,143 -52.94% ✅
Sema.NumLazyRequirementSignatures 110,622 53,891 -56,731 -51.28% ✅
Sema.NumLazyRequirementSignaturesLoaded 86,497 41,498 -44,999 -52.02% ✅
Sema.NumLeafScopes 10,682,221 5,565,187 -5,117,034 -47.9% ✅
Sema.NumTypesDeserialized 4,647,585 2,053,928 -2,593,657 -55.81% ✅
Sema.NumUnloadedLazyIterableDeclContexts 889,654 433,875 -455,779 -51.23% ✅
Sema.OpaqueReadOwnershipRequest 171,228 82,868 -88,360 -51.6% ✅
Sema.OpaqueResultTypeRequest 295 225 -70 -23.73% ✅
Sema.OperatorPrecedenceGroupRequest 532 344 -188 -35.34% ✅
Sema.OverriddenDeclsRequest 1,103,066 528,715 -574,351 -52.07% ✅
Sema.ParamSpecifierRequest 734,756 363,726 -371,030 -50.5% ✅
Sema.PatternBindingEntryRequest 278,142 130,182 -147,960 -53.2% ✅
Sema.PatternTypeRequest 353,845 171,973 -181,872 -51.4% ✅
Sema.PolymorphicEffectKindRequest 64,836 30,416 -34,420 -53.09% ✅
Sema.PreCheckResultBuilderRequest 717 532 -185 -25.8% ✅
Sema.PrimarySourceFilesRequest 1,168 589 -579 -49.57% ✅
Sema.PropertyWrapperAuxiliaryVariablesRequest 323,916 150,468 -173,448 -53.55% ✅
Sema.PropertyWrapperBackingPropertyTypeRequest 6,678 2,873 -3,805 -56.98% ✅
Sema.PropertyWrapperInitializerInfoRequest 318,822 149,889 -168,933 -52.99% ✅
Sema.PropertyWrapperLValuenessRequest 631 389 -242 -38.35% ✅
Sema.PropertyWrapperMutabilityRequest 462,957 218,548 -244,409 -52.79% ✅
Sema.PropertyWrapperTypeInfoRequest 52 16 -36 -69.23% ✅
Sema.ProtocolRequiresClassRequest 8,516 4,678 -3,838 -45.07% ✅
Sema.QualifiedLookupRequest 3,595,272 1,773,695 -1,821,577 -50.67% ✅
Sema.RequirementRequest 58,348 20,452 -37,896 -64.95% ✅
Sema.RequirementSignatureRequest 96,388 46,878 -49,510 -51.37% ✅
Sema.RequiresOpaqueAccessorsRequest 1,078,711 523,413 -555,298 -51.48% ✅
Sema.RequiresOpaqueModifyCoroutineRequest 167,698 78,610 -89,088 -53.12% ✅
Sema.ResolveImplicitMemberRequest 345,669 160,214 -185,455 -53.65% ✅
Sema.ResolveTypeRequest 1,730,210 840,503 -889,707 -51.42% ✅
Sema.ResultBuilderTypeRequest 312,994 151,229 -161,765 -51.68% ✅
Sema.ResultTypeRequest 382,271 185,172 -197,099 -51.56% ✅
Sema.SPIGroupsRequest 1,704,890 797,518 -907,372 -53.22% ✅
Sema.ScopedImportLookupRequest 793 42 -751 -94.7% ✅
Sema.SelfAccessKindRequest 308,649 162,920 -145,729 -47.22% ✅
Sema.SelfBoundsFromWhereClauseRequest 423,230 225,941 -197,289 -46.62% ✅
Sema.SetterAccessLevelRequest 126,377 65,628 -60,749 -48.07% ✅
Sema.SimpleDidSetRequest 314,272 156,120 -158,152 -50.32% ✅
Sema.SpecializeAttrTargetDeclRequest 1,685 431 -1,254 -74.42% ✅
Sema.StorageImplInfoRequest 1,180,434 573,380 -607,054 -51.43% ✅
Sema.StoredPropertiesAndMissingMembersRequest 36,274 14,668 -21,606 -59.56% ✅
Sema.StoredPropertiesRequest 133,846 61,195 -72,651 -54.28% ✅
Sema.StructuralTypeRequest 386 98 -288 -74.61% ✅
Sema.SuperclassDeclRequest 89,595 41,245 -48,350 -53.97% ✅
Sema.SuperclassTypeRequest 21,204 9,304 -11,900 -56.12% ✅
Sema.SynthesizeAccessorRequest 191,049 91,562 -99,487 -52.07% ✅
Sema.SynthesizeDefaultInitRequest 2,989 1,654 -1,335 -44.66% ✅
Sema.SynthesizeMainFunctionRequest 84,766 38,476 -46,290 -54.61% ✅
Sema.SynthesizeMemberwiseInitRequest 2,330 924 -1,406 -60.34% ✅
Sema.TypeCheckFunctionBodyRequest 494,728 234,490 -260,238 -52.6% ✅
Sema.TypeCheckSourceFileRequest 24,468 12,369 -12,099 -49.45% ✅
Sema.TypeDeclsFromWhereClauseRequest 19,295 8,256 -11,039 -57.21% ✅
Sema.TypeWitnessRequest 3,311 1,367 -1,944 -58.71% ✅
Sema.USRGenerationRequest 381,777 193,741 -188,036 -49.25% ✅
Sema.UnderlyingTypeDeclsReferencedRequest 54,969 31,884 -23,085 -42.0% ✅
Sema.UnderlyingTypeRequest 15,826 4,856 -10,970 -69.32% ✅
Sema.UnqualifiedLookupRequest 2,034,288 969,429 -1,064,859 -52.35% ✅
Sema.ValidatePrecedenceGroupRequest 174,246 90,893 -83,353 -47.84% ✅
Sema.ValueWitnessRequest 34,148 21,356 -12,792 -37.46% ✅
TBDGen.PublicSymbolsRequest 1,162 583 -579 -49.83% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (43)
name old new delta delta_pct
AST.NumIncrementalDependencies 0 0 0 0.0%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumReferencedDynamicNames 0 0 0 0.0%
AST.NumReferencedMemberNames 3,984 3,984 0 0.0%
AST.NumReferencedTopLevelNames 352 352 0 0.0%
Frontend.NumProcessFailures 2 2 0 0.0%
IRGen.IRGenRequest 12 12 0 0.0%
IRGen.OptimizedIRRequest 0 0 0 0.0%
IRGen.SymbolObjectCodeRequest 0 0 0 0.0%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRIFuncs 0 0 0 0.0%
Parse.CodeCompletionSecondPassRequest 0 0 0 0.0%
SILGen.ParseSILModuleRequest 0 0 0 0.0%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILOptimizer.LoweredSILRequest 0 0 0 0.0%
Sema.AsyncAlternativeRequest 0 0 0 0.0%
Sema.CanBeAsyncHandlerRequest 0 0 0 0.0%
Sema.CodeCompletionFileRequest 0 0 0 0.0%
Sema.CollectOverriddenDeclsRequest 0 0 0 0.0%
Sema.ConformanceHasEffectRequest 0 0 0 0.0%
Sema.CursorInfoRequest 0 0 0 0.0%
Sema.DifferentiableAttributeTypeCheckRequest 0 0 0 0.0%
Sema.HasDynamicCallableAttributeRequest 0 0 0 0.0%
Sema.IsDeclApplicableRequest 0 0 0 0.0%
Sema.ModuleLibraryLevelRequest 0 0 0 0.0%
Sema.NumCrossImportsChecked 0 0 0 0.0%
Sema.NumCrossImportsFound 0 0 0 0.0%
Sema.PolymorphicEffectRequirementsRequest 0 0 0 0.0%
Sema.ProvideDefaultImplForRequest 0 0 0 0.0%
Sema.RangeInfoRequest 0 0 0 0.0%
Sema.ResolveEffectiveMemberwiseInitRequest 0 0 0 0.0%
Sema.ResolveProtocolNameRequest 0 0 0 0.0%
Sema.ResolveTypeEraserTypeRequest 0 0 0 0.0%
Sema.RootAndResultTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.RootTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.TangentStoredPropertyRequest 0 0 0 0.0%
Sema.TypeCheckASTNodeAtLocRequest 0 0 0 0.0%
Sema.TypeEraserHasViableInitRequest 0 0 0 0.0%
Sema.TypeRelationCheckRequest 0 0 0 0.0%
TBDGen.APIGenRequest 0 0 0 0.0%
TBDGen.GenerateTBDRequest 0 0 0 0.0%
TBDGen.SymbolSourceMapRequest 0 0 0 0.0%

@slavapestov slavapestov merged commit 0bc6cfe into swiftlang:main May 7, 2021
@slavapestov
Copy link
Contributor Author

The comparison report is bogus again for 'Release', but I checked the stats-dir output manually and confirmed we spend ~100ms total in the new 'get-conformance-access-path' FrontendStatsTimer.

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