Skip to content

Remove used conformances list #25044

New issue

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

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

Already on GitHub? Sign in to your account

Merged

Conversation

slavapestov
Copy link
Contributor

@slavapestov slavapestov commented May 24, 2019

Follow-up to #25009 and #24872.

@slavapestov
Copy link
Contributor Author

@swift-ci Please test

@slavapestov
Copy link
Contributor Author

@swift-ci Please test source compatibility

@slavapestov
Copy link
Contributor Author

@swift-ci Please test compiler performance

@slavapestov slavapestov requested a review from xymus May 24, 2019 04:52
@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 83629fad7da765e4b6d5677b1e39de6a0a3f4a6c

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 83629fad7da765e4b6d5677b1e39de6a0a3f4a6c

@swift-ci
Copy link
Contributor

Summary for master full

Unexpected test results, excluded stats for Core, Tagged, FluentSQL, Deferred, FluentBenchmark, ProcedureKitCloud, DatabaseKit, Fluent, ProcedureKit, SQL, Wordy, plank

Regressions found (see below)

Debug-batch

debug-batch brief

Regressed (0)
name old new delta delta_pct
Improved (1)
name old new delta delta_pct
time.swift-driver.wall 2799.5s 2719.5s -80.0s -2.86% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (2)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 27,712,317,866,706 27,492,863,618,402 -219,454,248,304 -0.79%
LLVM.NumLLVMBytesOutput 1,124,334,248 1,118,981,772 -5,352,476 -0.48%

debug-batch detailed

Regressed (1)
name old new delta delta_pct
Sema.USRGenerationRequest 11,682,519 11,949,987 267,468 2.29% ⛔
Improved (46)
name old new delta delta_pct
AST.NumDependencies 184,380 181,778 -2,602 -1.41% ✅
AST.NumImportedExternalDefinitions 1,114,118 0 -1,114,118 -100.0% ✅
AST.NumLoadedModules 221,550 218,614 -2,936 -1.33% ✅
AST.NumReferencedDynamicNames 122 120 -2 -1.64% ✅
AST.NumTotalClangImportedEntities 4,232,335 4,168,068 -64,267 -1.52% ✅
Driver.NumDriverPipePolls 145,401 138,026 -7,375 -5.07% ✅
Driver.NumDriverPipeReads 155,512 147,965 -7,547 -4.85% ✅
Frontend.MaxMallocUsage 656,983,234,592 650,039,380,584 -6,943,854,008 -1.06% ✅
Sema.AccessLevelRequest 2,751,016 2,678,273 -72,743 -2.64% ✅
Sema.AttachedPropertyDelegateRequest 1,364,185 1,303,535 -60,650 -4.45% ✅
Sema.AttachedPropertyDelegateTypeRequest 271,738 216,666 -55,072 -20.27% ✅
Sema.DefaultAndMaxAccessLevelRequest 61,228 57,291 -3,937 -6.43% ✅
Sema.DefaultDefinitionTypeRequest 5,266 4,852 -414 -7.86% ✅
Sema.DefaultTypeRequest 319,510 315,334 -4,176 -1.31% ✅
Sema.EnumRawTypeRequest 17,686 16,938 -748 -4.23% ✅
Sema.ExtendedNominalRequest 3,307,738 3,237,882 -69,856 -2.11% ✅
Sema.InheritedTypeRequest 228,480 223,340 -5,140 -2.25% ✅
Sema.IsDynamicRequest 2,025,439 1,923,898 -101,541 -5.01% ✅
Sema.IsFinalRequest 3,689,078 3,637,231 -51,847 -1.41% ✅
Sema.IsObjCRequest 1,843,907 1,758,109 -85,798 -4.65% ✅
Sema.NamedLazyMemberLoadFailureCount 22,086 21,508 -578 -2.62% ✅
Sema.NamedLazyMemberLoadSuccessCount 18,350,046 17,828,679 -521,367 -2.84% ✅
Sema.NominalTypeLookupDirectCount 25,216,631 23,379,485 -1,837,146 -7.29% ✅
Sema.NumConstraintScopes 16,959,987 16,631,371 -328,616 -1.94% ✅
Sema.NumConstraintsConsideredForEdgeContraction 43,858,149 43,189,161 -668,988 -1.53% ✅
Sema.NumDeclsFinalized 1,806,911 1,688,820 -118,091 -6.54% ✅
Sema.NumDeclsTypechecked 998,634 872,816 -125,818 -12.6% ✅
Sema.NumDeclsValidated 2,330,992 2,254,594 -76,398 -3.28% ✅
Sema.NumFunctionsTypechecked 396,843 192,608 -204,235 -51.46% ✅
Sema.NumGenericSignatureBuilders 991,340 959,463 -31,877 -3.22% ✅
Sema.NumLazyGenericEnvironments 9,144,842 9,002,756 -142,086 -1.55% ✅
Sema.NumLazyGenericEnvironmentsLoaded 213,727 211,114 -2,613 -1.22% ✅
Sema.NumLazyIterableDeclContexts 6,010,095 5,874,767 -135,328 -2.25% ✅
Sema.NumLeafScopes 11,164,680 10,924,513 -240,167 -2.15% ✅
Sema.NumTypesDeserialized 14,888,968 14,679,928 -209,040 -1.4% ✅
Sema.NumTypesValidated 1,771,904 1,682,629 -89,275 -5.04% ✅
Sema.NumUnloadedLazyIterableDeclContexts 3,887,656 3,767,957 -119,699 -3.08% ✅
Sema.PropertyDelegateBackingPropertyInfoRequest 269,387 214,363 -55,024 -20.43% ✅
Sema.PropertyDelegateBackingPropertyTypeRequest 271,738 216,666 -55,072 -20.27% ✅
Sema.RequirementRequest 64,005 61,986 -2,019 -3.15% ✅
Sema.RequirementSignatureRequest 66,017 65,214 -803 -1.22% ✅
Sema.SetterAccessLevelRequest 153,943 151,620 -2,323 -1.51% ✅
Sema.SuperclassDeclRequest 84,098 82,926 -1,172 -1.39% ✅
Sema.SuperclassTypeRequest 37,602 37,136 -466 -1.24% ✅
Sema.TypeDeclsFromWhereClauseRequest 31,409 30,040 -1,369 -4.36% ✅
Sema.UnderlyingTypeDeclsReferencedRequest 161,353 158,415 -2,938 -1.82% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (62)
name old new delta delta_pct
AST.NumASTBytesAllocated 65,706,210,312 65,352,545,100 -353,665,212 -0.54%
AST.NumDecls 91,101 90,416 -685 -0.75%
AST.NumInfixOperators 34,295 34,178 -117 -0.34%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumLocalTypeDecls 123 123 0 0.0%
AST.NumObjCMethods 15,429 15,386 -43 -0.28%
AST.NumPostfixOperators 18 18 0 0.0%
AST.NumPrecedenceGroups 16,749 16,635 -114 -0.68%
AST.NumPrefixOperators 88 88 0 0.0%
AST.NumReferencedMemberNames 3,957,959 3,941,185 -16,774 -0.42%
AST.NumReferencedTopLevelNames 306,950 305,355 -1,595 -0.52%
AST.NumSourceBuffers 382,738 379,606 -3,132 -0.82%
AST.NumSourceLines 3,071,939 3,059,004 -12,935 -0.42%
AST.NumSourceLinesPerSecond 2,293,379 2,315,556 22,177 0.97%
AST.NumStoredPropertiesQueries 9,058,445 9,031,492 -26,953 -0.3%
Driver.ChildrenMaxRSS 102,597,769,216 101,589,563,392 -1,008,205,824 -0.98%
Driver.DriverDepCascadingDynamic 0 0 0 0.0%
Driver.DriverDepCascadingExternal 0 0 0 0.0%
Driver.DriverDepCascadingMember 0 0 0 0.0%
Driver.DriverDepCascadingNominal 0 0 0 0.0%
Driver.DriverDepCascadingTopLevel 0 0 0 0.0%
Driver.DriverDepDynamic 0 0 0 0.0%
Driver.DriverDepExternal 0 0 0 0.0%
Driver.DriverDepMember 0 0 0 0.0%
Driver.DriverDepNominal 0 0 0 0.0%
Driver.DriverDepTopLevel 0 0 0 0.0%
Driver.NumDriverJobsRun 18,288 18,132 -156 -0.85%
Driver.NumDriverJobsSkipped 0 0 0 0.0%
Driver.NumProcessFailures 0 0 0 0.0%
Frontend.NumInstructionsExecuted 27,712,317,866,706 27,492,863,618,402 -219,454,248,304 -0.79%
Frontend.NumProcessFailures 0 0 0 0.0%
IRModule.NumIRAliases 118,302 117,907 -395 -0.33%
IRModule.NumIRBasicBlocks 4,544,624 4,527,381 -17,243 -0.38%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRFunctions 2,044,931 2,033,955 -10,976 -0.54%
IRModule.NumIRGlobals 2,141,658 2,131,316 -10,342 -0.48%
IRModule.NumIRIFuncs 0 0 0 0.0%
IRModule.NumIRInsts 59,729,115 59,569,055 -160,060 -0.27%
IRModule.NumIRNamedMetaData 88,925 88,170 -755 -0.85%
IRModule.NumIRValueSymbols 3,743,944 3,724,238 -19,706 -0.53%
LLVM.NumLLVMBytesOutput 1,124,334,248 1,118,981,772 -5,352,476 -0.48%
Parse.NumFunctionsParsed 169,012 168,293 -719 -0.43%
Parse.NumIterableDeclContextParsed 1,120,212 1,113,530 -6,682 -0.6%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILGenFunctions 1,057,329 1,052,973 -4,356 -0.41%
SILModule.NumSILGenGlobalVariables 40,213 40,141 -72 -0.18%
SILModule.NumSILGenVtables 12,247 12,205 -42 -0.34%
SILModule.NumSILGenWitnessTables 43,274 43,143 -131 -0.3%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptFunctions 1,503,892 1,497,974 -5,918 -0.39%
SILModule.NumSILOptGlobalVariables 41,056 40,982 -74 -0.18%
SILModule.NumSILOptVtables 20,263 20,183 -80 -0.39%
SILModule.NumSILOptWitnessTables 95,411 95,095 -316 -0.33%
Sema.CustomAttrNominalRequest 0 0 0 0.0%
Sema.InheritedDeclsReferencedRequest 3,563,228 3,556,959 -6,269 -0.18%
Sema.MangleLocalTypeDeclRequest 246 246 0 0.0%
Sema.NumConformancesDeserialized 5,974,346 5,972,526 -1,820 -0.03%
Sema.NumDeclsDeserialized 45,481,858 45,206,008 -275,850 -0.61%
Sema.OverriddenDeclsRequest 7,312,518 7,350,344 37,826 0.52%
Sema.PropertyDelegateTypeInfoRequest 0 0 0 0.0%
Sema.SelfBoundsFromWhereClauseRequest 4,646,052 4,628,656 -17,396 -0.37%
Sema.StructuralTypeRequest 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) (3)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 27,764,002,827,351 27,768,391,313,908 4,388,486,557 0.02%
LLVM.NumLLVMBytesOutput 968,360,722 968,351,356 -9,366 -0.0%
time.swift-driver.wall 4971.1s 4969.2s -1.9s -0.04%

release detailed

Regressed (0)
name old new delta delta_pct
Improved (2)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 221,525 0 -221,525 -100.0% ✅
Sema.NumFunctionsTypechecked 247,303 196,815 -50,488 -20.42% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (20)
name old new delta delta_pct
AST.NumLoadedModules 15,451 15,451 0 0.0%
AST.NumTotalClangImportedEntities 761,165 761,165 0 0.0%
IRModule.NumIRBasicBlocks 3,813,183 3,813,162 -21 -0.0%
IRModule.NumIRFunctions 1,712,297 1,712,275 -22 -0.0%
IRModule.NumIRGlobals 1,897,586 1,897,580 -6 -0.0%
IRModule.NumIRInsts 34,793,658 34,793,507 -151 -0.0%
IRModule.NumIRValueSymbols 3,348,872 3,348,845 -27 -0.0%
LLVM.NumLLVMBytesOutput 968,360,722 968,351,356 -9,366 -0.0%
SILModule.NumSILGenFunctions 730,582 730,569 -13 -0.0%
SILModule.NumSILOptFunctions 969,036 969,024 -12 -0.0%
Sema.NumConformancesDeserialized 2,197,183 2,198,560 1,377 0.06%
Sema.NumConstraintScopes 16,340,781 16,339,659 -1,122 -0.01%
Sema.NumDeclsDeserialized 5,768,064 5,765,660 -2,404 -0.04%
Sema.NumDeclsValidated 1,172,788 1,172,776 -12 -0.0%
Sema.NumGenericSignatureBuilders 179,653 179,564 -89 -0.05%
Sema.NumLazyGenericEnvironments 1,180,850 1,180,094 -756 -0.06%
Sema.NumLazyGenericEnvironmentsLoaded 21,085 21,085 0 0.0%
Sema.NumLazyIterableDeclContexts 716,524 716,499 -25 -0.0%
Sema.NumTypesDeserialized 3,065,848 3,082,861 17,013 0.55%
Sema.NumTypesValidated 717,970 717,960 -10 -0.0%

@slavapestov slavapestov force-pushed the remove-used-conformances-list branch 2 times, most recently from 278a6ca to a8bd88b Compare May 24, 2019 23:38
@slavapestov
Copy link
Contributor Author

@swift-ci Please test

@slavapestov
Copy link
Contributor Author

@swift-ci Please test source compatibility

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 83629fad7da765e4b6d5677b1e39de6a0a3f4a6c

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 83629fad7da765e4b6d5677b1e39de6a0a3f4a6c

Anything added here has a type checked body now, so it no longer
serves any purpose.
In preparation for removing the UsedConformances list, immediately
complete the conformances here instead of adding them to the list.
…solving associated conformances

ConformanceChecker::ensureRequirementsAreSatisfied() modifies the
conformance as it resolves each one of its associated conformances,
so a re-entrant call can end up corrupting state by adding too
many elements to the buffer, or adding elements at the wrong
offsets.

If TypeChecker::checkConformanceRequirements() was called before
ConformanceChecker::resolveTypeWitnesses(), we could re-entrantly call
ConformanceChecker::ensureRequirementsAreSatisfied():

TypeChecker::checkConformanceRequirements()
=> ConformanceChecker::ensureRequirementsAreSatisfied()
   => Type::subst(), etc
      => ConformanceChecker::resolveTypeWitnesses()
         => ConformanceChecker::ensureRequirementsAreSatisfied()

The code in SubstitutionMap::lookupConformance() worked around
this by checking the failure condition and calling
resolveTypeWitness() first, before calling getAssociatedConformance().

Instead, remove this and call resolveTypeWitness() from inside
NormalProtocolConformance::getAssociatedConformance().
This was added before we had 'associated conformances', which superceded
the inherited conformances concept, so it's been dead for a while.
@slavapestov slavapestov force-pushed the remove-used-conformances-list branch from a8bd88b to c9ea70e Compare May 29, 2019 02:10
@slavapestov
Copy link
Contributor Author

@swift-ci Please test source compatibility

@slavapestov
Copy link
Contributor Author

@swift-ci Please smoke test

@slavapestov
Copy link
Contributor Author

@swift-ci Please test source compatibility

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