Skip to content

Implement ClangImporter importSourceLoc and importSourceRange #40010

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
merged 1 commit into from
Nov 10, 2021

Conversation

NuriAmari
Copy link
Contributor

Implement ClangImporter::Implementation::importSourceLoc and ClangImporter::Implementation::importSourceRange.

@NuriAmari
Copy link
Contributor Author

NuriAmari commented Nov 2, 2021

The change to ImportDecl.cpp is to prevent a failing assert in objc_ir.swift. The issue is as follows:

A SourceRange when created asserts that both the start and end locations are either both invalid, or both valid. When you call getSourceRange or something similar on an AbstractFunctionDecl, it gives you a range from the NameLoc to the location of the end of the last param. By implementing importSourceLoc, the location of the end of the last param was no longer invalid, but NameLoc was initialized with an empty SourceLoc and hence invalid. This fails an assert, but providing a valid source location for NameLoc solves the problem.

@NuriAmari NuriAmari marked this pull request as draft November 2, 2021 14:29
@NuriAmari NuriAmari marked this pull request as ready for review November 2, 2021 14:30
@drodriguez drodriguez requested a review from zoecarver November 2, 2021 15:53
@drodriguez
Copy link
Contributor

/cc @plotfi

Copy link
Contributor

@zoecarver zoecarver left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, Nuri. Looks great.

@drodriguez
Copy link
Contributor

@swift-ci please test

@zoecarver zoecarver added the c++ interop Feature: Interoperability with C++ label Nov 2, 2021
@swift-ci
Copy link
Contributor

swift-ci commented Nov 2, 2021

Build failed
Swift Test Linux Platform
Git Sha - c357a06139d9597c1983e0672c1e52bbe159d853

@drodriguez
Copy link
Contributor

@swift-ci please test Linux platform

@drodriguez
Copy link
Contributor

I think Linux failed because we started testing between #9723 and swiftlang/swift-markdown#11. Hopefully it works now. I don't know if macOS will fail in the same way later.

@swift-ci
Copy link
Contributor

swift-ci commented Nov 2, 2021

Build failed
Swift Test OS X Platform
Git Sha - c357a06139d9597c1983e0672c1e52bbe159d853

@plotfi
Copy link
Contributor

plotfi commented Nov 2, 2021

Looks good to me.

@drodriguez
Copy link
Contributor

Rebuild locally with LLDB and I don't get the segfault. I will keep trying, but firing macOS again just in case it was just flaky.

@swift-ci please test macOS platform

@drodriguez
Copy link
Contributor

@swift-ci please test Linux platform

@swift-ci
Copy link
Contributor

swift-ci commented Nov 3, 2021

Build failed
Swift Test OS X Platform
Git Sha - c357a06139d9597c1983e0672c1e52bbe159d853

@Kyle-Ye
Copy link
Contributor

Kyle-Ye commented Nov 3, 2021

I think Linux failed because we started testing between #9723 and apple/swift-markdown#11. Hopefully it works now. I don't know if macOS will fail in the same way later.

Do you mean between #39723 and [swiftlang/swift-markdown#11]? And can you confirm the macOS failure has something to do with this issue? I'm currently working on add a PR [swiftlang/swift-markdown#13] to revert the "revert" PR [swiftlang/swift-markdown#11].

@NuriAmari
Copy link
Contributor Author

NuriAmari commented Nov 3, 2021

And can you confirm the macOS failure has something to do with this issue?

The macOS failure looks to be something else.

@drodriguez
Copy link
Contributor

drodriguez commented Nov 3, 2021

Do you mean between #39723 and [apple/swift-markdown#11]?

Correct, #39723. I must have copy/pasted wrong. The Linux failure was something related to DocC, I looked around and found that recent PR being merged, and the revert in the other repository. As it shows in the second Linux run, those problems seems to be gone.

The macOS problems seems to be unrelated to those issues, and seems to be related to these changes.

@drodriguez
Copy link
Contributor

@swift-ci please smoke test macOS platform

@drodriguez
Copy link
Contributor

After a long divide and conquer session, the problem happens from three invocations:

diff --git i/lib/ClangImporter/ImportDecl.cpp w/lib/ClangImporter/ImportDecl.cpp
index e0182ef422a..2c8fec87191 100644
--- i/lib/ClangImporter/ImportDecl.cpp
+++ w/lib/ClangImporter/ImportDecl.cpp
@@ -3376,8 +3376,13 @@ namespace {
       if (alreadyImportedResult != Impl.ImportedDecls.end())
         return alreadyImportedResult->second;
       result = Impl.createDeclWithClangNode<StructDecl>(
-          decl, AccessLevel::Public, Impl.importSourceLoc(decl->getBeginLoc()),
-          name, Impl.importSourceLoc(decl->getLocation()), None, nullptr, dc);
+          decl, AccessLevel::Public,
+          // FIXME: Impl.importSourceLocBAD(decl->getBeginLoc()),
+          SourceLoc(),
+          name,
+          // FIXME: Impl.importSourceLocBAD(decl->getLocation()),
+          SourceLoc(),
+          None, nullptr, dc);
       Impl.ImportedDecls[{decl->getCanonicalDecl(), getVersion()}] = result;
 
       // FIXME: Figure out what to do with superclasses in C++. One possible
