Skip to content

[ConstraintSystem] New "stable" disjunction selection algorithm #40748

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

Closed
wants to merge 6 commits into from

Conversation

xedin
Copy link
Contributor

@xedin xedin commented Jan 6, 2022

Prelude.

The core idea behind shrink is simple - reduce overload sets via
a bottom-up walk'n'solve that would utilize previously discovered
solutions along the way. This helps in some circumstances but requires
rollbacks and AST modification (if choices produced by previous steps
fail to produce solutions higher up). For some expressions, especially
ones with multiple generic overload sets, shrink is actively harmful
because it would never be able to produce useful results.

The Algorithm.

These changes integrate core idea of local information propagation
from shrink into the disjunction selection algorithm itself.

The algorithm itself is as follows - at the beginning use existing
selection algorithm (based on favoring, active choices, etc.) to
select the first disjunction to attempt, and push it to the stack
of "selected" disjunctions; next time solver requests a disjunction,
use the last selected one to pick the closest disjunction to it in
the AST order preferring parents over children.

For example:

         +
       /   \
     *     Float(<some variable e.g. `r` = 10))
   /  \
 exp   Float(1.0)
  |
 2.0

If solver starts by picking Float(r) first, it would then
attempt +, exp in that order. If it did pick Float(1.0)
then, the sequence is *, + and finally exp.

Since the main idea here to is keep everything as local as possible
along a given path, that means special handling for closures and tuples:

  • Closures: if last disjunction is a call with a trailing closure argument,
    and such argument is resolved (constraint are generate for the body) -
    use selection algorithm to peek next disjunction from the body of the
    closure, and solve everything inside before moving to the next member
    in the chain (if any). This helps with linked member expressions e.g.
    .map { ... }.filter { ... }.reduce { ... };

  • Tuples: The idea here is to keep solving local to a current element
    until it runs out of disjunction, and then use selection algorithm to
    peek from the pool of disjunctions associated with other elements of
    the tuple.

Resolves: SR-10130
Resolves: rdar://48992848
Resolves: rdar://23682605
Resolves: rdar://46713933

@xedin xedin requested a review from hborla January 6, 2022 01:25
@xedin
Copy link
Contributor Author

xedin commented Jan 6, 2022

@swift-ci please test compiler performance

@xedin
Copy link
Contributor Author

xedin commented Jan 6, 2022

@swift-ci please smoke test compiler performance

@swift-ci
Copy link
Contributor

swift-ci commented Jan 6, 2022

Summary for main smoketest

Regressions found (see below)

Debug

debug 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 335,623,940,362 335,107,392,960 -516,547,402 -0.15%
LLVM.NumLLVMBytesOutput 9,684,520 9,684,200 -320 -0.0%

debug detailed

Regressed (6)
name old new delta delta_pct
Sema.DefaultTypeRequest 2,282 2,986 704 30.85% ⛔
Sema.InheritedDeclsReferencedRequest 21,038 22,540 1,502 7.14% ⛔
Sema.LookupConformanceInModuleRequest 104,111 106,663 2,552 2.45% ⛔
Sema.NumConformancesDeserialized 26,032 27,235 1,203 4.62% ⛔
Sema.SuperclassDeclRequest 2,550 2,584 34 1.33% ⛔
Sema.UnderlyingTypeDeclsReferencedRequest 700 788 88 12.57% ⛔
Improved (6)
name old new delta delta_pct
Sema.IsDeclRefinementOfRequest 134 104 -30 -22.39% ✅
Sema.ModuleQualifiedLookupRequest 11,669 11,497 -172 -1.47% ✅
Sema.NumConstraintScopes 54,755 54,004 -751 -1.37% ✅
Sema.NumLeafScopes 39,738 36,269 -3,469 -8.73% ✅
Sema.NumRequirementMachineCompletionSteps 246,534 242,348 -4,186 -1.7% ✅
Sema.NumRequirementMachineUnifiedConcreteTerms 4,360 4,306 -54 -1.24% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (256)
name old new delta delta_pct
AST.ImportSetCacheHit 14,804 14,804 0 0.0%
AST.ImportSetCacheMiss 2,193 2,193 0 0.0%
AST.ImportSetFoldHit 694 694 0 0.0%
AST.ImportSetFoldMiss 1,499 1,499 0 0.0%
AST.ModuleShadowCacheHit 0 0 0 0.0%
AST.ModuleShadowCacheMiss 0 0 0 0.0%
AST.ModuleVisibilityCacheHit 4 4 0 0.0%
AST.ModuleVisibilityCacheMiss 4 4 0 0.0%
AST.NumASTBytesAllocated 195,096,700 195,421,272 324,572 0.17%
AST.NumASTScopeExpansions 32,078 32,080 2 0.01%
AST.NumASTScopeLookups 30,698 30,702 4 0.01%
AST.NumDecls 896 896 0 0.0%
AST.NumDependencies 1,008 1,008 0 0.0%
AST.NumIncrementalDependencies 0 0 0 0.0%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumLoadedModules 1,325 1,325 0 0.0%
AST.NumLocalTypeDecls 0 0 0 0.0%
AST.NumModuleLookupClassMember 0 0 0 0.0%
AST.NumModuleLookupValue 517,910 517,746 -164 -0.03%
AST.NumObjCMethods 68 68 0 0.0%
AST.NumOperators 0 0 0 0.0%
AST.NumPrecedenceGroups 0 0 0 0.0%
AST.NumReferencedDynamicNames 0 0 0 0.0%
AST.NumReferencedMemberNames 36,704 36,572 -132 -0.36%
AST.NumReferencedTopLevelNames 3,534 3,524 -10 -0.28%
AST.NumSourceBuffers 1,550 1,550 0 0.0%
AST.NumSourceLines 43,000 43,000 0 0.0%
AST.NumSourceLinesPerSecond 21,477 21,463 -14 -0.07%
AST.NumTotalClangImportedEntities 9,194 9,210 16 0.17%
Frontend.MaxMallocUsage 3,672,123,464 3,679,894,184 7,770,720 0.21%
Frontend.NumInstructionsExecuted 335,623,940,362 335,107,392,960 -516,547,402 -0.15%
Frontend.NumProcessFailures 0 0 0 0.0%
IRGen.IRGenRequest 62 62 0 0.0%
IRGen.OptimizedIRRequest 0 0 0 0.0%
IRGen.SymbolObjectCodeRequest 0 0 0 0.0%
IRModule.NumGOTEntries 1,163 1,163 0 0.0%
IRModule.NumIRAliases 1,616 1,616 0 0.0%
IRModule.NumIRBasicBlocks 33,587 33,587 0 0.0%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRFunctions 14,799 14,799 0 0.0%
IRModule.NumIRGlobals 23,417 23,417 0 0.0%
IRModule.NumIRIFuncs 0 0 0 0.0%
IRModule.NumIRInsts 356,788 356,788 0 0.0%
IRModule.NumIRNamedMetaData 307 307 0 0.0%
IRModule.NumIRValueSymbols 39,136 39,136 0 0.0%
LLVM.NumLLVMBytesOutput 9,684,520 9,684,200 -320 -0.0%
Parse.CodeCompletionSecondPassRequest 0 0 0 0.0%
Parse.NumFunctionsParsed 1,400 1,400 0 0.0%
Parse.NumIterableDeclContextParsed 3,886 3,886 0 0.0%
Parse.ParseAbstractFunctionBodyRequest 2,276 2,276 0 0.0%
Parse.ParseMembersRequest 3,244 3,244 0 0.0%
Parse.ParseSourceFileRequest 1,550 1,550 0 0.0%
SILGen.ASTLoweringRequest 64 64 0 0.0%
SILGen.ParseSILModuleRequest 0 0 0 0.0%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILGenFunctions 11,754 11,754 0 0.0%
SILModule.NumSILGenGlobalVariables 344 344 0 0.0%
SILModule.NumSILGenVtables 160 160 0 0.0%
SILModule.NumSILGenWitnessTables 602 602 0 0.0%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptFunctions 13,290 13,290 0 0.0%
SILModule.NumSILOptGlobalVariables 358 358 0 0.0%
SILModule.NumSILOptVtables 160 160 0 0.0%
SILModule.NumSILOptWitnessTables 776 776 0 0.0%
SILOptimizer.ExecuteSILPipelineRequest 252 252 0 0.0%
SILOptimizer.LoweredSILRequest 0 0 0 0.0%
Sema.ABIMembersRequest 966 966 0 0.0%
Sema.AbstractGenericSignatureRequest 304 304 0 0.0%
Sema.AbstractGenericSignatureRequestRQM 0 0 0 0.0%
Sema.AccessLevelRequest 15,578 15,578 0 0.0%
Sema.ActorIsolationRequest 21,977 21,855 -122 -0.56%
Sema.AllMembersRequest 456 456 0 0.0%
Sema.AnyObjectLookupRequest 0 0 0 0.0%
Sema.ApplyAccessNoteRequest 17,952 17,952 0 0.0%
Sema.AreAllStoredPropertiesDefaultInitableRequest 84 84 0 0.0%
Sema.AttachedPropertyWrapperTypeRequest 124 124 0 0.0%
Sema.AttachedPropertyWrappersRequest 9,620 9,620 0 0.0%
Sema.AttachedResultBuilderRequest 4,490 4,490 0 0.0%
Sema.BodyInitKindRequest 210 210 0 0.0%
Sema.CXXNamespaceMemberLookup 0 0 0 0.0%
Sema.CallerSideDefaultArgExprRequest 256 256 0 0.0%
Sema.CheckInconsistentImplementationOnlyImportsRequest 50 50 0 0.0%
Sema.CheckRedeclarationRequest 8,644 8,644 0 0.0%
Sema.ClangDirectLookupRequest 24 24 0 0.0%
Sema.ClangRecordMemberLookup 24 24 0 0.0%
Sema.ClassAncestryFlagsRequest 880 880 0 0.0%
Sema.ClosureEffectsRequest 480 480 0 0.0%
Sema.ClosureHasExplicitResultRequest 128 128 0 0.0%
Sema.CodeCompletionFileRequest 0 0 0 0.0%
Sema.CollectOverriddenDeclsRequest 0 0 0 0.0%
Sema.CompareDeclSpecializationRequest 3,048 3,032 -16 -0.52%
Sema.ConditionalRequirementsRequest 2,684 2,687 3 0.11%
Sema.ConformanceHasEffectRequest 0 0 0 0.0%
Sema.CursorInfoRequest 0 0 0 0.0%
Sema.CustomAttrNominalRequest 0 0 0 0.0%
Sema.CustomAttrTypeRequest 0 0 0 0.0%
Sema.DefaultAndMaxAccessLevelRequest 606 606 0 0.0%
Sema.DefaultArgumentExprRequest 912 912 0 0.0%
Sema.DefaultArgumentInitContextRequest 4 4 0 0.0%
Sema.DefaultDefinitionTypeRequest 50 50 0 0.0%
Sema.DerivativeAttrOriginalDeclRequest 0 0 0 0.0%
Sema.DifferentiableAttributeTypeCheckRequest 0 0 0 0.0%
Sema.DirectLookupRequest 146,959 146,032 -927 -0.63%
Sema.DirectOperatorLookupRequest 4,887 4,877 -10 -0.2%
Sema.DirectPrecedenceGroupLookupRequest 2,837 2,837 0 0.0%
Sema.DistributedModuleIsAvailableRequest 0 0 0 0.0%
Sema.DynamicallyReplacedDeclRequest 23,437 23,323 -114 -0.49%
Sema.EnumRawTypeRequest 204 204 0 0.0%
Sema.EnumRawValuesRequest 126 126 0 0.0%
Sema.ExistentialConformsToSelfRequest 122 122 0 0.0%
Sema.ExistentialRequiresAnyRequest 42 42 0 0.0%
Sema.ExtendedNominalRequest 5,650 5,650 0 0.0%
Sema.ExtendedTypeRequest 524 524 0 0.0%
Sema.FragileFunctionKindRequest 11,788 11,788 0 0.0%
Sema.FunctionOperatorRequest 8 8 0 0.0%
Sema.GenericParamListRequest 23,546 23,534 -12 -0.05%
Sema.GenericSignatureRequest 14,276 14,316 40 0.28%
Sema.GetDestructorRequest 198 198 0 0.0%
Sema.GetDistributedActorIDPropertyRequest 0 0 0 0.0%
Sema.GetDistributedRemoteFuncRequest 0 0 0 0.0%
Sema.GetImplicitSendableRequest 440 440 0 0.0%
Sema.GlobalActorAttributeRequest 24,987 24,832 -155 -0.62%
Sema.GlobalActorInstanceRequest 0 0 0 0.0%
Sema.HasCircularInheritedProtocolsRequest 86 86 0 0.0%
Sema.HasCircularRawValueRequest 120 120 0 0.0%
Sema.HasDefaultInitRequest 320 320 0 0.0%
Sema.HasDynamicCallableAttributeRequest 0 0 0 0.0%
Sema.HasDynamicMemberLookupAttributeRequest 2,552 2,552 0 0.0%
Sema.HasImplementationOnlyImportsRequest 1,550 1,550 0 0.0%
Sema.HasIsolatedSelfRequest 38,347 38,179 -168 -0.44%
Sema.HasMemberwiseInitRequest 108 108 0 0.0%
Sema.HasMissingDesignatedInitializersRequest 140 140 0 0.0%
Sema.HasUserDefinedDesignatedInitRequest 320 320 0 0.0%
Sema.InferredGenericSignatureRequest 406 406 0 0.0%
Sema.InferredGenericSignatureRequestRQM 0 0 0 0.0%
Sema.InheritedProtocolsRequest 3,330 3,338 8 0.24%
Sema.InheritedTypeRequest 720 720 0 0.0%
Sema.InheritsSuperclassInitializersRequest 124 124 0 0.0%
Sema.InitKindRequest 496 496 0 0.0%
Sema.InterfaceTypeRequest 49,248 49,070 -178 -0.36%
Sema.IsABICompatibleOverrideRequest 1,592 1,592 0 0.0%
Sema.IsAccessorTransparentRequest 2,598 2,598 0 0.0%
Sema.IsActorRequest 7,064 7,060 -4 -0.06%
Sema.IsCallableNominalTypeRequest 20 20 0 0.0%
Sema.IsDeclApplicableRequest 0 0 0 0.0%
Sema.IsDefaultActorRequest 290 290 0 0.0%
Sema.IsDistributedActorRequest 6,842 6,838 -4 -0.06%
Sema.IsDynamicRequest 12,196 12,196 0 0.0%
Sema.IsFinalRequest 13,520 13,520 0 0.0%
Sema.IsGetterMutatingRequest 2,896 2,896 0 0.0%
Sema.IsImplicitlyUnwrappedOptionalRequest 17,550 17,550 0 0.0%
Sema.IsObjCRequest 11,990 11,990 0 0.0%
Sema.IsSetterMutatingRequest 2,472 2,472 0 0.0%
Sema.IsStaticRequest 6,670 6,670 0 0.0%
Sema.LazyStoragePropertyRequest 16 16 0 0.0%
Sema.LookupAllConformancesInContextRequest 1,674 1,674 0 0.0%
Sema.LookupInModuleRequest 37,383 37,215 -168 -0.45%
Sema.LookupInfixOperatorRequest 142 142 0 0.0%
Sema.LookupPostfixOperatorRequest 0 0 0 0.0%
Sema.LookupPrecedenceGroupRequest 90 90 0 0.0%
Sema.LookupPrefixOperatorRequest 0 0 0 0.0%
Sema.MangleLocalTypeDeclRequest 0 0 0 0.0%
Sema.ModuleImplicitImportsRequest 50 50 0 0.0%
Sema.ModuleLibraryLevelRequest 0 0 0 0.0%
Sema.NamedLazyMemberLoadSuccessCount 108,474 108,156 -318 -0.29%
Sema.NamingPatternRequest 1,058 1,058 0 0.0%
Sema.NeedsNewVTableEntryRequest 5,448 5,448 0 0.0%
Sema.NumAccessorBodiesSynthesized 1,810 1,810 0 0.0%
Sema.NumAccessorsSynthesized 2,220 2,220 0 0.0%
Sema.NumConformanceAccessPathsRecorded 2,044 2,044 0 0.0%
Sema.NumConstraintsConsideredForEdgeContraction 758 756 -2 -0.26%
Sema.NumCrossImportsChecked 0 0 0 0.0%
Sema.NumCrossImportsFound 0 0 0 0.0%
Sema.NumCyclicOneWayComponentsCollapsed 0 0 0 0.0%
Sema.NumDeclsDeserialized 247,838 247,291 -547 -0.22%
Sema.NumDeclsTypechecked 11,958 11,958 0 0.0%
Sema.NumGenericSignatureBuilders 934 936 2 0.21%
Sema.NumLazyIterableDeclContexts 45,220 45,559 339 0.75%
Sema.NumLazyRequirementSignatures 4,564 4,576 12 0.26%
Sema.NumLazyRequirementSignaturesLoaded 2,966 2,984 18 0.61%
Sema.NumRedundantRequirementSteps 892 894 2 0.22%
Sema.NumRequirementMachines 3,308 3,328 20 0.6%
Sema.NumTypesDeserialized 81,875 81,776 -99 -0.12%
Sema.NumUnloadedLazyIterableDeclContexts 38,579 38,918 339 0.88%
Sema.OpaqueReadOwnershipRequest 2,466 2,466 0 0.0%
Sema.OpaqueResultTypeRequest 0 0 0 0.0%
Sema.OperatorPrecedenceGroupRequest 0 0 0 0.0%
Sema.OverriddenDeclsRequest 17,582 17,580 -2 -0.01%
Sema.ParamSpecifierRequest 12,318 12,318 0 0.0%
Sema.PatternBindingEntryRequest 2,918 2,918 0 0.0%
Sema.PatternTypeRequest 3,350 3,350 0 0.0%
Sema.PolymorphicEffectKindRequest 596 596 0 0.0%
Sema.PolymorphicEffectRequirementsRequest 0 0 0 0.0%
Sema.PreCheckResultBuilderRequest 0 0 0 0.0%
Sema.PrimarySourceFilesRequest 50 50 0 0.0%
Sema.PropertyWrapperAuxiliaryVariablesRequest 2,348 2,348 0 0.0%
Sema.PropertyWrapperBackingPropertyTypeRequest 124 124 0 0.0%
Sema.PropertyWrapperInitializerInfoRequest 2,362 2,362 0 0.0%
Sema.PropertyWrapperLValuenessRequest 0 0 0 0.0%
Sema.PropertyWrapperMutabilityRequest 2,864 2,864 0 0.0%
Sema.PropertyWrapperTypeInfoRequest 0 0 0 0.0%
Sema.ProtocolDependenciesRequest 2,574 2,586 12 0.47%
Sema.ProtocolRequiresClassRequest 266 266 0 0.0%
Sema.ProvideDefaultImplForRequest 0 0 0 0.0%
Sema.QualifiedLookupRequest 36,234 36,188 -46 -0.13%
Sema.RangeInfoRequest 0 0 0 0.0%
Sema.RenamedDeclRequest 0 0 0 0.0%
Sema.RequirementRequest 282 282 0 0.0%
Sema.RequirementSignatureRequest 3,194 3,214 20 0.63%
Sema.RequirementSignatureRequestRQM 0 0 0 0.0%
Sema.RequiresOpaqueAccessorsRequest 7,916 7,916 0 0.0%
Sema.RequiresOpaqueModifyCoroutineRequest 2,464 2,464 0 0.0%
Sema.ResolveEffectiveMemberwiseInitRequest 0 0 0 0.0%
Sema.ResolveImplicitMemberRequest 2,048 2,030 -18 -0.88%
Sema.ResolveProtocolNameRequest 0 0 0 0.0%
Sema.ResolveTypeEraserTypeRequest 0 0 0 0.0%
Sema.ResolveTypeRequest 17,146 17,126 -20 -0.12%
Sema.ResultBuilderTypeRequest 2,182 2,182 0 0.0%
Sema.ResultTypeRequest 5,226 5,226 0 0.0%
Sema.RootAndResultTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.RootTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.SPIGroupsRequest 28,331 28,243 -88 -0.31%
Sema.ScopedImportLookupRequest 0 0 0 0.0%
Sema.SelfAccessKindRequest 4,708 4,708 0 0.0%
Sema.SelfBoundsFromWhereClauseRequest 8,840 8,888 48 0.54%
Sema.SetterAccessLevelRequest 826 826 0 0.0%
Sema.SimpleDidSetRequest 3,522 3,522 0 0.0%
Sema.SpecializeAttrTargetDeclRequest 16 16 0 0.0%
Sema.StorageImplInfoRequest 8,950 8,950 0 0.0%
Sema.StoredPropertiesAndMissingMembersRequest 286 286 0 0.0%
Sema.StoredPropertiesRequest 1,935 1,935 0 0.0%
Sema.StructuralRequirementsRequest 0 0 0 0.0%
Sema.StructuralTypeRequest 0 0 0 0.0%
Sema.SuperclassTypeRequest 358 358 0 0.0%
Sema.SynthesizeAccessorRequest 2,220 2,220 0 0.0%
Sema.SynthesizeDefaultInitRequest 26 26 0 0.0%
Sema.SynthesizeMainFunctionRequest 950 950 0 0.0%
Sema.SynthesizeMemberwiseInitRequest 24 24 0 0.0%
Sema.TangentStoredPropertyRequest 0 0 0 0.0%
Sema.TypeAliasRequirementsRequest 0 0 0 0.0%
Sema.TypeCheckASTNodeAtLocRequest 0 0 0 0.0%
Sema.TypeCheckFunctionBodyRequest 3,672 3,672 0 0.0%
Sema.TypeCheckSourceFileRequest 124 124 0 0.0%
Sema.TypeDeclsFromWhereClauseRequest 144 144 0 0.0%
Sema.TypeEraserHasViableInitRequest 0 0 0 0.0%
Sema.TypeRelationCheckRequest 0 0 0 0.0%
Sema.TypeWitnessRequest 26 26 0 0.0%
Sema.USRGenerationRequest 4,158 4,158 0 0.0%
Sema.UnderlyingTypeRequest 104 104 0 0.0%
Sema.UnqualifiedLookupRequest 27,160 27,164 4 0.01%
Sema.ValidatePrecedenceGroupRequest 662 662 0 0.0%
Sema.ValueWitnessRequest 362 362 0 0.0%
TBDGen.APIGenRequest 0 0 0 0.0%
TBDGen.GenerateTBDRequest 0 0 0 0.0%
TBDGen.PublicSymbolsRequest 62 62 0 0.0%
TBDGen.SymbolSourceMapRequest 0 0 0 0.0%

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) (2)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 436,400,147,848 435,949,712,383 -450,435,465 -0.1%
LLVM.NumLLVMBytesOutput 10,318,936 10,319,136 200 0.0%

release detailed

Regressed (9)
name old new delta delta_pct
Sema.DefaultTypeRequest 2,230 2,934 704 31.57% ⛔
Sema.InheritedDeclsReferencedRequest 6,492 7,838 1,346 20.73% ⛔
Sema.LookupConformanceInModuleRequest 130,113 132,657 2,544 1.96% ⛔
Sema.NumConformancesDeserialized 18,366 19,381 1,015 5.53% ⛔
Sema.NumLazyIterableDeclContexts 7,706 7,903 197 2.56% ⛔
Sema.NumLazyRequirementSignaturesLoaded 402 416 14 3.48% ⛔
Sema.NumUnloadedLazyIterableDeclContexts 5,376 5,573 197 3.66% ⛔
Sema.RequirementSignatureRequest 514 528 14 2.72% ⛔
Sema.UnderlyingTypeDeclsReferencedRequest 244 330 86 35.25% ⛔
Improved (8)
name old new delta delta_pct
Sema.IsDeclRefinementOfRequest 88 64 -24 -27.27% ✅
Sema.LookupInModuleRequest 16,966 16,775 -191 -1.13% ✅
Sema.ModuleQualifiedLookupRequest 2,404 2,213 -191 -7.95% ✅
Sema.NumConstraintScopes 54,315 53,564 -751 -1.38% ✅
Sema.NumLeafScopes 39,454 35,985 -3,469 -8.79% ✅
Sema.NumRequirementMachineCompletionSteps 78,008 71,390 -6,618 -8.48% ✅
Sema.NumRequirementMachineUnifiedConcreteTerms 1,496 1,386 -110 -7.35% ✅
Sema.NumRequirementMachines 1,010 998 -12 -1.19% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (251)
name old new delta delta_pct
AST.ImportSetCacheHit 10,160 10,160 0 0.0%
AST.ImportSetCacheMiss 284 284 0 0.0%
AST.ImportSetFoldHit 138 138 0 0.0%
AST.ImportSetFoldMiss 146 146 0 0.0%
AST.ModuleShadowCacheHit 0 0 0 0.0%
AST.ModuleShadowCacheMiss 0 0 0 0.0%
AST.ModuleVisibilityCacheHit 4 4 0 0.0%
AST.ModuleVisibilityCacheMiss 4 4 0 0.0%
AST.NumASTBytesAllocated 48,086,436 48,432,716 346,280 0.72%
AST.NumASTScopeExpansions 19,228 19,228 0 0.0%
AST.NumASTScopeLookups 24,240 24,240 0 0.0%
AST.NumDecls 896 896 0 0.0%
AST.NumDependencies 40 40 0 0.0%
AST.NumIncrementalDependencies 0 0 0 0.0%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumLoadedModules 102 102 0 0.0%
AST.NumLocalTypeDecls 0 0 0 0.0%
AST.NumModuleLookupClassMember 0 0 0 0.0%
AST.NumModuleLookupValue 316,509 316,318 -191 -0.06%
AST.NumObjCMethods 68 68 0 0.0%
AST.NumOperators 0 0 0 0.0%
AST.NumPrecedenceGroups 0 0 0 0.0%
AST.NumReferencedDynamicNames 0 0 0 0.0%
AST.NumReferencedMemberNames 0 0 0 0.0%
AST.NumReferencedTopLevelNames 0 0 0 0.0%
AST.NumSourceBuffers 124 124 0 0.0%
AST.NumSourceLines 43,000 43,000 0 0.0%
AST.NumSourceLinesPerSecond 6,484 6,482 -2 -0.03%
AST.NumTotalClangImportedEntities 3,328 3,330 2 0.06%
Frontend.MaxMallocUsage 1,302,964,288 1,303,562,496 598,208 0.05%
Frontend.NumInstructionsExecuted 436,400,147,848 435,949,712,383 -450,435,465 -0.1%
Frontend.NumProcessFailures 0 0 0 0.0%
IRGen.IRGenRequest 0 0 0 0.0%
IRGen.OptimizedIRRequest 0 0 0 0.0%
IRGen.SymbolObjectCodeRequest 0 0 0 0.0%
IRModule.NumGOTEntries 1,163 1,163 0 0.0%
IRModule.NumIRAliases 1,418 1,418 0 0.0%
IRModule.NumIRBasicBlocks 25,987 25,987 0 0.0%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRFunctions 12,264 12,264 0 0.0%
IRModule.NumIRGlobals 20,232 20,232 0 0.0%
IRModule.NumIRIFuncs 0 0 0 0.0%
IRModule.NumIRInsts 256,555 256,555 0 0.0%
IRModule.NumIRNamedMetaData 305 305 0 0.0%
IRModule.NumIRValueSymbols 33,240 33,240 0 0.0%
LLVM.NumLLVMBytesOutput 10,318,936 10,319,136 200 0.0%
Parse.CodeCompletionSecondPassRequest 0 0 0 0.0%
Parse.NumFunctionsParsed 1,400 1,400 0 0.0%
Parse.NumIterableDeclContextParsed 908 908 0 0.0%
Parse.ParseAbstractFunctionBodyRequest 2,276 2,276 0 0.0%
Parse.ParseMembersRequest 450 450 0 0.0%
Parse.ParseSourceFileRequest 124 124 0 0.0%
SILGen.ASTLoweringRequest 4 4 0 0.0%
SILGen.ParseSILModuleRequest 0 0 0 0.0%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILGenFunctions 10,160 10,160 0 0.0%
SILModule.NumSILGenGlobalVariables 342 342 0 0.0%
SILModule.NumSILGenVtables 160 160 0 0.0%
SILModule.NumSILGenWitnessTables 602 602 0 0.0%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptFunctions 9,219 9,219 0 0.0%
SILModule.NumSILOptGlobalVariables 332 332 0 0.0%
SILModule.NumSILOptVtables 170 170 0 0.0%
SILModule.NumSILOptWitnessTables 676 676 0 0.0%
SILOptimizer.ExecuteSILPipelineRequest 12 12 0 0.0%
SILOptimizer.LoweredSILRequest 0 0 0 0.0%
Sema.ABIMembersRequest 928 928 0 0.0%
Sema.AbstractGenericSignatureRequest 250 250 0 0.0%
Sema.AbstractGenericSignatureRequestRQM 0 0 0 0.0%
Sema.AccessLevelRequest 11,750 11,750 0 0.0%
Sema.ActorIsolationRequest 12,600 12,555 -45 -0.36%
Sema.AllMembersRequest 456 456 0 0.0%
Sema.AnyObjectLookupRequest 0 0 0 0.0%
Sema.ApplyAccessNoteRequest 15,308 15,308 0 0.0%
Sema.AreAllStoredPropertiesDefaultInitableRequest 60 60 0 0.0%
Sema.AttachedPropertyWrapperTypeRequest 124 124 0 0.0%
Sema.AttachedPropertyWrappersRequest 7,942 7,942 0 0.0%
Sema.AttachedResultBuilderRequest 4,400 4,400 0 0.0%
Sema.BodyInitKindRequest 202 202 0 0.0%
Sema.CXXNamespaceMemberLookup 0 0 0 0.0%
Sema.CallerSideDefaultArgExprRequest 256 256 0 0.0%
Sema.CheckInconsistentImplementationOnlyImportsRequest 4 4 0 0.0%
Sema.CheckRedeclarationRequest 8,652 8,652 0 0.0%
Sema.ClangDirectLookupRequest 24 24 0 0.0%
Sema.ClangRecordMemberLookup 24 24 0 0.0%
Sema.ClassAncestryFlagsRequest 342 342 0 0.0%
Sema.ClosureEffectsRequest 478 478 0 0.0%
Sema.ClosureHasExplicitResultRequest 128 128 0 0.0%
Sema.CodeCompletionFileRequest 0 0 0 0.0%
Sema.CollectOverriddenDeclsRequest 0 0 0 0.0%
Sema.CompareDeclSpecializationRequest 3,024 3,008 -16 -0.53%
Sema.ConditionalRequirementsRequest 1,564 1,569 5 0.32%
Sema.ConformanceHasEffectRequest 0 0 0 0.0%
Sema.CursorInfoRequest 0 0 0 0.0%
Sema.CustomAttrNominalRequest 0 0 0 0.0%
Sema.CustomAttrTypeRequest 0 0 0 0.0%
Sema.DefaultAndMaxAccessLevelRequest 416 416 0 0.0%
Sema.DefaultArgumentExprRequest 912 912 0 0.0%
Sema.DefaultArgumentInitContextRequest 0 0 0 0.0%
Sema.DefaultDefinitionTypeRequest 28 28 0 0.0%
Sema.DerivativeAttrOriginalDeclRequest 0 0 0 0.0%
Sema.DifferentiableAttributeTypeCheckRequest 0 0 0 0.0%
Sema.DirectLookupRequest 141,612 140,688 -924 -0.65%
Sema.DirectOperatorLookupRequest 4,366 4,360 -6 -0.14%
Sema.DirectPrecedenceGroupLookupRequest 2,747 2,747 0 0.0%
Sema.DistributedModuleIsAvailableRequest 0 0 0 0.0%
Sema.DynamicallyReplacedDeclRequest 13,632 13,591 -41 -0.3%
Sema.EnumRawTypeRequest 120 120 0 0.0%
Sema.EnumRawValuesRequest 122 122 0 0.0%
Sema.ExistentialConformsToSelfRequest 36 36 0 0.0%
Sema.ExistentialRequiresAnyRequest 42 42 0 0.0%
Sema.ExtendedNominalRequest 452 452 0 0.0%
Sema.ExtendedTypeRequest 452 452 0 0.0%
Sema.FragileFunctionKindRequest 9,408 9,408 0 0.0%
Sema.FunctionOperatorRequest 8 8 0 0.0%
Sema.GenericParamListRequest 10,458 10,448 -10 -0.1%
Sema.GenericSignatureRequest 8,766 8,766 0 0.0%
Sema.GetDestructorRequest 168 168 0 0.0%
Sema.GetDistributedActorIDPropertyRequest 0 0 0 0.0%
Sema.GetDistributedRemoteFuncRequest 0 0 0 0.0%
Sema.GetImplicitSendableRequest 386 386 0 0.0%
Sema.GlobalActorAttributeRequest 14,162 14,117 -45 -0.32%
Sema.GlobalActorInstanceRequest 0 0 0 0.0%
Sema.HasCircularInheritedProtocolsRequest 84 84 0 0.0%
Sema.HasCircularRawValueRequest 120 120 0 0.0%
Sema.HasDefaultInitRequest 256 256 0 0.0%
Sema.HasDynamicCallableAttributeRequest 0 0 0 0.0%
Sema.HasDynamicMemberLookupAttributeRequest 916 916 0 0.0%
Sema.HasImplementationOnlyImportsRequest 124 124 0 0.0%
Sema.HasIsolatedSelfRequest 25,968 25,877 -91 -0.35%
Sema.HasMemberwiseInitRequest 96 96 0 0.0%
Sema.HasMissingDesignatedInitializersRequest 108 108 0 0.0%
Sema.HasUserDefinedDesignatedInitRequest 256 256 0 0.0%
Sema.InferredGenericSignatureRequest 280 280 0 0.0%
Sema.InferredGenericSignatureRequestRQM 0 0 0 0.0%
Sema.InheritedProtocolsRequest 532 530 -2 -0.38%
Sema.InheritedTypeRequest 612 612 0 0.0%
Sema.InheritsSuperclassInitializersRequest 78 78 0 0.0%
Sema.InitKindRequest 394 394 0 0.0%
Sema.InterfaceTypeRequest 26,605 26,461 -144 -0.54%
Sema.IsABICompatibleOverrideRequest 1,544 1,544 0 0.0%
Sema.IsAccessorTransparentRequest 2,378 2,378 0 0.0%
Sema.IsActorRequest 1,879 1,879 0 0.0%
Sema.IsCallableNominalTypeRequest 20 20 0 0.0%
Sema.IsDeclApplicableRequest 0 0 0 0.0%
Sema.IsDefaultActorRequest 182 182 0 0.0%
Sema.IsDistributedActorRequest 1,853 1,853 0 0.0%
Sema.IsDynamicRequest 10,740 10,740 0 0.0%
Sema.IsFinalRequest 9,302 9,302 0 0.0%
Sema.IsGetterMutatingRequest 2,462 2,462 0 0.0%
Sema.IsImplicitlyUnwrappedOptionalRequest 15,170 15,170 0 0.0%
Sema.IsObjCRequest 9,344 9,344 0 0.0%
Sema.IsSetterMutatingRequest 2,328 2,328 0 0.0%
Sema.IsStaticRequest 5,524 5,524 0 0.0%
Sema.LazyStoragePropertyRequest 8 8 0 0.0%
Sema.LookupAllConformancesInContextRequest 1,136 1,136 0 0.0%
Sema.LookupInfixOperatorRequest 140 140 0 0.0%
Sema.LookupPostfixOperatorRequest 0 0 0 0.0%
Sema.LookupPrecedenceGroupRequest 90 90 0 0.0%
Sema.LookupPrefixOperatorRequest 0 0 0 0.0%
Sema.MangleLocalTypeDeclRequest 0 0 0 0.0%
Sema.ModuleImplicitImportsRequest 4 4 0 0.0%
Sema.ModuleLibraryLevelRequest 0 0 0 0.0%
Sema.NamedLazyMemberLoadSuccessCount 47,919 47,601 -318 -0.66%
Sema.NamingPatternRequest 464 464 0 0.0%
Sema.NeedsNewVTableEntryRequest 4,034 4,034 0 0.0%
Sema.NumAccessorBodiesSynthesized 1,810 1,810 0 0.0%
Sema.NumAccessorsSynthesized 1,824 1,824 0 0.0%
Sema.NumConformanceAccessPathsRecorded 2,928 2,928 0 0.0%
Sema.NumConstraintsConsideredForEdgeContraction 758 756 -2 -0.26%
Sema.NumCrossImportsChecked 0 0 0 0.0%
Sema.NumCrossImportsFound 0 0 0 0.0%
Sema.NumCyclicOneWayComponentsCollapsed 0 0 0 0.0%
Sema.NumDeclsDeserialized 55,032 54,772 -260 -0.47%
Sema.NumDeclsTypechecked 11,968 11,968 0 0.0%
Sema.NumGenericSignatureBuilders 646 646 0 0.0%
Sema.NumLazyRequirementSignatures 508 512 4 0.79%
Sema.NumRedundantRequirementSteps 696 696 0 0.0%
Sema.NumTypesDeserialized 25,086 24,954 -132 -0.53%
Sema.OpaqueReadOwnershipRequest 1,878 1,878 0 0.0%
Sema.OpaqueResultTypeRequest 0 0 0 0.0%
Sema.OperatorPrecedenceGroupRequest 0 0 0 0.0%
Sema.OverriddenDeclsRequest 10,527 10,525 -2 -0.02%
Sema.ParamSpecifierRequest 8,588 8,588 0 0.0%
Sema.PatternBindingEntryRequest 2,258 2,258 0 0.0%
Sema.PatternTypeRequest 2,690 2,690 0 0.0%
Sema.PolymorphicEffectKindRequest 388 388 0 0.0%
Sema.PolymorphicEffectRequirementsRequest 0 0 0 0.0%
Sema.PreCheckResultBuilderRequest 0 0 0 0.0%
Sema.PrimarySourceFilesRequest 4 4 0 0.0%
Sema.PropertyWrapperAuxiliaryVariablesRequest 2,294 2,294 0 0.0%
Sema.PropertyWrapperBackingPropertyTypeRequest 124 124 0 0.0%
Sema.PropertyWrapperInitializerInfoRequest 2,342 2,342 0 0.0%
Sema.PropertyWrapperLValuenessRequest 0 0 0 0.0%
Sema.PropertyWrapperMutabilityRequest 2,446 2,446 0 0.0%
Sema.PropertyWrapperTypeInfoRequest 0 0 0 0.0%
Sema.ProtocolDependenciesRequest 474 472 -2 -0.42%
Sema.ProtocolRequiresClassRequest 102 102 0 0.0%
Sema.ProvideDefaultImplForRequest 0 0 0 0.0%
Sema.QualifiedLookupRequest 28,436 28,390 -46 -0.16%
Sema.RangeInfoRequest 0 0 0 0.0%
Sema.RenamedDeclRequest 0 0 0 0.0%
Sema.RequirementRequest 264 264 0 0.0%
Sema.RequirementSignatureRequestRQM 0 0 0 0.0%
Sema.RequiresOpaqueAccessorsRequest 7,152 7,152 0 0.0%
Sema.RequiresOpaqueModifyCoroutineRequest 1,874 1,874 0 0.0%
Sema.ResolveEffectiveMemberwiseInitRequest 0 0 0 0.0%
Sema.ResolveImplicitMemberRequest 1,870 1,852 -18 -0.96%
Sema.ResolveProtocolNameRequest 0 0 0 0.0%
Sema.ResolveTypeEraserTypeRequest 0 0 0 0.0%
Sema.ResolveTypeRequest 12,062 12,042 -20 -0.17%
Sema.ResultBuilderTypeRequest 2,100 2,100 0 0.0%
Sema.ResultTypeRequest 4,230 4,230 0 0.0%
Sema.RootAndResultTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.RootTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.SPIGroupsRequest 13,148 13,111 -37 -0.28%
Sema.ScopedImportLookupRequest 0 0 0 0.0%
Sema.SelfAccessKindRequest 3,522 3,522 0 0.0%
Sema.SelfBoundsFromWhereClauseRequest 3,706 3,706 0 0.0%
Sema.SetterAccessLevelRequest 768 768 0 0.0%
Sema.SimpleDidSetRequest 3,158 3,158 0 0.0%
Sema.SpecializeAttrTargetDeclRequest 6 6 0 0.0%
Sema.StorageImplInfoRequest 7,658 7,658 0 0.0%
Sema.StoredPropertiesAndMissingMembersRequest 178 178 0 0.0%
Sema.StoredPropertiesRequest 942 942 0 0.0%
Sema.StructuralRequirementsRequest 0 0 0 0.0%
Sema.StructuralTypeRequest 0 0 0 0.0%
Sema.SuperclassDeclRequest 568 568 0 0.0%
Sema.SuperclassTypeRequest 252 252 0 0.0%
Sema.SynthesizeAccessorRequest 1,824 1,824 0 0.0%
Sema.SynthesizeDefaultInitRequest 24 24 0 0.0%
Sema.SynthesizeMainFunctionRequest 912 912 0 0.0%
Sema.SynthesizeMemberwiseInitRequest 24 24 0 0.0%
Sema.TangentStoredPropertyRequest 0 0 0 0.0%
Sema.TypeAliasRequirementsRequest 0 0 0 0.0%
Sema.TypeCheckASTNodeAtLocRequest 0 0 0 0.0%
Sema.TypeCheckFunctionBodyRequest 3,672 3,672 0 0.0%
Sema.TypeCheckSourceFileRequest 124 124 0 0.0%
Sema.TypeDeclsFromWhereClauseRequest 112 112 0 0.0%
Sema.TypeEraserHasViableInitRequest 0 0 0 0.0%
Sema.TypeRelationCheckRequest 0 0 0 0.0%
Sema.TypeWitnessRequest 14 14 0 0.0%
Sema.USRGenerationRequest 3,208 3,208 0 0.0%
Sema.UnderlyingTypeRequest 48 48 0 0.0%
Sema.UnqualifiedLookupRequest 15,486 15,486 0 0.0%
Sema.ValidatePrecedenceGroupRequest 662 662 0 0.0%
Sema.ValueWitnessRequest 340 340 0 0.0%
TBDGen.APIGenRequest 0 0 0 0.0%
TBDGen.GenerateTBDRequest 0 0 0 0.0%
TBDGen.PublicSymbolsRequest 2 2 0 0.0%
TBDGen.SymbolSourceMapRequest 0 0 0 0.0%

@xedin
Copy link
Contributor Author

xedin commented Jan 6, 2022

Almost 9% reduction in leaf scopes in smoke test.

@swift-ci
Copy link
Contributor

swift-ci commented Jan 7, 2022

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 99,571,294,717,859 98,971,044,011,113 -600,250,706,746 -0.6%
LLVM.NumLLVMBytesOutput 1,771,669,980 1,766,989,746 -4,680,234 -0.26%

debug-batch detailed

Regressed (9)
name old new delta delta_pct
Frontend.NumProcessFailures 61 62 1 1.64% ⛔
Sema.ClangDirectLookupRequest 15,381 16,355 974 6.33% ⛔
Sema.ClangRecordMemberLookup 15,381 16,355 974 6.33% ⛔
Sema.DefaultTypeRequest 325,598 329,360 3,762 1.16% ⛔
Sema.HasDynamicMemberLookupAttributeRequest 718,128 744,654 26,526 3.69% ⛔
Sema.InheritedDeclsReferencedRequest 7,982,468 8,160,488 178,020 2.23% ⛔
Sema.IsCallableNominalTypeRequest 3,097 3,287 190 6.13% ⛔
Sema.NumConformancesDeserialized 12,747,188 12,910,407 163,219 1.28% ⛔
Sema.UnderlyingTypeDeclsReferencedRequest 443,075 448,260 5,185 1.17% ⛔
Improved (11)
name old new delta delta_pct
AST.ModuleShadowCacheHit 4,803 4,723 -80 -1.67% ✅
AST.ModuleShadowCacheMiss 2,417 2,366 -51 -2.11% ✅
Sema.CustomAttrNominalRequest 23,019 22,690 -329 -1.43% ✅
Sema.DirectLookupRequest 50,525,203 49,886,443 -638,760 -1.26% ✅
Sema.GlobalActorInstanceRequest 1,405 1,383 -22 -1.57% ✅
Sema.IsDeclRefinementOfRequest 43,110 38,232 -4,878 -11.32% ✅
Sema.LookupConformanceInModuleRequest 49,757,071 48,973,304 -783,767 -1.58% ✅
Sema.NumConstraintScopes 21,555,357 19,594,141 -1,961,216 -9.1% ✅
Sema.NumConstraintsConsideredForEdgeContraction 1,251,052 1,159,171 -91,881 -7.34% ✅
Sema.NumLeafScopes 15,641,216 13,290,871 -2,350,345 -15.03% ✅
Sema.ResolveImplicitMemberRequest 695,387 667,833 -27,554 -3.96% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (248)
name old new delta delta_pct
AST.ImportSetCacheHit 2,682,153 2,677,426 -4,727 -0.18%
AST.ImportSetCacheMiss 587,207 585,500 -1,707 -0.29%
AST.ImportSetFoldHit 205,482 205,028 -454 -0.22%
AST.ImportSetFoldMiss 381,725 380,472 -1,253 -0.33%
AST.ModuleVisibilityCacheHit 123,476 123,315 -161 -0.13%
AST.ModuleVisibilityCacheMiss 13,850 13,845 -5 -0.04%
AST.NumASTBytesAllocated 58,981,647,582 58,942,896,280 -38,751,302 -0.07%
AST.NumASTScopeExpansions 7,491,943 7,484,740 -7,203 -0.1%
AST.NumASTScopeLookups 7,748,907 7,741,740 -7,167 -0.09%
AST.NumDecls 282,123 281,491 -632 -0.22%
AST.NumDependencies 406,282 405,461 -821 -0.2%
AST.NumIncrementalDependencies 15,612 15,566 -46 -0.29%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumLoadedModules 347,192 346,322 -870 -0.25%
AST.NumLocalTypeDecls 326 326 0 0.0%
AST.NumModuleLookupClassMember 8,011 8,011 0 0.0%
AST.NumModuleLookupValue 73,853,251 73,669,100 -184,151 -0.25%
AST.NumObjCMethods 52,979 52,867 -112 -0.21%
AST.NumOperators 1,316 1,316 0 0.0%
AST.NumPrecedenceGroups 250 250 0 0.0%
AST.NumReferencedDynamicNames 204 204 0 0.0%
AST.NumReferencedMemberNames 11,065,954 11,058,563 -7,391 -0.07%
AST.NumReferencedTopLevelNames 1,040,081 1,037,829 -2,252 -0.22%
AST.NumSourceBuffers 579,182 577,214 -1,968 -0.34%
AST.NumSourceLines 9,180,613 9,168,453 -12,160 -0.13%
AST.NumSourceLinesPerSecond 4,586,773 4,588,824 2,051 0.04%
AST.NumTotalClangImportedEntities 2,357,381 2,350,656 -6,725 -0.29%
Frontend.MaxMallocUsage 993,295,600,480 990,828,360,208 -2,467,240,272 -0.25%
Frontend.NumInstructionsExecuted 99,571,294,717,859 98,971,044,011,113 -600,250,706,746 -0.6%
IRGen.IRGenRequest 25,115 25,035 -80 -0.32%
IRGen.OptimizedIRRequest 0 0 0 0.0%
IRGen.SymbolObjectCodeRequest 0 0 0 0.0%
IRModule.NumGOTEntries 230,868 230,318 -550 -0.24%
IRModule.NumIRAliases 197,103 196,697 -406 -0.21%
IRModule.NumIRBasicBlocks 7,405,583 7,393,092 -12,491 -0.17%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRFunctions 3,438,661 3,431,101 -7,560 -0.22%
IRModule.NumIRGlobals 3,606,461 3,595,644 -10,817 -0.3%
IRModule.NumIRIFuncs 0 0 0 0.0%
IRModule.NumIRInsts 78,158,024 78,009,950 -148,074 -0.19%
IRModule.NumIRNamedMetaData 124,878 124,491 -387 -0.31%
IRModule.NumIRValueSymbols 7,091,947 7,073,305 -18,642 -0.26%
LLVM.NumLLVMBytesOutput 1,771,669,980 1,766,989,746 -4,680,234 -0.26%
Parse.CodeCompletionSecondPassRequest 0 0 0 0.0%
Parse.NumFunctionsParsed 288,177 287,856 -321 -0.11%
Parse.NumIterableDeclContextParsed 912,230 912,140 -90 -0.01%
Parse.ParseAbstractFunctionBodyRequest 514,027 513,552 -475 -0.09%
Parse.ParseMembersRequest 732,787 732,810 23 0.0%
Parse.ParseSourceFileRequest 572,624 570,686 -1,938 -0.34%
SILGen.ASTLoweringRequest 26,234 26,153 -81 -0.31%
SILGen.ParseSILModuleRequest 0 0 0 0.0%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILGenFunctions 2,463,376 2,459,699 -3,677 -0.15%
SILModule.NumSILGenGlobalVariables 111,866 111,800 -66 -0.06%
SILModule.NumSILGenVtables 33,410 33,345 -65 -0.19%
SILModule.NumSILGenWitnessTables 134,344 134,094 -250 -0.19%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptFunctions 3,001,141 2,996,833 -4,308 -0.14%
SILModule.NumSILOptGlobalVariables 113,701 113,632 -69 -0.06%
SILModule.NumSILOptVtables 33,565 33,496 -69 -0.21%
SILModule.NumSILOptWitnessTables 180,800 180,506 -294 -0.16%
SILOptimizer.ExecuteSILPipelineRequest 102,733 102,410 -323 -0.31%
SILOptimizer.LoweredSILRequest 0 0 0 0.0%
Sema.ABIMembersRequest 189,086 188,794 -292 -0.15%
Sema.AbstractGenericSignatureRequest 90,338 90,255 -83 -0.09%
Sema.AbstractGenericSignatureRequestRQM 0 0 0 0.0%
Sema.AccessLevelRequest 19,258,319 19,241,374 -16,945 -0.09%
Sema.ActorIsolationRequest 4,836,224 4,800,495 -35,729 -0.74%
Sema.AllMembersRequest 88,391 88,284 -107 -0.12%
Sema.AnyObjectLookupRequest 299 299 0 0.0%
Sema.ApplyAccessNoteRequest 3,539,590 3,535,183 -4,407 -0.12%
Sema.AreAllStoredPropertiesDefaultInitableRequest 38,739 38,658 -81 -0.21%
Sema.AttachedPropertyWrapperTypeRequest 18,436 18,384 -52 -0.28%
Sema.AttachedPropertyWrappersRequest 1,635,880 1,633,678 -2,202 -0.13%
Sema.AttachedResultBuilderRequest 818,876 818,039 -837 -0.1%
Sema.BodyInitKindRequest 58,160 58,044 -116 -0.2%
Sema.CXXNamespaceMemberLookup 0 0 0 0.0%
Sema.CallerSideDefaultArgExprRequest 122,713 122,626 -87 -0.07%
Sema.CheckInconsistentImplementationOnlyImportsRequest 13,326 13,303 -23 -0.17%
Sema.CheckRedeclarationRequest 1,762,558 1,760,749 -1,809 -0.1%
Sema.ClassAncestryFlagsRequest 147,778 147,158 -620 -0.42%
Sema.ClosureEffectsRequest 100,943 100,783 -160 -0.16%
Sema.ClosureHasExplicitResultRequest 35,193 35,124 -69 -0.2%
Sema.CodeCompletionFileRequest 0 0 0 0.0%
Sema.CollectOverriddenDeclsRequest 12,950,882 12,933,971 -16,911 -0.13%
Sema.CompareDeclSpecializationRequest 589,241 587,721 -1,520 -0.26%
Sema.ConditionalRequirementsRequest 728,099 727,109 -990 -0.14%
Sema.ConformanceHasEffectRequest 0 0 0 0.0%
Sema.CursorInfoRequest 0 0 0 0.0%
Sema.CustomAttrTypeRequest 1,009 1,009 0 0.0%
Sema.DefaultAndMaxAccessLevelRequest 105,391 105,212 -179 -0.17%
Sema.DefaultArgumentExprRequest 81,529 81,509 -20 -0.02%
Sema.DefaultArgumentInitContextRequest 642 642 0 0.0%
Sema.DefaultDefinitionTypeRequest 7,523 7,516 -7 -0.09%
Sema.DerivativeAttrOriginalDeclRequest 16 16 0 0.0%
Sema.DifferentiableAttributeTypeCheckRequest 0 0 0 0.0%
Sema.DirectOperatorLookupRequest 1,541,681 1,539,094 -2,587 -0.17%
Sema.DirectPrecedenceGroupLookupRequest 680,039 677,708 -2,331 -0.34%
Sema.DistributedModuleIsAvailableRequest 0 0 0 0.0%
Sema.DynamicallyReplacedDeclRequest 5,213,466 5,178,929 -34,537 -0.66%
Sema.EnumRawTypeRequest 38,133 38,160 27 0.07%
Sema.EnumRawValuesRequest 18,393 18,366 -27 -0.15%
Sema.ExistentialConformsToSelfRequest 26,525 26,324 -201 -0.76%
Sema.ExistentialRequiresAnyRequest 7,376 7,350 -26 -0.35%
Sema.ExtendedNominalRequest 986,684 985,546 -1,138 -0.12%
Sema.ExtendedTypeRequest 131,463 131,318 -145 -0.11%
Sema.FragileFunctionKindRequest 2,263,394 2,260,162 -3,232 -0.14%
Sema.FunctionOperatorRequest 18,003 18,008 5 0.03%
Sema.GenericParamListRequest 6,261,684 6,249,044 -12,640 -0.2%
Sema.GenericSignatureRequest 3,389,588 3,385,688 -3,900 -0.12%
Sema.GetDestructorRequest 42,463 42,343 -120 -0.28%
Sema.GetDistributedActorIDPropertyRequest 0 0 0 0.0%
Sema.GetDistributedRemoteFuncRequest 0 0 0 0.0%
Sema.GetImplicitSendableRequest 355,590 355,174 -416 -0.12%
Sema.GlobalActorAttributeRequest 5,610,922 5,564,943 -45,979 -0.82%
Sema.HasCircularInheritedProtocolsRequest 18,038 17,985 -53 -0.29%
Sema.HasCircularRawValueRequest 17,783 17,775 -8 -0.04%
Sema.HasDefaultInitRequest 86,609 86,483 -126 -0.15%
Sema.HasDynamicCallableAttributeRequest 0 0 0 0.0%
Sema.HasImplementationOnlyImportsRequest 568,392 566,454 -1,938 -0.34%
Sema.HasIsolatedSelfRequest 12,353,731 12,307,934 -45,797 -0.37%
Sema.HasMemberwiseInitRequest 34,125 34,102 -23 -0.07%
Sema.HasMissingDesignatedInitializersRequest 29,034 28,946 -88 -0.3%
Sema.HasUserDefinedDesignatedInitRequest 86,621 86,495 -126 -0.15%
Sema.InferredGenericSignatureRequest 248,388 248,292 -96 -0.04%
Sema.InferredGenericSignatureRequestRQM 0 0 0 0.0%
Sema.InheritedProtocolsRequest 904,986 903,768 -1,218 -0.13%
Sema.InheritedTypeRequest 456,565 456,146 -419 -0.09%
Sema.InheritsSuperclassInitializersRequest 44,136 43,952 -184 -0.42%
Sema.InitKindRequest 155,134 154,798 -336 -0.22%
Sema.InterfaceTypeRequest 20,951,160 20,918,008 -33,152 -0.16%
Sema.IsABICompatibleOverrideRequest 264,817 264,570 -247 -0.09%
Sema.IsAccessorTransparentRequest 539,941 539,454 -487 -0.09%
Sema.IsActorRequest 1,973,422 1,964,837 -8,585 -0.44%
Sema.IsDeclApplicableRequest 0 0 0 0.0%
Sema.IsDefaultActorRequest 61,134 60,944 -190 -0.31%
Sema.IsDistributedActorRequest 1,949,753 1,941,597 -8,156 -0.42%
Sema.IsDynamicRequest 2,603,260 2,599,850 -3,410 -0.13%
Sema.IsFinalRequest 3,852,849 3,846,107 -6,742 -0.17%
Sema.IsGetterMutatingRequest 638,364 637,608 -756 -0.12%
Sema.IsImplicitlyUnwrappedOptionalRequest 3,315,851 3,310,263 -5,588 -0.17%
Sema.IsObjCRequest 2,484,070 2,480,956 -3,114 -0.13%
Sema.IsSetterMutatingRequest 533,926 533,429 -497 -0.09%
Sema.IsStaticRequest 1,553,579 1,551,080 -2,499 -0.16%
Sema.LazyStoragePropertyRequest 3,628 3,611 -17 -0.47%
Sema.LookupAllConformancesInContextRequest 2,689,990 2,687,803 -2,187 -0.08%
Sema.LookupInModuleRequest 8,425,059 8,413,655 -11,404 -0.14%
Sema.LookupInfixOperatorRequest 61,879 61,815 -64 -0.1%
Sema.LookupPostfixOperatorRequest 82 82 0 0.0%
Sema.LookupPrecedenceGroupRequest 29,149 29,079 -70 -0.24%
Sema.LookupPrefixOperatorRequest 342 342 0 0.0%
Sema.MangleLocalTypeDeclRequest 52 52 0 0.0%
Sema.ModuleImplicitImportsRequest 13,326 13,303 -23 -0.17%
Sema.ModuleLibraryLevelRequest 0 0 0 0.0%
Sema.ModuleQualifiedLookupRequest 3,211,228 3,205,195 -6,033 -0.19%
Sema.NamedLazyMemberLoadSuccessCount 30,638,956 30,647,750 8,794 0.03%
Sema.NamingPatternRequest 262,238 261,919 -319 -0.12%
Sema.NeedsNewVTableEntryRequest 944,732 943,106 -1,626 -0.17%
Sema.NumAccessorBodiesSynthesized 393,188 392,859 -329 -0.08%
Sema.NumAccessorsSynthesized 519,868 519,285 -583 -0.11%
Sema.NumConformanceAccessPathsRecorded 693,585 692,778 -807 -0.12%
Sema.NumCrossImportsChecked 0 0 0 0.0%
Sema.NumCrossImportsFound 0 0 0 0.0%
Sema.NumCyclicOneWayComponentsCollapsed 0 0 0 0.0%
Sema.NumDeclsDeserialized 97,965,223 97,890,747 -74,476 -0.08%
Sema.NumDeclsTypechecked 2,483,779 2,481,039 -2,740 -0.11%
Sema.NumGenericSignatureBuilders 395,971 395,510 -461 -0.12%
Sema.NumLazyIterableDeclContexts 12,829,332 12,871,236 41,904 0.33%
Sema.NumLazyRequirementSignatures 1,187,625 1,185,860 -1,765 -0.15%
Sema.NumLazyRequirementSignaturesLoaded 792,919 793,242 323 0.04%
Sema.NumRedundantRequirementSteps 1,066,901 1,065,806 -1,095 -0.1%
Sema.NumRequirementMachineCompletionSteps 142,247,204 142,426,792 179,588 0.13%
Sema.NumRequirementMachineUnifiedConcreteTerms 2,806,141 2,811,752 5,611 0.2%
Sema.NumRequirementMachines 1,328,571 1,329,447 876 0.07%
Sema.NumTypesDeserialized 28,154,444 28,126,473 -27,971 -0.1%
Sema.NumUnloadedLazyIterableDeclContexts 8,790,597 8,834,480 43,883 0.5%
Sema.OpaqueReadOwnershipRequest 458,457 457,880 -577 -0.13%
Sema.OpaqueResultTypeRequest 50 50 0 0.0%
Sema.OperatorPrecedenceGroupRequest 1,332 1,332 0 0.0%
Sema.OverriddenDeclsRequest 5,354,867 5,341,510 -13,357 -0.25%
Sema.ParamSpecifierRequest 1,867,871 1,865,038 -2,833 -0.15%
Sema.PatternBindingEntryRequest 664,407 663,755 -652 -0.1%
Sema.PatternTypeRequest 752,382 751,563 -819 -0.11%
Sema.PolymorphicEffectKindRequest 116,527 116,398 -129 -0.11%
Sema.PolymorphicEffectRequirementsRequest 0 0 0 0.0%
Sema.PreCheckResultBuilderRequest 37 37 0 0.0%
Sema.PrimarySourceFilesRequest 13,326 13,303 -23 -0.17%
Sema.PropertyWrapperAuxiliaryVariablesRequest 510,826 510,339 -487 -0.1%
Sema.PropertyWrapperBackingPropertyTypeRequest 18,436 18,384 -52 -0.28%
Sema.PropertyWrapperInitializerInfoRequest 500,773 500,214 -559 -0.11%
Sema.PropertyWrapperLValuenessRequest 608 608 0 0.0%
Sema.PropertyWrapperMutabilityRequest 633,909 633,153 -756 -0.12%
Sema.PropertyWrapperTypeInfoRequest 244 244 0 0.0%
Sema.ProtocolDependenciesRequest 679,663 680,237 574 0.08%
Sema.ProtocolRequiresClassRequest 56,240 56,054 -186 -0.33%
Sema.ProvideDefaultImplForRequest 12,950,882 12,933,971 -16,911 -0.13%
Sema.QualifiedLookupRequest 7,635,007 7,602,346 -32,661 -0.43%
Sema.RangeInfoRequest 0 0 0 0.0%
Sema.RenamedDeclRequest 15 15 0 0.0%
Sema.RequirementRequest 185,391 185,219 -172 -0.09%
Sema.RequirementSignatureRequest 866,089 866,198 109 0.01%
Sema.RequirementSignatureRequestRQM 0 0 0 0.0%
Sema.RequiresOpaqueAccessorsRequest 1,554,561 1,552,039 -2,522 -0.16%
Sema.RequiresOpaqueModifyCoroutineRequest 452,624 451,654 -970 -0.21%
Sema.ResolveEffectiveMemberwiseInitRequest 0 0 0 0.0%
Sema.ResolveProtocolNameRequest 0 0 0 0.0%
Sema.ResolveTypeEraserTypeRequest 0 0 0 0.0%
Sema.ResolveTypeRequest 5,043,889 5,004,897 -38,992 -0.77%
Sema.ResultBuilderTypeRequest 397,975 397,614 -361 -0.09%
Sema.ResultTypeRequest 1,087,334 1,085,996 -1,338 -0.12%
Sema.RootAndResultTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.RootTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.SPIGroupsRequest 7,557,707 7,545,902 -11,805 -0.16%
Sema.ScopedImportLookupRequest 2,135 2,136 1 0.05%
Sema.SelfAccessKindRequest 947,167 945,291 -1,876 -0.2%
Sema.SelfBoundsFromWhereClauseRequest 2,422,397 2,409,534 -12,863 -0.53%
Sema.SetterAccessLevelRequest 220,554 220,380 -174 -0.08%
Sema.SimpleDidSetRequest 3,202,173 3,197,314 -4,859 -0.15%
Sema.SpecializeAttrTargetDeclRequest 3,018 3,017 -1 -0.03%
Sema.StorageImplInfoRequest 1,811,810 1,809,760 -2,050 -0.11%
Sema.StoredPropertiesAndMissingMembersRequest 63,937 63,746 -191 -0.3%
Sema.StoredPropertiesRequest 418,112 417,095 -1,017 -0.24%
Sema.StructuralRequirementsRequest 0 0 0 0.0%
Sema.StructuralTypeRequest 2,065 2,058 -7 -0.34%
Sema.SuperclassDeclRequest 596,608 598,670 2,062 0.35%
Sema.SuperclassTypeRequest 76,399 76,201 -198 -0.26%
Sema.SynthesizeAccessorRequest 519,868 519,285 -583 -0.11%
Sema.SynthesizeDefaultInitRequest 9,248 9,242 -6 -0.06%
Sema.SynthesizeMainFunctionRequest 186,508 186,255 -253 -0.14%
Sema.SynthesizeMemberwiseInitRequest 6,393 6,374 -19 -0.3%
Sema.TangentStoredPropertyRequest 0 0 0 0.0%
Sema.TypeAliasRequirementsRequest 0 0 0 0.0%
Sema.TypeCheckASTNodeAtLocRequest 0 0 0 0.0%
Sema.TypeCheckFunctionBodyRequest 778,913 778,140 -773 -0.1%
Sema.TypeCheckSourceFileRequest 51,340 51,191 -149 -0.29%
Sema.TypeDeclsFromWhereClauseRequest 53,889 53,787 -102 -0.19%
Sema.TypeEraserHasViableInitRequest 0 0 0 0.0%
Sema.TypeRelationCheckRequest 0 0 0 0.0%
Sema.TypeWitnessRequest 12,598 12,534 -64 -0.51%
Sema.USRGenerationRequest 14,458,925 14,440,758 -18,167 -0.13%
Sema.UnderlyingTypeRequest 53,438 53,403 -35 -0.07%
Sema.UnqualifiedLookupRequest 6,442,899 6,437,137 -5,762 -0.09%
Sema.ValidatePrecedenceGroupRequest 199,828 199,548 -280 -0.14%
Sema.ValueWitnessRequest 90,824 90,512 -312 -0.34%
TBDGen.APIGenRequest 0 0 0 0.0%
TBDGen.GenerateTBDRequest 0 0 0 0.0%
TBDGen.PublicSymbolsRequest 25,132 25,052 -80 -0.32%
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 104,813,473,400,931 91,772,699,456,880 -13,040,773,944,051 -12.44% ✅
LLVM.NumLLVMBytesOutput 1,867,262,658 1,785,276,530 -81,986,128 -4.39% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (0)
name old new delta delta_pct

release detailed

Regressed (7)
name old new delta delta_pct
Frontend.NumProcessFailures 11 13 2 18.18% ⛔
Sema.ClangDirectLookupRequest 10,129 10,450 321 3.17% ⛔
Sema.ClangRecordMemberLookup 10,129 10,450 321 3.17% ⛔
Sema.HasDynamicMemberLookupAttributeRequest 300,083 322,693 22,610 7.53% ⛔
Sema.InheritedDeclsReferencedRequest 1,718,625 1,791,009 72,384 4.21% ⛔
Sema.IsCallableNominalTypeRequest 2,615 2,736 121 4.63% ⛔
Sema.UnderlyingTypeDeclsReferencedRequest 109,803 113,107 3,304 3.01% ⛔
Improved (158)
name old new delta delta_pct
AST.ImportSetCacheHit 1,928,745 1,872,034 -56,711 -2.94% ✅
AST.ImportSetCacheMiss 104,784 103,224 -1,560 -1.49% ✅
AST.ImportSetFoldHit 46,986 46,040 -946 -2.01% ✅
AST.ImportSetFoldMiss 57,797 57,183 -614 -1.06% ✅
AST.ModuleShadowCacheHit 4,490 4,414 -76 -1.69% ✅
AST.ModuleShadowCacheMiss 1,674 1,627 -47 -2.81% ✅
AST.NumASTBytesAllocated 13,525,619,500 12,991,935,834 -533,683,666 -3.95% ✅
AST.NumASTScopeExpansions 4,205,598 4,114,272 -91,326 -2.17% ✅
AST.NumASTScopeLookups 6,034,585 5,879,022 -155,563 -2.58% ✅
AST.NumDecls 288,607 284,741 -3,866 -1.34% ✅
AST.NumIncrementalDependencies 1,416 1,384 -32 -2.26% ✅
AST.NumLoadedModules 48,875 48,365 -510 -1.04% ✅
AST.NumLocalTypeDecls 337 323 -14 -4.15% ✅
AST.NumModuleLookupValue 47,567,170 43,034,706 -4,532,464 -9.53% ✅
AST.NumSourceBuffers 55,949 55,069 -880 -1.57% ✅
AST.NumSourceLines 9,426,526 9,274,022 -152,504 -1.62% ✅
AST.NumTotalClangImportedEntities 808,921 795,758 -13,163 -1.63% ✅
Frontend.MaxMallocUsage 336,885,402,832 330,087,981,160 -6,797,421,672 -2.02% ✅
Frontend.NumInstructionsExecuted 104,813,473,400,931 91,772,699,456,880 -13,040,773,944,051 -12.44% ✅
IRModule.NumGOTEntries 222,530 216,006 -6,524 -2.93% ✅
IRModule.NumIRAliases 163,359 160,190 -3,169 -1.94% ✅
IRModule.NumIRBasicBlocks 4,796,366 4,537,039 -259,327 -5.41% ✅
IRModule.NumIRFunctions 2,808,672 2,732,900 -75,772 -2.7% ✅
IRModule.NumIRGlobals 3,306,675 3,222,499 -84,176 -2.55% ✅
IRModule.NumIRInsts 48,060,553 45,501,808 -2,558,745 -5.32% ✅
IRModule.NumIRNamedMetaData 127,040 124,718 -2,322 -1.83% ✅
IRModule.NumIRValueSymbols 6,138,855 5,978,443 -160,412 -2.61% ✅
LLVM.NumLLVMBytesOutput 1,867,262,658 1,785,276,530 -81,986,128 -4.39% ✅
Parse.NumFunctionsParsed 300,067 293,858 -6,209 -2.07% ✅
Parse.NumIterableDeclContextParsed 187,425 184,030 -3,395 -1.81% ✅
Parse.ParseAbstractFunctionBodyRequest 535,727 520,087 -15,640 -2.92% ✅
Parse.ParseMembersRequest 88,457 86,719 -1,738 -1.96% ✅
Parse.ParseSourceFileRequest 52,797 51,995 -802 -1.52% ✅
SILModule.NumSILGenFunctions 1,953,564 1,906,077 -47,487 -2.43% ✅
SILModule.NumSILGenGlobalVariables 112,376 110,473 -1,903 -1.69% ✅
SILModule.NumSILGenWitnessTables 133,278 129,524 -3,754 -2.82% ✅
SILModule.NumSILOptFunctions 1,786,700 1,739,105 -47,595 -2.66% ✅
SILModule.NumSILOptGlobalVariables 78,477 77,555 -922 -1.17% ✅
SILModule.NumSILOptWitnessTables 144,293 140,216 -4,077 -2.83% ✅
Sema.ABIMembersRequest 184,981 181,179 -3,802 -2.06% ✅
Sema.AbstractGenericSignatureRequest 62,993 61,988 -1,005 -1.6% ✅
Sema.AccessLevelRequest 2,414,678 2,362,747 -51,931 -2.15% ✅
Sema.ActorIsolationRequest 2,568,617 2,508,554 -60,063 -2.34% ✅
Sema.AllMembersRequest 91,554 89,801 -1,753 -1.91% ✅
Sema.ApplyAccessNoteRequest 3,089,773 3,025,070 -64,703 -2.09% ✅
Sema.AreAllStoredPropertiesDefaultInitableRequest 29,711 29,362 -349 -1.17% ✅
Sema.AttachedPropertyWrapperTypeRequest 14,651 13,931 -720 -4.91% ✅
Sema.AttachedPropertyWrappersRequest 1,330,984 1,302,499 -28,485 -2.14% ✅
Sema.AttachedResultBuilderRequest 806,355 790,644 -15,711 -1.95% ✅
Sema.BodyInitKindRequest 57,275 55,786 -1,489 -2.6% ✅
Sema.CheckRedeclarationRequest 1,833,937 1,793,765 -40,172 -2.19% ✅
Sema.ClosureEffectsRequest 101,703 99,808 -1,895 -1.86% ✅
Sema.ClosureHasExplicitResultRequest 34,990 34,344 -646 -1.85% ✅
Sema.CompareDeclSpecializationRequest 478,632 458,634 -19,998 -4.18% ✅
Sema.ConditionalRequirementsRequest 346,957 341,358 -5,599 -1.61% ✅
Sema.CustomAttrNominalRequest 18,505 18,156 -349 -1.89% ✅
Sema.DefaultAndMaxAccessLevelRequest 85,389 83,422 -1,967 -2.3% ✅
Sema.DefaultArgumentExprRequest 83,097 81,569 -1,528 -1.84% ✅
Sema.DefaultArgumentInitContextRequest 178 172 -6 -3.37% ✅
Sema.DefaultDefinitionTypeRequest 6,033 5,961 -72 -1.19% ✅
Sema.DirectLookupRequest 45,646,133 43,068,152 -2,577,981 -5.65% ✅
Sema.DirectOperatorLookupRequest 1,626,518 1,418,669 -207,849 -12.78% ✅
Sema.DirectPrecedenceGroupLookupRequest 691,216 638,509 -52,707 -7.63% ✅
Sema.DynamicallyReplacedDeclRequest 2,851,746 2,784,898 -66,848 -2.34% ✅
Sema.EnumRawValuesRequest 17,693 17,504 -189 -1.07% ✅
Sema.ExistentialConformsToSelfRequest 8,235 8,144 -91 -1.11% ✅
Sema.ExistentialRequiresAnyRequest 7,475 7,367 -108 -1.44% ✅
Sema.ExtendedNominalRequest 92,109 90,092 -2,017 -2.19% ✅
Sema.ExtendedTypeRequest 91,971 89,958 -2,013 -2.19% ✅
Sema.FragileFunctionKindRequest 1,771,658 1,738,821 -32,837 -1.85% ✅
Sema.GenericParamListRequest 2,264,002 2,224,241 -39,761 -1.76% ✅
Sema.GenericSignatureRequest 1,864,145 1,829,152 -34,993 -1.88% ✅
Sema.GetImplicitSendableRequest 76,771 75,546 -1,225 -1.6% ✅
Sema.GlobalActorAttributeRequest 2,925,611 2,855,969 -69,642 -2.38% ✅
Sema.HasCircularInheritedProtocolsRequest 16,351 16,140 -211 -1.29% ✅
Sema.HasDefaultInitRequest 60,359 59,328 -1,031 -1.71% ✅
Sema.HasImplementationOnlyImportsRequest 52,603 51,801 -802 -1.52% ✅
Sema.HasIsolatedSelfRequest 5,077,456 4,959,867 -117,589 -2.32% ✅
Sema.HasMemberwiseInitRequest 25,004 24,168 -836 -3.34% ✅
Sema.HasUserDefinedDesignatedInitRequest 60,359 59,328 -1,031 -1.71% ✅
Sema.InferredGenericSignatureRequest 142,019 140,351 -1,668 -1.17% ✅
Sema.InheritedTypeRequest 330,173 326,550 -3,623 -1.1% ✅
Sema.InitKindRequest 117,568 115,389 -2,179 -1.85% ✅
Sema.InterfaceTypeRequest 5,610,033 5,502,741 -107,292 -1.91% ✅
Sema.IsABICompatibleOverrideRequest 270,082 263,043 -7,039 -2.61% ✅
Sema.IsAccessorTransparentRequest 465,719 452,359 -13,360 -2.87% ✅
Sema.IsActorRequest 401,160 395,895 -5,265 -1.31% ✅
Sema.IsDeclRefinementOfRequest 31,875 27,625 -4,250 -13.33% ✅
Sema.IsDistributedActorRequest 394,122 388,927 -5,195 -1.32% ✅
Sema.IsDynamicRequest 2,244,133 2,192,407 -51,726 -2.3% ✅
Sema.IsFinalRequest 1,896,806 1,861,868 -34,938 -1.84% ✅
Sema.IsGetterMutatingRequest 539,524 524,427 -15,097 -2.8% ✅
Sema.IsImplicitlyUnwrappedOptionalRequest 2,816,622 2,756,638 -59,984 -2.13% ✅
Sema.IsObjCRequest 1,996,132 1,947,939 -48,193 -2.41% ✅
Sema.IsSetterMutatingRequest 511,761 497,132 -14,629 -2.86% ✅
Sema.IsStaticRequest 1,130,889 1,107,450 -23,439 -2.07% ✅
Sema.LazyStoragePropertyRequest 1,403 1,371 -32 -2.28% ✅
Sema.LookupAllConformancesInContextRequest 216,850 212,907 -3,943 -1.82% ✅
Sema.LookupConformanceInModuleRequest 101,054,440 67,181,765 -33,872,675 -33.52% ✅
Sema.LookupInModuleRequest 3,643,523 3,559,823 -83,700 -2.3% ✅
Sema.LookupInfixOperatorRequest 64,440 62,090 -2,350 -3.65% ✅
Sema.LookupPrecedenceGroupRequest 28,981 28,329 -652 -2.25% ✅
Sema.LookupPrefixOperatorRequest 368 364 -4 -1.09% ✅
Sema.MangleLocalTypeDeclRequest 57 51 -6 -10.53% ✅
Sema.ModuleQualifiedLookupRequest 692,702 679,008 -13,694 -1.98% ✅
Sema.NamingPatternRequest 91,257 88,069 -3,188 -3.49% ✅
Sema.NeedsNewVTableEntryRequest 772,790 758,312 -14,478 -1.87% ✅
Sema.NumAccessorBodiesSynthesized 410,733 398,707 -12,026 -2.93% ✅
Sema.NumAccessorsSynthesized 417,463 405,293 -12,170 -2.92% ✅
Sema.NumConformanceAccessPathsRecorded 776,609 748,560 -28,049 -3.61% ✅
Sema.NumConstraintScopes 37,867,026 20,275,340 -17,591,686 -46.46% ✅
Sema.NumConstraintsConsideredForEdgeContraction 1,795,152 1,561,517 -233,635 -13.01% ✅
Sema.NumDeclsTypechecked 2,584,040 2,526,581 -57,459 -2.22% ✅
Sema.NumGenericSignatureBuilders 205,710 202,701 -3,009 -1.46% ✅
Sema.NumLeafScopes 28,818,367 14,008,814 -14,809,553 -51.39% ✅
Sema.NumRedundantRequirementSteps 621,304 610,975 -10,329 -1.66% ✅
Sema.NumRequirementMachineCompletionSteps 22,285,597 21,462,042 -823,555 -3.7% ✅
Sema.NumRequirementMachineUnifiedConcreteTerms 540,560 410,858 -129,702 -23.99% ✅
Sema.NumTypesDeserialized 7,009,601 6,929,364 -80,237 -1.14% ✅
Sema.OpaqueReadOwnershipRequest 355,611 347,296 -8,315 -2.34% ✅
Sema.OverriddenDeclsRequest 2,186,564 2,140,339 -46,225 -2.11% ✅
Sema.ParamSpecifierRequest 1,346,197 1,318,533 -27,664 -2.05% ✅
Sema.PatternBindingEntryRequest 496,157 482,047 -14,110 -2.84% ✅
Sema.PatternTypeRequest 584,956 567,614 -17,342 -2.96% ✅
Sema.PolymorphicEffectKindRequest 71,561 70,798 -763 -1.07% ✅
Sema.PropertyWrapperAuxiliaryVariablesRequest 505,611 491,183 -14,428 -2.85% ✅
Sema.PropertyWrapperBackingPropertyTypeRequest 14,651 13,931 -720 -4.91% ✅
Sema.PropertyWrapperInitializerInfoRequest 517,200 502,352 -14,848 -2.87% ✅
Sema.PropertyWrapperMutabilityRequest 536,201 521,246 -14,955 -2.79% ✅
Sema.ProtocolRequiresClassRequest 17,635 17,354 -281 -1.59% ✅
Sema.QualifiedLookupRequest 5,574,676 5,356,564 -218,112 -3.91% ✅
Sema.RequiresOpaqueAccessorsRequest 1,436,973 1,399,961 -37,012 -2.58% ✅
Sema.RequiresOpaqueModifyCoroutineRequest 359,495 351,172 -8,323 -2.32% ✅
Sema.ResolveImplicitMemberRequest 573,827 529,874 -43,953 -7.66% ✅
Sema.ResolveTypeRequest 3,490,172 3,394,952 -95,220 -2.73% ✅
Sema.ResultBuilderTypeRequest 378,922 370,505 -8,417 -2.22% ✅
Sema.ResultTypeRequest 818,857 802,151 -16,706 -2.04% ✅
Sema.SPIGroupsRequest 2,929,260 2,869,842 -59,418 -2.03% ✅
Sema.SelfAccessKindRequest 617,080 606,453 -10,627 -1.72% ✅
Sema.SelfBoundsFromWhereClauseRequest 875,492 855,977 -19,515 -2.23% ✅
Sema.SetterAccessLevelRequest 198,294 191,453 -6,841 -3.45% ✅
Sema.SimpleDidSetRequest 650,900 633,409 -17,491 -2.69% ✅
Sema.StorageImplInfoRequest 1,613,857 1,571,383 -42,474 -2.63% ✅
Sema.StoredPropertiesAndMissingMembersRequest 39,302 38,593 -709 -1.8% ✅
Sema.StoredPropertiesRequest 224,416 221,729 -2,687 -1.2% ✅
Sema.SynthesizeAccessorRequest 417,463 405,293 -12,170 -2.92% ✅
Sema.SynthesizeDefaultInitRequest 6,313 6,229 -84 -1.33% ✅
Sema.SynthesizeMainFunctionRequest 183,436 179,661 -3,775 -2.06% ✅
Sema.SynthesizeMemberwiseInitRequest 5,091 4,927 -164 -3.22% ✅
Sema.TypeCheckFunctionBodyRequest 810,478 790,660 -19,818 -2.45% ✅
Sema.TypeCheckSourceFileRequest 52,773 51,971 -802 -1.52% ✅
Sema.TypeDeclsFromWhereClauseRequest 45,572 44,862 -710 -1.56% ✅
Sema.TypeWitnessRequest 7,996 6,822 -1,174 -14.68% ✅
Sema.USRGenerationRequest 597,134 586,247 -10,887 -1.82% ✅
Sema.UnderlyingTypeRequest 35,741 35,368 -373 -1.04% ✅
Sema.UnqualifiedLookupRequest 3,767,618 3,691,078 -76,540 -2.03% ✅
Sema.ValidatePrecedenceGroupRequest 208,633 201,099 -7,534 -3.61% ✅
Sema.ValueWitnessRequest 52,830 51,568 -1,262 -2.39% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (103)
name old new delta delta_pct
AST.ModuleVisibilityCacheHit 90,598 90,350 -248 -0.27%
AST.ModuleVisibilityCacheMiss 7,077 7,038 -39 -0.55%
AST.NumDependencies 44,067 43,777 -290 -0.66%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumModuleLookupClassMember 7,794 7,794 0 0.0%
AST.NumObjCMethods 51,963 51,580 -383 -0.74%
AST.NumOperators 1,313 1,313 0 0.0%
AST.NumPrecedenceGroups 250 250 0 0.0%
AST.NumReferencedDynamicNames 0 0 0 0.0%
AST.NumReferencedMemberNames 3,982 3,974 -8 -0.2%
AST.NumReferencedTopLevelNames 352 352 0 0.0%
AST.NumSourceLinesPerSecond 2,385,304 2,364,509 -20,795 -0.87%
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.ASTLoweringRequest 2,224 2,213 -11 -0.49%
SILGen.ParseSILModuleRequest 0 0 0 0.0%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILGenVtables 35,018 34,772 -246 -0.7%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptVtables 39,832 39,528 -304 -0.76%
SILOptimizer.ExecuteSILPipelineRequest 6,680 6,646 -34 -0.51%
SILOptimizer.LoweredSILRequest 0 0 0 0.0%
Sema.AbstractGenericSignatureRequestRQM 0 0 0 0.0%
Sema.AnyObjectLookupRequest 301 301 0 0.0%
Sema.CXXNamespaceMemberLookup 0 0 0 0.0%
Sema.CallerSideDefaultArgExprRequest 121,466 120,752 -714 -0.59%
Sema.CheckInconsistentImplementationOnlyImportsRequest 2,235 2,226 -9 -0.4%
Sema.ClassAncestryFlagsRequest 70,062 69,445 -617 -0.88%
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.CustomAttrTypeRequest 588 588 0 0.0%
Sema.DefaultTypeRequest 317,993 317,162 -831 -0.26%
Sema.DerivativeAttrOriginalDeclRequest 16 16 0 0.0%
Sema.DifferentiableAttributeTypeCheckRequest 0 0 0 0.0%
Sema.DistributedModuleIsAvailableRequest 0 0 0 0.0%
Sema.EnumRawTypeRequest 17,943 17,794 -149 -0.83%
Sema.FunctionOperatorRequest 17,902 17,794 -108 -0.6%
Sema.GetDestructorRequest 35,493 35,218 -275 -0.77%
Sema.GetDistributedActorIDPropertyRequest 0 0 0 0.0%
Sema.GetDistributedRemoteFuncRequest 0 0 0 0.0%
Sema.GlobalActorInstanceRequest 337 334 -3 -0.89%
Sema.HasCircularRawValueRequest 17,943 17,794 -149 -0.83%
Sema.HasDynamicCallableAttributeRequest 0 0 0 0.0%
Sema.HasMissingDesignatedInitializersRequest 22,550 22,378 -172 -0.76%
Sema.InferredGenericSignatureRequestRQM 0 0 0 0.0%
Sema.InheritedProtocolsRequest 173,307 172,549 -758 -0.44%
Sema.InheritsSuperclassInitializersRequest 29,201 28,956 -245 -0.84%
Sema.IsDeclApplicableRequest 0 0 0 0.0%
Sema.IsDefaultActorRequest 40,614 40,269 -345 -0.85%
Sema.LookupPostfixOperatorRequest 82 82 0 0.0%
Sema.ModuleImplicitImportsRequest 2,235 2,226 -9 -0.4%
Sema.ModuleLibraryLevelRequest 0 0 0 0.0%
Sema.NamedLazyMemberLoadSuccessCount 14,043,823 13,914,472 -129,351 -0.92%
Sema.NumConformancesDeserialized 4,031,241 4,046,192 14,951 0.37%
Sema.NumCrossImportsChecked 0 0 0 0.0%
Sema.NumCrossImportsFound 0 0 0 0.0%
Sema.NumCyclicOneWayComponentsCollapsed 0 0 0 0.0%
Sema.NumDeclsDeserialized 16,472,898 16,356,744 -116,154 -0.71%
Sema.NumLazyIterableDeclContexts 2,480,495 2,486,076 5,581 0.22%
Sema.NumLazyRequirementSignatures 215,430 214,706 -724 -0.34%
Sema.NumLazyRequirementSignaturesLoaded 150,724 150,786 62 0.04%
Sema.NumRequirementMachines 239,472 237,707 -1,765 -0.74%
Sema.NumUnloadedLazyIterableDeclContexts 1,898,373 1,908,430 10,057 0.53%
Sema.OpaqueResultTypeRequest 30 30 0 0.0%
Sema.OperatorPrecedenceGroupRequest 1,147 1,147 0 0.0%
Sema.PolymorphicEffectRequirementsRequest 0 0 0 0.0%
Sema.PreCheckResultBuilderRequest 23 23 0 0.0%
Sema.PrimarySourceFilesRequest 2,235 2,226 -9 -0.4%
Sema.PropertyWrapperLValuenessRequest 600 600 0 0.0%
Sema.PropertyWrapperTypeInfoRequest 124 124 0 0.0%
Sema.ProtocolDependenciesRequest 136,468 135,954 -514 -0.38%
Sema.ProvideDefaultImplForRequest 0 0 0 0.0%
Sema.RangeInfoRequest 0 0 0 0.0%
Sema.RenamedDeclRequest 15 15 0 0.0%
Sema.RequirementRequest 145,162 143,910 -1,252 -0.86%
Sema.RequirementSignatureRequest 170,610 170,389 -221 -0.13%
Sema.RequirementSignatureRequestRQM 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.ScopedImportLookupRequest 2,319 2,317 -2 -0.09%
Sema.SpecializeAttrTargetDeclRequest 2,221 2,211 -10 -0.45%
Sema.StructuralRequirementsRequest 0 0 0 0.0%
Sema.StructuralTypeRequest 840 832 -8 -0.95%
Sema.SuperclassDeclRequest 150,667 150,402 -265 -0.18%
Sema.SuperclassTypeRequest 48,138 47,708 -430 -0.89%
Sema.TangentStoredPropertyRequest 0 0 0 0.0%
Sema.TypeAliasRequirementsRequest 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.PublicSymbolsRequest 1,116 1,110 -6 -0.54%
TBDGen.SymbolSourceMapRequest 0 0 0 0.0%

@xedin xedin force-pushed the solve-chains-based-on-info branch from 8c8a2ba to b9aac87 Compare January 8, 2022 21:32
@xedin
Copy link
Contributor Author

xedin commented Jan 8, 2022

@swift-ci please test source compatibility

xedin added 6 commits January 12, 2022 11:29
… one that has none

If one of the sides has no favored overloads, it's a strong enough
indication that we know more about the other side.
Prelude.

The core idea behind `shrink` is simple - reduce overload sets via
a bottom-up walk'n'solve that would utilize previously discovered
solutions along the way. This helps in some circumstances but requires
rollbacks and AST modification (if choices produced by previous steps
fail to produce solutions higher up). For some expressions, especially
ones with multiple generic overload sets, `shrink` is actively harmful
because it would never be able to produce useful results.

The Algorithm.

These changes integrate core idea of local information propagation
from `shrink` into the disjunction selection algorithm itself.

The algorithm itself is as follows - at the beginning use existing
selection algorithm (based on favoring, active choices, etc.) to
select the first disjunction to attempt, and push it to the stack
of "selected" disjunctions; next time solver requests a disjunction,
use the last selected one to pick the closest disjunction to it in
the AST order preferring parents over children.

For example:

```
         +
       /   \
     *     Float(<some variable e.g. `r` = 10))
   /  \
 exp   Float(1.0)
  |
 2.0
```

If solver starts by picking `Float(r)` first, it would then
attempt `+`, `exp` in that order. If it did pick `Float(1.0)`
then, the sequence is `*`, `+` and finally `exp`.

Since the main idea here to is keep everything as local as possible
along a given path, that means special handling for closures and tuples:

- Closures: if last disjunction is a call with a trailing closure argument,
  and such argument is resolved (constraint are generate for the body) -
  use selection algorithm to peek next disjunction from the body of the
  closure, and solve everything inside before moving to the next member
  in the chain (if any). This helps with linked member expressions e.g.
  `.map { ... }.filter { ... }.reduce { ... }`;

- Tuples: The idea here is to keep solving local to a current element
  until it runs out of disjunction, and then use selection algorithm to
  peek from the pool of disjunctions associated with other elements of
  the tuple.

Resolves: SR-10130
Resolves: rdar://48992848
Resolves: rdar://23682605
Resolves: rdar://46713933
…rom common result compulation

This is the situation where a property has the same name as a method e.g.

```swift
protocol P {
  var test: String { get }
}

extension P {
  var test: String { get { return "" } }
}

struct S : P {
  func test() -> Int { 42 }
}

var s = S()
s.test() // disjunction would have two choices here, one
         // for the property from `P` and one for the method of `S`.
```
In cases like this, let's exclude property overload from common
result determination because it cannot be applied.

Note that such overloads cannot be disabled, because they still
have to be checked in diagnostic mode and there is (currently)
no way to re-enable them for diagnostics.
@xedin xedin force-pushed the solve-chains-based-on-info branch from b9aac87 to 6435083 Compare January 13, 2022 00:08
@xedin
Copy link
Contributor Author

xedin commented Dec 19, 2024

Superseded by #63585

@xedin xedin closed this Dec 19, 2024
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.

3 participants