@@ -4215,7 +4220,8 @@ namespace {
         Impl.createDeclWithClangNode<VarDecl>(decl, AccessLevel::Public,
                               /*IsStatic*/ false,
                               VarDecl::Introducer::Var,
-                              Impl.importSourceLoc(decl->getLocation()),
+                              // FIXME: Impl.importSourceLocBAD(decl->getLocation()), // BAD import
+                              SourceLoc(),
                               name, dc);
       if (decl->getType().isConstQualified()) {
         // Note that in C++ there are ways to change the values of const

These invocations are related to VisitRecordDecl and VisitFieldDecl. The header that it is imported in the LLDB test only contains a struct definition. However, I tried adding a macro and a typedef and those doesn't seem to fail (a function sadly needs implementation, which cannot be provided inline). My theory was that only the used pieces were failing, but the theory might be wrong.

A possible approach is leaving those three invocations with just SourceLoc(), which is equivalent to what was before, add a FIXME comment pointing to some bug in the bug tracker, and explain what we experienced there, and hopefully someone that knows more about LLDB internals can help.

One thing that I don't know if it happens automatically or not is that the test seems to be rewriting the source map, and also providing an overlay. I don't know if the current implementation of resolveSourceLocation have those into account, or if by ignoring them, it is creating this problem (I wonder if there's some test on the Swift side with any of those concepts that should have catch this earlier).

I also have a spindump of the Python process when it was failing, but I don't know if it actually captures close to the segfault or not (it is complicated to capture a spindump of the exact thing that's happening, but I was hoping to see an infinite recursion or similar).

@drodriguez
Copy link
Contributor

@swift-ci please smoke test

@drodriguez
Copy link
Contributor

@swift-ci please smoke test

@drodriguez
Copy link
Contributor

The linux one seems unrelated (something with DocC). Seems that non-smoke is passing, so…

@swift-ci please test Linux platform

@swift-ci
Copy link
Contributor

swift-ci commented Nov 5, 2021

Build failed
Swift Test Linux Platform
Git Sha - cb0b8e7

@bnbarham
Copy link
Contributor

bnbarham commented Nov 5, 2021

FWIW I put a PR up to implement these a while back (#39701) but let it fall off my radar. Most of the PR is changes for actually returning the imported source location in Decl::getLoc (FileUnitKind::ClangModule kinds always return SourceLoc() otherwise).

The other part is changing how line directives are handled. I never actually tested the performance, but I was concerned with the current implementation when line directives are involved - it grabs the presumed location for every location and adds a "VirtualFile" for every imported line. Not super important when it's just diagnostics making locations, but IMO would be good to avoid if we actually import locations for all decls. It also doesn't handle EOF properly.

One of the main issues is that it relies on the SourceManager internals and a LLVM change, which I never put up (basically just making all line entries accessible).

@drodriguez
Copy link
Contributor

@bnbarham: thanks for the feedback. We have been seeing better reporting by using the resolveSourceLocation, but we don't have as many changes as you have in that other diff (which probably covers a little bit more than we are doing here). Maybe we also not hitting the performance problems of the virtual files because our limited use of resolveSourceLocation vs the number of times importSourceLoc is used.

PD: the Linux test failed again with the DocC problem. I see some green ones in the bots now, I will restart in a moment.

@drodriguez
Copy link
Contributor

@swift-ci please smoke test Linux platform

@drodriguez
Copy link
Contributor

@swift-ci Please test compiler performance

@bnbarham
Copy link
Contributor

bnbarham commented Nov 6, 2021

Maybe we also not hitting the performance problems of the virtual files because our limited use of resolveSourceLocation vs the number of times importSourceLoc is used.

importSourceLoc just calls resolveSourceLocation though. But anyway, as I said - I never actually tested the performance, it just didn't seem great to add a new "virtual file" for every line + grab the presumed location every time.

@swift-ci
Copy link
Contributor

swift-ci commented Nov 6, 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 75,883,607,422,463 75,994,340,089,431 110,732,666,968 0.15%
LLVM.NumLLVMBytesOutput 1,741,916,616 1,741,897,424 -19,192 -0.0%

debug-batch detailed

Regressed (1)
name old new delta delta_pct
AST.NumSourceBuffers 319,096 630,329 311,233 97.54% ⛔
Improved (1)
name old new delta delta_pct
Frontend.NumProcessFailures 38 37 -1 -2.63% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (260)
name old new delta delta_pct
AST.ImportSetCacheHit 2,347,913 2,347,742 -171 -0.01%
AST.ImportSetCacheMiss 386,039 385,997 -42 -0.01%
AST.ImportSetFoldHit 141,362 141,354 -8 -0.01%
AST.ImportSetFoldMiss 244,677 244,643 -34 -0.01%
AST.ModuleShadowCacheHit 4,601 4,601 0 0.0%
AST.ModuleShadowCacheMiss 2,207 2,207 0 0.0%
AST.ModuleVisibilityCacheHit 115,995 115,995 0 0.0%
AST.ModuleVisibilityCacheMiss 11,541 11,541 0 0.0%
AST.NumASTBytesAllocated 40,320,812,572 40,239,146,805 -81,665,767 -0.2%
AST.NumASTScopeExpansions 6,328,348 6,328,201 -147 -0.0%
AST.NumASTScopeLookups 6,971,968 6,971,762 -206 -0.0%
AST.NumDecls 276,141 276,133 -8 -0.0%
AST.NumDependencies 262,672 262,623 -49 -0.02%
AST.NumIncrementalDependencies 10,035 10,034 -1 -0.01%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumLoadedModules 223,708 223,676 -32 -0.01%
AST.NumLocalTypeDecls 324 324 0 0.0%
AST.NumModuleLookupClassMember 8,011 8,011 0 0.0%
AST.NumModuleLookupValue 62,512,720 62,505,597 -7,123 -0.01%
AST.NumObjCMethods 52,882 52,882 0 0.0%
AST.NumOperators 1,305 1,305 0 0.0%
AST.NumPrecedenceGroups 243 243 0 0.0%
AST.NumReferencedDynamicNames 204 204 0 0.0%
AST.NumReferencedMemberNames 10,927,089 10,926,827 -262 -0.0%
AST.NumReferencedTopLevelNames 1,011,984 1,011,951 -33 -0.0%
AST.NumSourceLines 8,932,885 8,932,714 -171 -0.0%
AST.NumSourceLinesPerSecond 6,975,404 6,913,359 -62,045 -0.89%
AST.NumTotalClangImportedEntities 1,978,958 1,974,895 -4,063 -0.21%
Frontend.MaxMallocUsage 686,571,656,368 689,178,252,104 2,606,595,736 0.38%
Frontend.NumInstructionsExecuted 75,883,607,422,463 75,994,340,089,431 110,732,666,968 0.15%
IRGen.IRGenRequest 24,817 24,816 -1 -0.0%
IRGen.OptimizedIRRequest 0 0 0 0.0%
IRGen.SymbolObjectCodeRequest 0 0 0 0.0%
IRModule.NumGOTEntries 227,221 227,220 -1 -0.0%
IRModule.NumIRAliases 194,724 194,723 -1 -0.0%
IRModule.NumIRBasicBlocks 7,276,810 7,276,787 -23 -0.0%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRFunctions 3,390,284 3,390,264 -20 -0.0%
IRModule.NumIRGlobals 3,563,328 3,563,306 -22 -0.0%
IRModule.NumIRIFuncs 0 0 0 0.0%
IRModule.NumIRInsts 76,437,093 76,436,974 -119 -0.0%
IRModule.NumIRNamedMetaData 123,460 123,457 -3 -0.0%
IRModule.NumIRValueSymbols 6,462,712 6,462,674 -38 -0.0%
LLVM.NumLLVMBytesOutput 1,741,916,616 1,741,897,424 -19,192 -0.0%
Parse.CodeCompletionSecondPassRequest 0 0 0 0.0%
Parse.NumFunctionsParsed 282,044 282,035 -9 -0.0%
Parse.NumIterableDeclContextParsed 614,061 614,049 -12 -0.0%
Parse.ParseAbstractFunctionBodyRequest 501,692 501,689 -3 -0.0%
Parse.ParseMembersRequest 478,403 478,393 -10 -0.0%
Parse.ParseSourceFileRequest 313,487 313,472 -15 -0.0%
SILGen.ASTLoweringRequest 25,908 25,907 -1 -0.0%
SILGen.ParseSILModuleRequest 0 0 0 0.0%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILGenFunctions 2,407,267 2,407,255 -12 -0.0%
SILModule.NumSILGenGlobalVariables 109,345 109,345 0 0.0%
SILModule.NumSILGenVtables 33,189 33,189 0 0.0%
SILModule.NumSILGenWitnessTables 130,145 130,144 -1 -0.0%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptFunctions 2,930,387 2,930,374 -13 -0.0%
SILModule.NumSILOptGlobalVariables 111,186 111,186 0 0.0%
SILModule.NumSILOptVtables 33,330 33,330 0 0.0%
SILModule.NumSILOptWitnessTables 175,154 175,153 -1 -0.0%
SILOptimizer.ExecuteSILPipelineRequest 101,484 101,482 -2 -0.0%
SILOptimizer.LoweredSILRequest 0 0 0 0.0%
Sema.ABIMembersRequest 183,078 183,077 -1 -0.0%
Sema.AbstractGenericSignatureRequest 47,584 47,584 0 0.0%
Sema.AccessLevelRequest 14,052,737 13,943,711 -109,026 -0.78%
Sema.ActorIsolationRequest 4,244,679 4,243,850 -829 -0.02%
Sema.AllMembersRequest 86,988 86,988 0 0.0%
Sema.AnyObjectLookupRequest 299 299 0 0.0%
Sema.ApplyAccessNoteRequest 3,340,510 3,339,752 -758 -0.02%
Sema.AreAllStoredPropertiesDefaultInitableRequest 35,904 35,904 0 0.0%
Sema.AttachedPropertyWrapperTypeRequest 17,551 17,551 0 0.0%
Sema.AttachedPropertyWrappersRequest 1,506,501 1,506,464 -37 -0.0%
Sema.AttachedResultBuilderRequest 776,852 776,842 -10 -0.0%
Sema.BodyInitKindRequest 56,965 56,964 -1 -0.0%
Sema.CXXNamespaceMemberLookup 0 0 0 0.0%
Sema.CallerSideDefaultArgExprRequest 122,030 122,030 0 0.0%
Sema.CheckInconsistentImplementationOnlyImportsRequest 8,859 8,858 -1 -0.01%
Sema.CheckRedeclarationRequest 1,717,663 1,717,638 -25 -0.0%
Sema.ClangDirectLookupRequest 47,496 47,496 0 0.0%
Sema.ClangRecordMemberLookup 47,496 47,496 0 0.0%
Sema.ClassAncestryFlagsRequest 126,195 126,185 -10 -0.01%
Sema.ClosureHasExplicitResultRequest 34,220 34,219 -1 -0.0%
Sema.CodeCompletionFileRequest 0 0 0 0.0%
Sema.CollectOverriddenDeclsRequest 9,200,547 9,126,593 -73,954 -0.8%
Sema.CompareDeclSpecializationRequest 533,810 533,213 -597 -0.11%
Sema.ConditionalRequirementsRequest 627,474 626,997 -477 -0.08%
Sema.ConformanceHasEffectRequest 0 0 0 0.0%
Sema.CursorInfoRequest 0 0 0 0.0%
Sema.CustomAttrNominalRequest 21,348 21,348 0 0.0%
Sema.CustomAttrTypeRequest 886 886 0 0.0%
Sema.DefaultAndMaxAccessLevelRequest 97,436 97,436 0 0.0%
Sema.DefaultArgumentExprRequest 79,536 79,529 -7 -0.01%
Sema.DefaultArgumentInitContextRequest 642 642 0 0.0%
Sema.DefaultDefinitionTypeRequest 7,216 7,216 0 0.0%
Sema.DefaultTypeRequest 317,632 317,629 -3 -0.0%
Sema.DerivativeAttrOriginalDeclRequest 16 16 0 0.0%
Sema.DifferentiableAttributeTypeCheckRequest 0 0 0 0.0%
Sema.DirectLookupRequest 46,759,500 46,730,252 -29,248 -0.06%
Sema.DirectOperatorLookupRequest 1,471,207 1,470,884 -323 -0.02%
Sema.DirectPrecedenceGroupLookupRequest 665,355 665,342 -13 -0.0%
Sema.DistributedModuleIsAvailableRequest 0 0 0 0.0%
Sema.DynamicallyReplacedDeclRequest 1,687,282 1,687,266 -16 -0.0%
Sema.EnumRawTypeRequest 32,241 32,241 0 0.0%
Sema.EnumRawValuesRequest 17,949 17,949 0 0.0%
Sema.ExistentialConformsToSelfRequest 20,958 20,945 -13 -0.06%
Sema.ExtendedNominalRequest 538,864 538,849 -15 -0.0%
Sema.ExtendedTypeRequest 119,841 119,839 -2 -0.0%
Sema.FragileFunctionKindRequest 2,124,083 2,124,045 -38 -0.0%
Sema.FunctionOperatorRequest 17,429 17,429 0 0.0%
Sema.GenericParamListRequest 4,983,610 4,976,773 -6,837 -0.14%
Sema.GenericSignatureRequest 2,922,130 2,920,848 -1,282 -0.04%
Sema.GetDestructorRequest 40,056 40,055 -1 -0.0%
Sema.GetDistributedRemoteFuncRequest 0 0 0 0.0%
Sema.GetImplicitSendableRequest 280,582 279,154 -1,428 -0.51%
Sema.GlobalActorAttributeRequest 4,887,775 4,886,629 -1,146 -0.02%
Sema.GlobalActorInstanceRequest 968 968 0 0.0%
Sema.HasCircularInheritedProtocolsRequest 17,575 17,575 0 0.0%
Sema.HasCircularRawValueRequest 17,399 17,399 0 0.0%
Sema.HasDefaultInitRequest 79,146 79,144 -2 -0.0%
Sema.HasDynamicCallableAttributeRequest 0 0 0 0.0%
Sema.HasDynamicMemberLookupAttributeRequest 588,358 588,097 -261 -0.04%
Sema.HasImplementationOnlyImportsRequest 310,837 310,822 -15 -0.0%
Sema.HasIsolatedSelfRequest 13,880,632 13,838,111 -42,521 -0.31%
Sema.HasMemberwiseInitRequest 31,678 31,676 -2 -0.01%
Sema.HasMissingDesignatedInitializersRequest 26,621 26,621 0 0.0%
Sema.HasUserDefinedDesignatedInitRequest 79,158 79,156 -2 -0.0%
Sema.InferredGenericSignatureRequest 218,756 218,748 -8 -0.0%
Sema.InheritedDeclsReferencedRequest 6,181,894 6,170,102 -11,792 -0.19%
Sema.InheritedProtocolsRequest 686,908 686,334 -574 -0.08%
Sema.InheritedTypeRequest 406,970 406,927 -43 -0.01%
Sema.InheritsSuperclassInitializersRequest 39,742 39,742 0 0.0%
Sema.InitKindRequest 144,621 144,619 -2 -0.0%
Sema.InterfaceTypeRequest 16,306,936 16,243,705 -63,231 -0.39%
Sema.IsABICompatibleOverrideRequest 256,574 256,573 -1 -0.0%
Sema.IsAccessorTransparentRequest 513,285 513,285 0 0.0%
Sema.IsActorRequest 1,922,918 1,919,512 -3,406 -0.18%
Sema.IsCallableNominalTypeRequest 2,982 2,981 -1 -0.03%
Sema.IsDeclApplicableRequest 0 0 0 0.0%
Sema.IsDeclRefinementOfRequest 36,059 36,057 -2 -0.01%
Sema.IsDefaultActorRequest 55,827 55,827 0 0.0%
Sema.IsDistributedActorRequest 1,904,784 1,901,457 -3,327 -0.17%
Sema.IsDynamicRequest 2,462,469 2,462,437 -32 -0.0%
Sema.IsFinalRequest 3,254,370 3,245,465 -8,905 -0.27%
Sema.IsGetterMutatingRequest 592,208 592,198 -10 -0.0%
Sema.IsImplicitlyUnwrappedOptionalRequest 3,074,984 3,074,412 -572 -0.02%
Sema.IsObjCRequest 2,309,589 2,308,857 -732 -0.03%
Sema.IsSetterMutatingRequest 507,449 507,439 -10 -0.0%
Sema.IsStaticRequest 1,342,182 1,342,174 -8 -0.0%
Sema.LazyStoragePropertyRequest 3,042 3,042 0 0.0%
Sema.LookupAllConformancesInContextRequest 1,957,660 1,942,906 -14,754 -0.75%
Sema.LookupConformanceInModuleRequest 42,778,229 42,654,278 -123,951 -0.29%
Sema.LookupInModuleRequest 6,675,356 6,670,869 -4,487 -0.07%
Sema.LookupInfixOperatorRequest 60,185 60,181 -4 -0.01%
Sema.LookupPostfixOperatorRequest 82 82 0 0.0%
Sema.LookupPrecedenceGroupRequest 28,469 28,468 -1 -0.0%
Sema.LookupPrefixOperatorRequest 327 327 0 0.0%
Sema.MangleLocalTypeDeclRequest 51 51 0 0.0%
Sema.ModuleImplicitImportsRequest 8,859 8,858 -1 -0.01%
Sema.ModuleLibraryLevelRequest 0 0 0 0.0%
Sema.ModuleQualifiedLookupRequest 2,412,675 2,408,305 -4,370 -0.18%
Sema.NamedLazyMemberLoadSuccessCount 27,147,013 27,148,532 1,519 0.01%
Sema.NamingPatternRequest 222,796 222,795 -1 -0.0%
Sema.NeedsNewVTableEntryRequest 889,636 889,636 0 0.0%
Sema.NumAccessorBodiesSynthesized 384,505 384,502 -3 -0.0%
Sema.NumAccessorsSynthesized 486,926 486,923 -3 -0.0%
Sema.NumConformanceAccessPathsRecorded 506,846 506,813 -33 -0.01%
Sema.NumConformancesDeserialized 9,761,081 9,726,514 -34,567 -0.35%
Sema.NumConstraintScopes 20,159,216 20,148,981 -10,235 -0.05%
Sema.NumConstraintsConsideredForEdgeContraction 1,224,536 1,224,522 -14 -0.0%
Sema.NumCrossImportsChecked 0 0 0 0.0%
Sema.NumCrossImportsFound 0 0 0 0.0%
Sema.NumCyclicOneWayComponentsCollapsed 0 0 0 0.0%
Sema.NumDeclsDeserialized 72,090,445 71,814,636 -275,809 -0.38%
Sema.NumDeclsTypechecked 2,416,841 2,416,800 -41 -0.0%
Sema.NumGenericSignatureBuilders 320,304 320,263 -41 -0.01%
Sema.NumLazyIterableDeclContexts 9,380,070 9,367,069 -13,001 -0.14%
Sema.NumLazyRequirementSignatures 825,266 824,740 -526 -0.06%
Sema.NumLazyRequirementSignaturesLoaded 600,626 600,135 -491 -0.08%
Sema.NumLeafScopes 14,573,572 14,565,743 -7,829 -0.05%
Sema.NumRedundantRequirementSteps 936,775 936,664 -111 -0.01%
Sema.NumRequirementMachineCompletionSteps 107,365,287 106,889,444 -475,843 -0.44%
Sema.NumRequirementMachineUnifiedConcreteTerms 75,110 74,985 -125 -0.17%
Sema.NumRequirementMachines 987,635 984,402 -3,233 -0.33%
Sema.NumTypesDeserialized 21,017,719 20,963,279 -54,440 -0.26%
Sema.NumUnloadedLazyIterableDeclContexts 6,413,843 6,418,097 4,254 0.07%
Sema.OpaqueReadOwnershipRequest 426,984 426,982 -2 -0.0%
Sema.OpaqueResultTypeRequest 44 44 0 0.0%
Sema.OperatorPrecedenceGroupRequest 1,317 1,317 0 0.0%
Sema.OverriddenDeclsRequest 4,452,379 4,442,175 -10,204 -0.23%
Sema.ParamSpecifierRequest 1,711,184 1,711,148 -36 -0.0%
Sema.PatternBindingEntryRequest 607,871 607,861 -10 -0.0%
Sema.PatternTypeRequest 693,015 692,999 -16 -0.0%
Sema.PolymorphicEffectKindRequest 104,972 104,970 -2 -0.0%
Sema.PolymorphicEffectRequirementsRequest 0 0 0 0.0%
Sema.PreCheckResultBuilderRequest 32 32 0 0.0%
Sema.PrimarySourceFilesRequest 8,859 8,858 -1 -0.01%
Sema.PropertyWrapperAuxiliaryVariablesRequest 487,018 487,008 -10 -0.0%
Sema.PropertyWrapperBackingPropertyTypeRequest 17,551 17,551 0 0.0%
Sema.PropertyWrapperInitializerInfoRequest 482,313 482,303 -10 -0.0%
Sema.PropertyWrapperLValuenessRequest 600 600 0 0.0%
Sema.PropertyWrapperMutabilityRequest 588,083 588,073 -10 -0.0%
Sema.PropertyWrapperTypeInfoRequest 204 204 0 0.0%
Sema.ProtocolDependenciesRequest 509,492 508,975 -517 -0.1%
Sema.ProtocolRequiresClassRequest 45,579 45,528 -51 -0.11%
Sema.ProvideDefaultImplForRequest 9,200,547 9,126,593 -73,954 -0.8%
Sema.QualifiedLookupRequest 6,796,220 6,790,367 -5,853 -0.09%
Sema.RangeInfoRequest 0 0 0 0.0%
Sema.RenamedDeclRequest 15 15 0 0.0%
Sema.RequirementRequest 176,267 176,265 -2 -0.0%
Sema.RequirementSignatureRequest 657,156 656,632 -524 -0.08%
Sema.RequirementSignatureRequestRQM 0 0 0 0.0%
Sema.RequiresOpaqueAccessorsRequest 1,479,631 1,479,560 -71 -0.0%
Sema.RequiresOpaqueModifyCoroutineRequest 420,361 420,359 -2 -0.0%
Sema.ResolveEffectiveMemberwiseInitRequest 0 0 0 0.0%
Sema.ResolveImplicitMemberRequest 644,406 643,848 -558 -0.09%
Sema.ResolveProtocolNameRequest 0 0 0 0.0%
Sema.ResolveTypeEraserTypeRequest 0 0 0 0.0%
Sema.ResolveTypeRequest 4,524,959 4,524,852 -107 -0.0%
Sema.ResultBuilderTypeRequest 384,904 384,895 -9 -0.0%
Sema.ResultTypeRequest 1,001,186 1,001,172 -14 -0.0%
Sema.RootAndResultTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.RootTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.SPIGroupsRequest 6,111,026 6,100,936 -10,090 -0.17%
Sema.ScopedImportLookupRequest 2,136 2,136 0 0.0%
Sema.SelfAccessKindRequest 838,125 838,119 -6 -0.0%
Sema.SelfBoundsFromWhereClauseRequest 1,952,847 1,951,934 -913 -0.05%
Sema.SetterAccessLevelRequest 204,770 204,766 -4 -0.0%
Sema.SimpleDidSetRequest 2,435,097 2,422,975 -12,122 -0.5%
Sema.SpecializeAttrTargetDeclRequest 2,916 2,916 0 0.0%
Sema.StorageImplInfoRequest 1,706,181 1,706,103 -78 -0.0%
Sema.StoredPropertiesAndMissingMembersRequest 58,151 58,150 -1 -0.0%
Sema.StoredPropertiesRequest 339,702 339,697 -5 -0.0%
Sema.StructuralRequirementsRequest 0 0 0 0.0%
Sema.StructuralTypeRequest 1,651 1,651 0 0.0%
Sema.SuperclassDeclRequest 460,438 460,057 -381 -0.08%
Sema.SuperclassTypeRequest 62,002 61,993 -9 -0.01%
Sema.SynthesizeAccessorRequest 486,926 486,923 -3 -0.0%
Sema.SynthesizeDefaultInitRequest 8,442 8,442 0 0.0%
Sema.SynthesizeMainFunctionRequest 180,776 180,775 -1 -0.0%
Sema.SynthesizeMemberwiseInitRequest 6,109 6,109 0 0.0%
Sema.TangentStoredPropertyRequest 0 0 0 0.0%
Sema.TypeCheckASTNodeAtLocRequest 0 0 0 0.0%
Sema.TypeCheckFunctionBodyRequest 762,374 762,362 -12 -0.0%
Sema.TypeCheckSourceFileRequest 50,326 50,324 -2 -0.0%
Sema.TypeDeclsFromWhereClauseRequest 50,677 50,677 0 0.0%
Sema.TypeEraserHasViableInitRequest 0 0 0 0.0%
Sema.TypeRelationCheckRequest 0 0 0 0.0%
Sema.TypeWitnessRequest 11,176 11,175 -1 -0.01%
Sema.USRGenerationRequest 10,474,133 10,400,376 -73,757 -0.7%
Sema.UnderlyingTypeDeclsReferencedRequest 345,726 345,214 -512 -0.15%
Sema.UnderlyingTypeRequest 47,503 47,500 -3 -0.01%
Sema.UnqualifiedLookupRequest 5,373,216 5,373,075 -141 -0.0%
Sema.ValidatePrecedenceGroupRequest 187,280 187,279 -1 -0.0%
Sema.ValueWitnessRequest 83,047 83,047 0 0.0%
TBDGen.APIGenRequest 0 0 0 0.0%
TBDGen.GenerateTBDRequest 0 0 0 0.0%
TBDGen.PublicSymbolsRequest 24,834 24,833 -1 -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 76,020,634,347,657 76,079,048,015,743 58,413,668,086 0.08%
LLVM.NumLLVMBytesOutput 1,762,721,144 1,762,731,160 10,016 0.0%

release detailed

Regressed (1)
name old new delta delta_pct
AST.NumSourceBuffers 27,262 89,974 62,712 230.03% ⛔
Improved (1)
name old new delta delta_pct
AST.NumModuleLookupClassMember 7,794 7,712 -82 -1.05% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (260)
name old new delta delta_pct
AST.ImportSetCacheHit 1,240,926 1,240,357 -569 -0.05%
AST.ImportSetCacheMiss 55,600 55,557 -43 -0.08%
AST.ImportSetFoldHit 25,967 25,954 -13 -0.05%
AST.ImportSetFoldMiss 29,633 29,603 -30 -0.1%
AST.ModuleShadowCacheHit 3,166 3,166 0 0.0%
AST.ModuleShadowCacheMiss 1,230 1,230 0 0.0%
AST.ModuleVisibilityCacheHit 46,212 46,190 -22 -0.05%
AST.ModuleVisibilityCacheMiss 3,731 3,725 -6 -0.16%
AST.NumASTBytesAllocated 8,612,460,741 8,608,165,184 -4,295,557 -0.05%
AST.NumASTScopeExpansions 2,823,396 2,821,773 -1,623 -0.06%
AST.NumASTScopeLookups 4,162,078 4,159,589 -2,489 -0.06%
AST.NumDecls 141,301 141,102 -199 -0.14%
AST.NumDependencies 44,894 44,876 -18 -0.04%
AST.NumIncrementalDependencies 0 0 0 0.0%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumLoadedModules 24,284 24,265 -19 -0.08%
AST.NumLocalTypeDecls 272 272 0 0.0%
AST.NumModuleLookupValue 28,228,178 28,207,613 -20,565 -0.07%
AST.NumObjCMethods 26,177 26,168 -9 -0.03%
AST.NumOperators 656 656 0 0.0%
AST.NumPrecedenceGroups 125 125 0 0.0%
AST.NumReferencedDynamicNames 0 0 0 0.0%
AST.NumReferencedMemberNames 4,134 4,134 0 0.0%
AST.NumReferencedTopLevelNames 352 352 0 0.0%
AST.NumSourceLines 4,586,270 4,581,304 -4,966 -0.11%
AST.NumSourceLinesPerSecond 427,169 426,715 -454 -0.11%
AST.NumTotalClangImportedEntities 479,790 479,408 -382 -0.08%
Frontend.MaxMallocUsage 249,283,295,072 248,775,394,088 -507,900,984 -0.2%
Frontend.NumInstructionsExecuted 76,020,634,347,657 76,079,048,015,743 58,413,668,086 0.08%
Frontend.NumProcessFailures 9 9 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.NumGOTEntries 213,098 213,098 0 0.0%
IRModule.NumIRAliases 159,675 159,675 0 0.0%
IRModule.NumIRBasicBlocks 4,464,347 4,464,347 0 0.0%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRFunctions 2,712,635 2,712,635 0 0.0%
IRModule.NumIRGlobals 3,213,217 3,213,217 0 0.0%
IRModule.NumIRIFuncs 0 0 0 0.0%
IRModule.NumIRInsts 44,640,858 44,640,858 0 0.0%
IRModule.NumIRNamedMetaData 124,131 124,131 0 0.0%
IRModule.NumIRValueSymbols 5,674,036 5,674,036 0 0.0%
LLVM.NumLLVMBytesOutput 1,762,721,144 1,762,731,160 10,016 0.0%
Parse.CodeCompletionSecondPassRequest 0 0 0 0.0%
Parse.NumFunctionsParsed 272,333 272,039 -294 -0.11%
Parse.NumIterableDeclContextParsed 92,340 92,199 -141 -0.15%
Parse.ParseAbstractFunctionBodyRequest 254,532 254,476 -56 -0.02%
Parse.ParseMembersRequest 370 370 0 0.0%
Parse.ParseSourceFileRequest 26,020 25,967 -53 -0.2%
SILGen.ASTLoweringRequest 1,105 1,105 0 0.0%
SILGen.ParseSILModuleRequest 0 0 0 0.0%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILGenFunctions 1,159,338 1,159,338 0 0.0%
SILModule.NumSILGenGlobalVariables 55,622 55,622 0 0.0%
SILModule.NumSILGenVtables 17,431 17,431 0 0.0%
SILModule.NumSILGenWitnessTables 66,025 66,025 0 0.0%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptFunctions 986,400 986,400 0 0.0%
SILModule.NumSILOptGlobalVariables 45,127 45,127 0 0.0%
SILModule.NumSILOptVtables 20,569 20,569 0 0.0%
SILModule.NumSILOptWitnessTables 67,699 67,699 0 0.0%
SILOptimizer.ExecuteSILPipelineRequest 4,412 4,412 0 0.0%
SILOptimizer.LoweredSILRequest 0 0 0 0.0%
Sema.ABIMembersRequest 89,723 89,714 -9 -0.01%
Sema.AbstractGenericSignatureRequest 26,469 26,461 -8 -0.03%
Sema.AccessLevelRequest 1,552,777 1,552,351 -426 -0.03%
Sema.ActorIsolationRequest 1,611,365 1,610,426 -939 -0.06%
Sema.AllMembersRequest 88,509 88,509 0 0.0%
Sema.AnyObjectLookupRequest 301 299 -2 -0.66%
Sema.ApplyAccessNoteRequest 1,607,806 1,606,923 -883 -0.05%
Sema.AreAllStoredPropertiesDefaultInitableRequest 14,732 14,728 -4 -0.03%
Sema.AttachedPropertyWrapperTypeRequest 6,979 6,979 0 0.0%
Sema.AttachedPropertyWrappersRequest 736,493 736,070 -423 -0.06%
Sema.AttachedResultBuilderRequest 432,091 431,869 -222 -0.05%
Sema.BodyInitKindRequest 46,655 46,645 -10 -0.02%
Sema.CXXNamespaceMemberLookup 0 0 0 0.0%
Sema.CallerSideDefaultArgExprRequest 103,046 103,046 0 0.0%
Sema.CheckInconsistentImplementationOnlyImportsRequest 1,114 1,114 0 0.0%
Sema.CheckRedeclarationRequest 966,088 965,657 -431 -0.04%
Sema.ClangDirectLookupRequest 34,262 34,253 -9 -0.03%
Sema.ClangRecordMemberLookup 34,262 34,253 -9 -0.03%
Sema.ClassAncestryFlagsRequest 47,827 47,812 -15 -0.03%
Sema.ClosureHasExplicitResultRequest 31,243 31,231 -12 -0.04%
Sema.CodeCompletionFileRequest 0 0 0 0.0%
Sema.CollectOverriddenDeclsRequest 0 0 0 0.0%
Sema.CompareDeclSpecializationRequest 371,606 371,420 -186 -0.05%
Sema.ConditionalRequirementsRequest 176,828 176,741 -87 -0.05%
Sema.ConformanceHasEffectRequest 0 0 0 0.0%
Sema.CursorInfoRequest 0 0 0 0.0%
Sema.CustomAttrNominalRequest 10,369 10,369 0 0.0%
Sema.CustomAttrTypeRequest 294 294 0 0.0%
Sema.DefaultAndMaxAccessLevelRequest 41,124 41,060 -64 -0.16%
Sema.DefaultArgumentExprRequest 40,322 40,300 -22 -0.05%
Sema.DefaultArgumentInitContextRequest 98 98 0 0.0%
Sema.DefaultDefinitionTypeRequest 2,897 2,894 -3 -0.1%
Sema.DefaultTypeRequest 244,782 244,687 -95 -0.04%
Sema.DerivativeAttrOriginalDeclRequest 8 8 0 0.0%
Sema.DifferentiableAttributeTypeCheckRequest 0 0 0 0.0%
Sema.DirectLookupRequest 32,529,254 32,517,801 -11,453 -0.04%
Sema.DirectOperatorLookupRequest 1,166,346 1,164,310 -2,036 -0.17%
Sema.DirectPrecedenceGroupLookupRequest 577,585 576,500 -1,085 -0.19%
Sema.DistributedModuleIsAvailableRequest 0 0 0 0.0%
Sema.DynamicallyReplacedDeclRequest 782,135 781,942 -193 -0.02%
Sema.EnumRawTypeRequest 8,850 8,848 -2 -0.02%
Sema.EnumRawValuesRequest 9,634 9,632 -2 -0.02%
Sema.ExistentialConformsToSelfRequest 5,146 5,143 -3 -0.06%
Sema.ExtendedNominalRequest 44,353 44,289 -64 -0.14%
Sema.ExtendedTypeRequest 44,275 44,211 -64 -0.14%
Sema.FragileFunctionKindRequest 987,097 986,740 -357 -0.04%
Sema.FunctionOperatorRequest 8,531 8,531 0 0.0%
Sema.GenericParamListRequest 1,247,091 1,246,450 -641 -0.05%
Sema.GenericSignatureRequest 997,262 996,728 -534 -0.05%
Sema.GetDestructorRequest 18,832 18,828 -4 -0.02%
Sema.GetDistributedRemoteFuncRequest 0 0 0 0.0%
Sema.GetImplicitSendableRequest 40,417 40,403 -14 -0.03%
Sema.GlobalActorAttributeRequest 1,869,172 1,867,976 -1,196 -0.06%
Sema.GlobalActorInstanceRequest 180 180 0 0.0%
Sema.HasCircularInheritedProtocolsRequest 8,082 8,075 -7 -0.09%
Sema.HasCircularRawValueRequest 8,850 8,848 -2 -0.02%
Sema.HasDefaultInitRequest 29,552 29,541 -11 -0.04%
Sema.HasDynamicCallableAttributeRequest 0 0 0 0.0%
Sema.HasDynamicMemberLookupAttributeRequest 250,564 250,168 -396 -0.16%
Sema.HasImplementationOnlyImportsRequest 25,923 25,870 -53 -0.2%
Sema.HasIsolatedSelfRequest 3,509,639 3,507,920 -1,719 -0.05%
Sema.HasMemberwiseInitRequest 11,868 11,864 -4 -0.03%
Sema.HasMissingDesignatedInitializersRequest 19,035 19,033 -2 -0.01%
Sema.HasUserDefinedDesignatedInitRequest 29,552 29,541 -11 -0.04%
Sema.InferredGenericSignatureRequest 69,722 69,642 -80 -0.11%
Sema.InheritedDeclsReferencedRequest 1,102,686 1,101,842 -844 -0.08%
Sema.InheritedProtocolsRequest 105,510 105,422 -88 -0.08%
Sema.InheritedTypeRequest 158,123 157,894 -229 -0.14%
Sema.InheritsSuperclassInitializersRequest 15,180 15,173 -7 -0.05%
Sema.InitKindRequest 58,707 58,685 -22 -0.04%
Sema.InterfaceTypeRequest 3,291,398 3,289,782 -1,616 -0.05%
Sema.IsABICompatibleOverrideRequest 130,282 130,282 0 0.0%
Sema.IsAccessorTransparentRequest 261,416 261,403 -13 -0.0%
Sema.IsActorRequest 302,167 301,964 -203 -0.07%
Sema.IsCallableNominalTypeRequest 2,433 2,432 -1 -0.04%
Sema.IsDeclApplicableRequest 0 0 0 0.0%
Sema.IsDeclRefinementOfRequest 21,915 21,909 -6 -0.03%
Sema.IsDefaultActorRequest 24,311 24,311 0 0.0%
Sema.IsDistributedActorRequest 295,550 295,347 -203 -0.07%
Sema.IsDynamicRequest 1,215,798 1,215,364 -434 -0.04%
Sema.IsFinalRequest 997,594 997,223 -371 -0.04%
Sema.IsGetterMutatingRequest 322,739 322,580 -159 -0.05%
Sema.IsImplicitlyUnwrappedOptionalRequest 1,860,814 1,860,092 -722 -0.04%
Sema.IsObjCRequest 1,067,135 1,066,689 -446 -0.04%
Sema.IsSetterMutatingRequest 308,151 308,010 -141 -0.05%
Sema.IsStaticRequest 563,107 562,808 -299 -0.05%
Sema.LazyStoragePropertyRequest 704 704 0 0.0%
Sema.LookupAllConformancesInContextRequest 114,000 113,902 -98 -0.09%
Sema.LookupConformanceInModuleRequest 58,082,059 58,054,212 -27,847 -0.05%
Sema.LookupInModuleRequest 2,176,202 2,175,057 -1,145 -0.05%
Sema.LookupInfixOperatorRequest 51,921 51,900 -21 -0.04%
Sema.LookupPostfixOperatorRequest 41 41 0 0.0%
Sema.LookupPrecedenceGroupRequest 25,575 25,558 -17 -0.07%
Sema.LookupPrefixOperatorRequest 157 157 0 0.0%
Sema.MangleLocalTypeDeclRequest 251 251 0 0.0%
Sema.ModuleImplicitImportsRequest 1,114 1,114 0 0.0%
Sema.ModuleLibraryLevelRequest 0 0 0 0.0%
Sema.ModuleQualifiedLookupRequest 407,329 407,094 -235 -0.06%
Sema.NamedLazyMemberLoadSuccessCount 10,006,373 9,997,784 -8,589 -0.09%
Sema.NamingPatternRequest 66,307 66,283 -24 -0.04%
Sema.NeedsNewVTableEntryRequest 532,005 532,005 0 0.0%
Sema.NumAccessorBodiesSynthesized 198,302 198,255 -47 -0.02%
Sema.NumAccessorsSynthesized 202,103 202,053 -50 -0.02%
Sema.NumConformanceAccessPathsRecorded 599,483 599,479 -4 -0.0%
Sema.NumConformancesDeserialized 2,972,363 2,971,833 -530 -0.02%
Sema.NumConstraintScopes 17,149,534 17,138,671 -10,863 -0.06%
Sema.NumConstraintsConsideredForEdgeContraction 1,288,464 1,284,131 -4,333 -0.34%
Sema.NumCrossImportsChecked 0 0 0 0.0%
Sema.NumCrossImportsFound 0 0 0 0.0%
Sema.NumCyclicOneWayComponentsCollapsed 0 0 0 0.0%
Sema.NumDeclsDeserialized 10,028,508 10,023,878 -4,630 -0.05%
Sema.NumDeclsTypechecked 1,388,652 1,387,905 -747 -0.05%
Sema.NumGenericSignatureBuilders 96,299 96,201 -98 -0.1%
Sema.NumLazyIterableDeclContexts 1,465,550 1,464,600 -950 -0.06%
Sema.NumLazyRequirementSignatures 115,324 115,262 -62 -0.05%
Sema.NumLazyRequirementSignaturesLoaded 90,056 90,001 -55 -0.06%
Sema.NumLeafScopes 12,326,864 12,321,329 -5,535 -0.04%
Sema.NumRedundantRequirementSteps 294,887 294,478 -409 -0.14%
Sema.NumRequirementMachineCompletionSteps 15,074,332 15,066,196 -8,136 -0.05%
Sema.NumRequirementMachineUnifiedConcreteTerms 14,142 14,139 -3 -0.02%
Sema.NumRequirementMachines 144,066 143,957 -109 -0.08%
Sema.NumTypesDeserialized 4,543,570 4,541,835 -1,735 -0.04%
Sema.NumUnloadedLazyIterableDeclContexts 1,126,925 1,126,154 -771 -0.07%
Sema.OpaqueReadOwnershipRequest 180,419 180,372 -47 -0.03%
Sema.OpaqueResultTypeRequest 16 16 0 0.0%
Sema.OperatorPrecedenceGroupRequest 573 573 0 0.0%
Sema.OverriddenDeclsRequest 1,212,472 1,211,861 -611 -0.05%
Sema.ParamSpecifierRequest 772,211 771,861 -350 -0.05%
Sema.PatternBindingEntryRequest 295,707 295,567 -140 -0.05%
Sema.PatternTypeRequest 375,482 375,320 -162 -0.04%
Sema.PolymorphicEffectKindRequest 59,842 59,831 -11 -0.02%
Sema.PolymorphicEffectRequirementsRequest 0 0 0 0.0%
Sema.PreCheckResultBuilderRequest 23 23 0 0.0%
Sema.PrimarySourceFilesRequest 1,114 1,114 0 0.0%
Sema.PropertyWrapperAuxiliaryVariablesRequest 303,937 303,797 -140 -0.05%
Sema.PropertyWrapperBackingPropertyTypeRequest 6,979 6,979 0 0.0%
Sema.PropertyWrapperInitializerInfoRequest 309,781 309,641 -140 -0.05%
Sema.PropertyWrapperLValuenessRequest 300 300 0 0.0%
Sema.PropertyWrapperMutabilityRequest 321,168 321,010 -158 -0.05%
Sema.PropertyWrapperTypeInfoRequest 63 63 0 0.0%
Sema.ProtocolDependenciesRequest 84,509 84,451 -58 -0.07%
Sema.ProtocolRequiresClassRequest 8,763 8,754 -9 -0.1%
Sema.ProvideDefaultImplForRequest 0 0 0 0.0%
Sema.QualifiedLookupRequest 3,724,350 3,722,377 -1,973 -0.05%
Sema.RangeInfoRequest 0 0 0 0.0%
Sema.RenamedDeclRequest 15 15 0 0.0%
Sema.RequirementRequest 71,761 71,533 -228 -0.32%
Sema.RequirementSignatureRequest 100,428 100,361 -67 -0.07%
Sema.RequirementSignatureRequestRQM 0 0 0 0.0%
Sema.RequiresOpaqueAccessorsRequest 1,131,222 1,130,611 -611 -0.05%
Sema.RequiresOpaqueModifyCoroutineRequest 176,224 176,178 -46 -0.03%
Sema.ResolveEffectiveMemberwiseInitRequest 0 0 0 0.0%
Sema.ResolveImplicitMemberRequest 385,427 385,270 -157 -0.04%
Sema.ResolveProtocolNameRequest 0 0 0 0.0%
Sema.ResolveTypeEraserTypeRequest 0 0 0 0.0%
Sema.ResolveTypeRequest 1,864,905 1,862,997 -1,908 -0.1%
Sema.ResultBuilderTypeRequest 326,260 326,083 -177 -0.05%
Sema.ResultTypeRequest 399,627 399,447 -180 -0.05%
Sema.RootAndResultTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.RootTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.SPIGroupsRequest 1,811,865 1,810,722 -1,143 -0.06%
Sema.ScopedImportLookupRequest 1,177 1,166 -11 -0.93%
Sema.SelfAccessKindRequest 321,835 321,619 -216 -0.07%
Sema.SelfBoundsFromWhereClauseRequest 498,358 497,665 -693 -0.14%
Sema.SetterAccessLevelRequest 125,407 125,361 -46 -0.04%
Sema.SimpleDidSetRequest 328,763 328,689 -74 -0.02%
Sema.SpecializeAttrTargetDeclRequest 1,539 1,539 0 0.0%
Sema.StorageImplInfoRequest 1,237,049 1,236,432 -617 -0.05%
Sema.StoredPropertiesAndMissingMembersRequest 38,302 38,302 0 0.0%
Sema.StoredPropertiesRequest 136,168 136,150 -18 -0.01%
Sema.StructuralRequirementsRequest 0 0 0 0.0%
Sema.StructuralTypeRequest 390 390 0 0.0%
Sema.SuperclassDeclRequest 93,440 93,388 -52 -0.06%
Sema.SuperclassTypeRequest 22,327 22,318 -9 -0.04%
Sema.SynthesizeAccessorRequest 202,103 202,053 -50 -0.02%
Sema.SynthesizeDefaultInitRequest 3,081 3,080 -1 -0.03%
Sema.SynthesizeMainFunctionRequest 88,779 88,773 -6 -0.01%
Sema.SynthesizeMemberwiseInitRequest 2,471 2,471 0 0.0%
Sema.TangentStoredPropertyRequest 0 0 0 0.0%
Sema.TypeCheckASTNodeAtLocRequest 0 0 0 0.0%
Sema.TypeCheckFunctionBodyRequest 520,469 520,263 -206 -0.04%
Sema.TypeCheckSourceFileRequest 25,996 25,943 -53 -0.2%
Sema.TypeDeclsFromWhereClauseRequest 22,166 22,110 -56 -0.25%
Sema.TypeEraserHasViableInitRequest 0 0 0 0.0%
Sema.TypeRelationCheckRequest 0 0 0 0.0%
Sema.TypeWitnessRequest 3,574 3,571 -3 -0.08%
Sema.USRGenerationRequest 388,892 388,886 -6 -0.0%
Sema.UnderlyingTypeDeclsReferencedRequest 62,083 62,034 -49 -0.08%
Sema.UnderlyingTypeRequest 17,682 17,670 -12 -0.07%
Sema.UnqualifiedLookupRequest 2,178,576 2,177,016 -1,560 -0.07%
Sema.ValidatePrecedenceGroupRequest 178,744 178,689 -55 -0.03%
Sema.ValueWitnessRequest 37,188 37,161 -27 -0.07%
TBDGen.APIGenRequest 0 0 0 0.0%
TBDGen.GenerateTBDRequest 0 0 0 0.0%
TBDGen.PublicSymbolsRequest 1,101 1,101 0 0.0%
TBDGen.SymbolSourceMapRequest 0 0 0 0.0%

@zoecarver
Copy link
Contributor

I'd love to see these changes land. Is there anything currently blocking this?

@swift-ci please test linux platform.

@zoecarver
Copy link
Contributor

@swift-ci please test linux platform

@drodriguez
Copy link
Contributor

I'd love to see these changes land. Is there anything currently blocking this?

Nothing beyond me wanting to check that I understood the benchmark results correctly, and those "regressions" are just talking about number of files, and not some number of seconds.

@bnbarham: from the benchmarks above, it looks like, as expected, the number of source buffers grows significantly, but nothing else regressed, specially in time. Merging this would allow you to continue your work in that other PR without a lot of conflict, but tell us if we should hold this for any other reason. Thanks!

@bnbarham
Copy link
Contributor

bnbarham commented Nov 9, 2021

Nothing beyond me wanting to check that I understood the benchmark results correctly, and those "regressions" are just talking about number of files, and not some number of seconds.

@bnbarham: from the benchmarks above, it looks like, as expected, the number of source buffers grows significantly, but nothing else regressed, specially in time. Merging this would allow you to continue your work in that other PR without a lot of conflict, but tell us if we should hold this for any other reason. Thanks!

Looks like it's just the number of files to me, so seems fine. I'll close the other PR, if people are interested in having getLoc return the imported location I can fix those tests that currently fail and put it up again though. Although we probably wouldn't want to do that until those FIXME's are fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ interop Feature: Interoperability with C++
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants