Skip to content

Enable ExistentialSpecializer by default #19820

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
May 6, 2019

Conversation

rajbarik
Copy link
Contributor

Enable ExistentialSpecializer by default.

@rajbarik
Copy link
Contributor Author

Enabling Existential Specializer by default.

@slavapestov
Copy link
Contributor

@swift-ci Please benchmark

@slavapestov
Copy link
Contributor

@swift-ci Please test compiler performance

@slavapestov
Copy link
Contributor

@swift-ci Please test source compatibility

@slavapestov
Copy link
Contributor

@swift-ci Please test

@swift-ci
Copy link
Contributor

Build comment file:

Build failed before running benchmark.


@slavapestov
Copy link
Contributor

I don’t think this is you:

Undefined symbols for architecture x86_64:
15:50:06   "__swift_FORCE_LOAD_$_swiftMetal", referenced from:
15:50:06       __swift_FORCE_LOAD_$_swiftMetal_$_Vision in Vision.o

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - bb34051

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - bb34051

@rajbarik
Copy link
Contributor Author

nope, not me.

@swift-ci
Copy link
Contributor

Build comment file:

Summary for master full

Unexpected test results, excluded stats for RxSwift, Fluent, Wordy, ReactiveSwift

Regressions found (see below)

Debug-batch

debug-batch brief

Regressed (1)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 14,443,405,244,046 32,323,387,414,672 17,879,982,170,626 123.79% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (2)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 662,115,346 662,123,382 8,036 0.0%
time.swift-driver.wall 1674.0s 1679.6s 5.7s 0.34%

debug-batch detailed

Regressed (2)
name old new delta delta_pct
Frontend.MaxMallocUsage 246,884,097,984 251,538,537,792 4,654,439,808 1.89% ⛔
Frontend.NumInstructionsExecuted 14,443,405,244,046 32,323,387,414,672 17,879,982,170,626 123.79% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (92)
name old new delta delta_pct
AST.NumASTBytesAllocated 19,647,238,851 19,647,405,103 166,252 0.0%
AST.NumDecls 46,277 46,277 0 0.0%
AST.NumDependencies 131,102 131,100 -2 -0.0%
AST.NumImportedExternalDefinitions 918,497 918,497 0 0.0%
AST.NumInfixOperators 19,744 19,744 0 0.0%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumLoadedModules 155,889 155,889 0 0.0%
AST.NumLocalTypeDecls 111 111 0 0.0%
AST.NumObjCMethods 13,059 13,059 0 0.0%
AST.NumPostfixOperators 14 14 0 0.0%
AST.NumPrecedenceGroups 9,238 9,238 0 0.0%
AST.NumPrefixOperators 61 61 0 0.0%
AST.NumReferencedDynamicNames 101 101 0 0.0%
AST.NumReferencedMemberNames 2,546,172 2,546,172 0 0.0%
AST.NumReferencedTopLevelNames 164,918 164,918 0 0.0%
AST.NumSourceBuffers 202,740 202,726 -14 -0.01%
AST.NumSourceLines 1,543,502 1,543,502 0 0.0%
AST.NumSourceLinesPerSecond 902,468 896,107 -6,361 -0.7%
AST.NumTotalClangImportedEntities 3,166,228 3,166,228 0 0.0%
AST.NumUsedConformances 145,088 145,088 0 0.0%
Driver.ChildrenMaxRSS 51,303,921,664 51,558,572,032 254,650,368 0.5%
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 9,752 9,752 0 0.0%
Driver.NumDriverJobsSkipped 0 0 0 0.0%
Driver.NumDriverPipePolls 207,265 206,250 -1,015 -0.49%
Driver.NumDriverPipeReads 226,761 227,597 836 0.37%
Driver.NumProcessFailures 0 0 0 0.0%
Frontend.NumProcessFailures 0 0 0 0.0%
IRModule.NumIRAliases 74,670 74,670 0 0.0%
IRModule.NumIRBasicBlocks 2,469,090 2,469,107 17 0.0%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRFunctions 1,247,792 1,247,804 12 0.0%
IRModule.NumIRGlobals 1,447,673 1,447,673 0 0.0%
IRModule.NumIRIFuncs 0 0 0 0.0%
IRModule.NumIRInsts 27,003,273 27,003,662 389 0.0%
IRModule.NumIRNamedMetaData 47,561 47,561 0 0.0%
IRModule.NumIRValueSymbols 2,401,264 2,401,276 12 0.0%
LLVM.NumLLVMBytesOutput 662,115,346 662,123,382 8,036 0.0%
Parse.NumFunctionsParsed 1,514,440 1,514,440 0 0.0%
Parse.NumIterableDeclContextParsed 535,494 535,494 0 0.0%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILGenFunctions 1,081,720 1,081,720 0 0.0%
SILModule.NumSILGenGlobalVariables 24,671 24,671 0 0.0%
SILModule.NumSILGenVtables 4,636 4,636 0 0.0%
SILModule.NumSILGenWitnessTables 27,525 27,525 0 0.0%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptFunctions 921,732 921,735 3 0.0%
SILModule.NumSILOptGlobalVariables 25,139 25,139 0 0.0%
SILModule.NumSILOptVtables 8,850 8,850 0 0.0%
SILModule.NumSILOptWitnessTables 55,819 55,819 0 0.0%
Sema.AccessLevelRequest 1,294,937 1,294,940 3 0.0%
Sema.DefaultAndMaxAccessLevelRequest 31,175 31,175 0 0.0%
Sema.EnumRawTypeRequest 10,425 10,425 0 0.0%
Sema.ExtendedNominalRequest 1,936,270 1,936,270 0 0.0%
Sema.InheritedDeclsReferencedRequest 64,384,713 64,384,719 6 0.0%
Sema.InheritedTypeRequest 354,757 354,757 0 0.0%
Sema.IsDynamicRequest 1,192,533 1,192,533 0 0.0%
Sema.IsObjCRequest 997,908 997,908 0 0.0%
Sema.NamedLazyMemberLoadFailureCount 17,527 17,527 0 0.0%
Sema.NamedLazyMemberLoadSuccessCount 14,277,994 14,277,994 0 0.0%
Sema.NominalTypeLookupDirectCount 22,709,414 22,709,410 -4 -0.0%
Sema.NumConformancesDeserialized 1,983,983 1,983,983 0 0.0%
Sema.NumConstraintScopes 10,294,532 10,294,532 0 0.0%
Sema.NumConstraintsConsideredForEdgeContraction 19,310,380 19,310,380 0 0.0%
Sema.NumDeclsDeserialized 18,904,408 18,904,408 0 0.0%
Sema.NumDeclsValidated 1,202,458 1,202,458 0 0.0%
Sema.NumFunctionsTypechecked 793,608 793,608 0 0.0%
Sema.NumGenericSignatureBuilders 657,619 657,631 12 0.0%
Sema.NumLazyGenericEnvironments 4,103,474 4,103,474 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 92,317 92,317 0 0.0%
Sema.NumLazyIterableDeclContexts 3,900,530 3,900,530 0 0.0%
Sema.NumTypesDeserialized 7,852,741 7,852,741 0 0.0%
Sema.NumTypesValidated 779,455 779,455 0 0.0%
Sema.NumUnloadedLazyIterableDeclContexts 3,148,452 3,148,452 0 0.0%
Sema.OverriddenDeclsRequest 1,051,508 1,051,508 0 0.0%
Sema.RequirementRequest 22,731 22,731 0 0.0%
Sema.SelfBoundsFromWhereClauseRequest 63,119 63,119 0 0.0%
Sema.SetterAccessLevelRequest 77,900 77,900 0 0.0%
Sema.SuperclassDeclRequest 53,301,375 53,301,375 0 0.0%
Sema.SuperclassTypeRequest 17,762 17,762 0 0.0%
Sema.TypeDeclsFromWhereClauseRequest 14,456 14,456 0 0.0%
Sema.USRGenerationRequest 234,976 234,976 0 0.0%
Sema.UnderlyingTypeDeclsReferencedRequest 1,791,686 1,791,686 0 0.0%

Release

release brief

Regressed (1)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 17,829,184,133,578 47,459,383,105,042 29,630,198,971,464 166.19% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (2)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 559,348,778 560,022,906 674,128 0.12%
time.swift-driver.wall 3383.4s 3388.1s 4.7s 0.14%

release detailed

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 170,137 170,137 0 0.0%
AST.NumLoadedModules 10,383 10,383 0 0.0%
AST.NumTotalClangImportedEntities 567,440 567,440 0 0.0%
AST.NumUsedConformances 148,208 148,208 0 0.0%
IRModule.NumIRBasicBlocks 2,372,959 2,374,732 1,773 0.07%
IRModule.NumIRFunctions 1,002,710 1,003,179 469 0.05%
IRModule.NumIRGlobals 1,119,737 1,119,523 -214 -0.02%
IRModule.NumIRInsts 19,537,227 19,559,122 21,895 0.11%
IRModule.NumIRValueSymbols 1,959,084 1,959,315 231 0.01%
LLVM.NumLLVMBytesOutput 559,348,778 560,022,906 674,128 0.12%
SILModule.NumSILGenFunctions 440,257 440,257 0 0.0%
SILModule.NumSILOptFunctions 628,298 628,581 283 0.05%
Sema.NumConformancesDeserialized 1,271,303 1,271,309 6 0.0%
Sema.NumConstraintScopes 10,042,321 10,042,321 0 0.0%
Sema.NumDeclsDeserialized 3,845,892 3,845,892 0 0.0%
Sema.NumDeclsValidated 565,405 565,405 0 0.0%
Sema.NumFunctionsTypechecked 341,865 341,865 0 0.0%
Sema.NumGenericSignatureBuilders 119,555 120,589 1,034 0.86%
Sema.NumLazyGenericEnvironments 812,700 812,700 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 15,751 15,751 0 0.0%
Sema.NumLazyIterableDeclContexts 501,400 501,400 0 0.0%
Sema.NumTypesDeserialized 2,160,579 2,160,587 8 0.0%
Sema.NumTypesValidated 249,632 249,632 0 0.0%

@rajbarik
Copy link
Contributor Author

@slavapestov anything I need to do here?

@slavapestov
Copy link
Contributor

@swift-ci Please test

@slavapestov
Copy link
Contributor

@swift-ci Please test compiler performance

@slavapestov
Copy link
Contributor

@swift-ci Please test source compatibility

@slavapestov
Copy link
Contributor

@swift-ci Please benchmark

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - bb34051

@swift-ci
Copy link
Contributor

Build comment file:

Performance: -O

TEST OLD NEW DELTA RATIO
Improvement
ObserverForwarderStruct 916 823 -10.2% 1.11x (?)
ObserverUnappliedMethod 2232 2012 -9.9% 1.11x (?)

Code size: -O

TEST OLD NEW DELTA RATIO
Improvement
ProtocolDispatch2.o 2246 2094 -6.8% 1.07x
ObserverUnappliedMethod.o 5204 5140 -1.2% 1.01x

Performance: -Osize

TEST OLD NEW DELTA RATIO
Regression
SuffixAnyCollection 60 5167 +8511.5% 0.01x
DropLastAnyCollection 65 5113 +7766.0% 0.01x
ReversedBidirectional 18546 34324 +85.1% 0.54x
IterateData 1579 1799 +13.9% 0.88x (?)
DropWhileAnyCollectionLazy 252 282 +11.9% 0.89x (?)
Improvement
ObserverForwarderStruct 946 825 -12.8% 1.15x (?)
ObserverUnappliedMethod 2319 2035 -12.2% 1.14x (?)
ReversedDictionary2 342 315 -7.9% 1.09x

Code size: -Osize

TEST OLD NEW DELTA RATIO
Improvement
ReversedCollections.o 11365 10503 -7.6% 1.08x
ProtocolDispatch2.o 2127 1991 -6.4% 1.07x
ObserverForwarderStruct.o 3699 3499 -5.4% 1.06x
ObserverUnappliedMethod.o 5413 5188 -4.2% 1.04x

Performance: -Onone

TEST OLD NEW DELTA RATIO
Regression
CaptureProp 279890 337372 +20.5% 0.83x
CStringLongAscii 3358 3615 +7.7% 0.93x
How to read the data The tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.

If you see any unexpected regressions, you should consider fixing the regressions before you merge the PR.

Noise: Sometimes the performance results (not code size!) contain false alarms. Unexpected regressions which are marked with '(?)' are probably noise. If you see regressions which you cannot explain you can try to run the benchmarks again. If regressions still show up, please consult with the performance team (@eeckstein).

Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - bb34051

@swift-ci
Copy link
Contributor

Build comment file:

Summary for master full

Unexpected test results, excluded stats for RxSwift, Fluent, Wordy, ReactiveSwift

No regressions above thresholds

Debug-batch

debug-batch brief

Regressed (0)
name old new delta delta_pct
Improved (1)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 52,994,875,154,801 12,886,989,297,512 -40,107,885,857,289 -75.68% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (2)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 672,112,682 672,120,740 8,058 0.0%
time.swift-driver.wall 1460.5s 1458.0s -2.5s -0.17%

debug-batch detailed

Regressed (0)
name old new delta delta_pct
Improved (2)
name old new delta delta_pct
Driver.NumDriverPipePolls 271,354 268,562 -2,792 -1.03% ✅
Frontend.NumInstructionsExecuted 52,994,875,154,801 12,886,989,297,512 -40,107,885,857,289 -75.68% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (92)
name old new delta delta_pct
AST.NumASTBytesAllocated 15,762,040,895 15,761,836,335 -204,560 -0.0%
AST.NumDecls 46,277 46,277 0 0.0%
AST.NumDependencies 101,113 101,119 6 0.01%
AST.NumImportedExternalDefinitions 769,435 769,435 0 0.0%
AST.NumInfixOperators 19,744 19,744 0 0.0%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumLoadedModules 123,088 123,088 0 0.0%
AST.NumLocalTypeDecls 111 111 0 0.0%
AST.NumObjCMethods 13,059 13,059 0 0.0%
AST.NumPostfixOperators 14 14 0 0.0%
AST.NumPrecedenceGroups 9,238 9,238 0 0.0%
AST.NumPrefixOperators 61 61 0 0.0%
AST.NumReferencedDynamicNames 101 101 0 0.0%
AST.NumReferencedMemberNames 2,546,191 2,546,191 0 0.0%
AST.NumReferencedTopLevelNames 152,859 152,859 0 0.0%
AST.NumSourceBuffers 142,024 142,008 -16 -0.01%
AST.NumSourceLines 1,543,502 1,543,502 0 0.0%
AST.NumSourceLinesPerSecond 984,093 984,536 443 0.05%
AST.NumTotalClangImportedEntities 2,695,333 2,695,333 0 0.0%
AST.NumUsedConformances 145,089 145,089 0 0.0%
Driver.ChildrenMaxRSS 50,905,526,272 50,715,260,928 -190,265,344 -0.37%
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 9,752 9,752 0 0.0%
Driver.NumDriverJobsSkipped 0 0 0 0.0%
Driver.NumDriverPipeReads 285,553 282,831 -2,722 -0.95%
Driver.NumProcessFailures 0 0 0 0.0%
Frontend.MaxMallocUsage 202,389,976,328 202,310,151,336 -79,824,992 -0.04%
Frontend.NumProcessFailures 0 0 0 0.0%
IRModule.NumIRAliases 74,670 74,670 0 0.0%
IRModule.NumIRBasicBlocks 2,475,181 2,475,198 17 0.0%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRFunctions 1,264,229 1,264,241 12 0.0%
IRModule.NumIRGlobals 1,483,355 1,483,355 0 0.0%
IRModule.NumIRIFuncs 0 0 0 0.0%
IRModule.NumIRInsts 27,238,337 27,238,726 389 0.0%
IRModule.NumIRNamedMetaData 47,561 47,561 0 0.0%
IRModule.NumIRValueSymbols 2,438,295 2,438,307 12 0.0%
LLVM.NumLLVMBytesOutput 672,112,682 672,120,740 8,058 0.0%
Parse.NumFunctionsParsed 1,054,118 1,054,118 0 0.0%
Parse.NumIterableDeclContextParsed 376,629 376,629 0 0.0%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILGenFunctions 1,193,040 1,193,040 0 0.0%
SILModule.NumSILGenGlobalVariables 24,671 24,671 0 0.0%
SILModule.NumSILGenVtables 4,636 4,636 0 0.0%
SILModule.NumSILGenWitnessTables 27,651 27,651 0 0.0%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptFunctions 937,474 937,477 3 0.0%
SILModule.NumSILOptGlobalVariables 25,139 25,139 0 0.0%
SILModule.NumSILOptVtables 8,850 8,850 0 0.0%
SILModule.NumSILOptWitnessTables 55,945 55,945 0 0.0%
Sema.AccessLevelRequest 1,182,411 1,182,414 3 0.0%
Sema.DefaultAndMaxAccessLevelRequest 27,938 27,938 0 0.0%
Sema.EnumRawTypeRequest 8,852 8,852 0 0.0%
Sema.ExtendedNominalRequest 1,591,957 1,591,957 0 0.0%
Sema.InheritedDeclsReferencedRequest 59,948,557 59,948,563 6 0.0%
Sema.InheritedTypeRequest 340,413 340,413 0 0.0%
Sema.IsDynamicRequest 1,082,469 1,082,469 0 0.0%
Sema.IsObjCRequest 904,094 904,094 0 0.0%
Sema.NamedLazyMemberLoadFailureCount 15,401 15,401 0 0.0%
Sema.NamedLazyMemberLoadSuccessCount 13,304,886 13,304,886 0 0.0%
Sema.NominalTypeLookupDirectCount 21,084,976 21,084,962 -14 -0.0%
Sema.NumConformancesDeserialized 1,767,867 1,767,867 0 0.0%
Sema.NumConstraintScopes 10,235,041 10,235,041 0 0.0%
Sema.NumConstraintsConsideredForEdgeContraction 19,188,957 19,188,957 0 0.0%
Sema.NumDeclsDeserialized 16,219,222 16,219,222 0 0.0%
Sema.NumDeclsValidated 1,106,667 1,106,667 0 0.0%
Sema.NumFunctionsTypechecked 704,959 704,959 0 0.0%
Sema.NumGenericSignatureBuilders 558,689 558,701 12 0.0%
Sema.NumLazyGenericEnvironments 3,496,156 3,496,156 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 87,186 87,186 0 0.0%
Sema.NumLazyIterableDeclContexts 3,203,258 3,203,258 0 0.0%
Sema.NumTypesDeserialized 6,675,804 6,675,804 0 0.0%
Sema.NumTypesValidated 702,229 702,229 0 0.0%
Sema.NumUnloadedLazyIterableDeclContexts 2,548,143 2,548,143 0 0.0%
Sema.OverriddenDeclsRequest 951,476 951,476 0 0.0%
Sema.RequirementRequest 21,395 21,395 0 0.0%
Sema.SelfBoundsFromWhereClauseRequest 32,959,989 32,960,013 24 0.0%
Sema.SetterAccessLevelRequest 71,111 71,111 0 0.0%
Sema.SuperclassDeclRequest 49,935,037 49,935,037 0 0.0%
Sema.SuperclassTypeRequest 16,645 16,645 0 0.0%
Sema.TypeDeclsFromWhereClauseRequest 13,014 13,014 0 0.0%
Sema.USRGenerationRequest 234,976 234,976 0 0.0%
Sema.UnderlyingTypeDeclsReferencedRequest 1,704,105 1,704,105 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 17,987,965,720,931 18,045,717,777,757 57,752,056,826 0.32%
LLVM.NumLLVMBytesOutput 558,556,978 559,221,230 664,252 0.12%
time.swift-driver.wall 3094.1s 3098.7s 4.6s 0.15%

release detailed

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (23)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 170,137 170,137 0 0.0%
AST.NumLoadedModules 10,383 10,383 0 0.0%
AST.NumTotalClangImportedEntities 567,440 567,440 0 0.0%
AST.NumUsedConformances 148,208 148,208 0 0.0%
IRModule.NumIRBasicBlocks 2,373,829 2,375,397 1,568 0.07%
IRModule.NumIRFunctions 1,001,619 1,002,068 449 0.04%
IRModule.NumIRGlobals 1,111,178 1,110,954 -224 -0.02%
IRModule.NumIRInsts 19,574,216 19,594,759 20,543 0.1%
IRModule.NumIRValueSymbols 1,949,396 1,949,597 201 0.01%
LLVM.NumLLVMBytesOutput 558,556,978 559,221,230 664,252 0.12%
SILModule.NumSILGenFunctions 440,257 440,257 0 0.0%
SILModule.NumSILOptFunctions 627,964 628,247 283 0.05%
Sema.NumConformancesDeserialized 1,271,303 1,271,309 6 0.0%
Sema.NumConstraintScopes 10,012,644 10,012,644 0 0.0%
Sema.NumDeclsDeserialized 3,845,600 3,845,600 0 0.0%
Sema.NumDeclsValidated 565,405 565,405 0 0.0%
Sema.NumFunctionsTypechecked 341,865 341,865 0 0.0%
Sema.NumGenericSignatureBuilders 123,084 124,117 1,033 0.84%
Sema.NumLazyGenericEnvironments 812,554 812,554 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 15,751 15,751 0 0.0%
Sema.NumLazyIterableDeclContexts 501,400 501,400 0 0.0%
Sema.NumTypesDeserialized 2,158,928 2,158,936 8 0.0%
Sema.NumTypesValidated 249,632 249,632 0 0.0%

@slavapestov
Copy link
Contributor

@rajbarik Looks like swiftpm fails to build. Can you investigate?

@graydon The NumInstructionsExecuted delta looks bogus -- any ideas?

@slavapestov
Copy link
Contributor

@rajbarik Can you see what changed with SuffixAnyCollection and DropLastAnyCollection too? I think an optimization is not kicking in after your specialization pass perhaps.

The source compat failures are also swiftpm failing to build, so we can't get more results until that is fixed.

@rajbarik
Copy link
Contributor Author

@slavapestov will have a look today.

@rajbarik
Copy link
Contributor Author

rajbarik commented Oct 18, 2018 via email

@rajbarik
Copy link
Contributor Author

@slavapestov any comment here?

@slavapestov
Copy link
Contributor

@swift-ci Please test

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - bb34051

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - bb34051

@palimondo
Copy link
Contributor

Are you referring to the large "ExistentialPerformance.swift" benchmark? I do not see any other Existential benchmark in benchmark.

Yes. That file houses a large family of 108 benchmarks, recently refactored to have smaller workloads in #20666. If I understand @atrick correctly, it’s possible that my refactoring might have changed its semantics such that it allows ExistentialSpecializer to kick in, while that should not be a case.

@palimondo
Copy link
Contributor

palimondo commented Apr 30, 2019

Note that during the refactoring of ExistentialPerformance.swift I have discovered SR-9298 which seems unreproducible in a test case outside of benchmarks suite and is still open. So in my experience, there are some fishy things surrounding compilation of those existential benchmarks that are hard to pin down.
I apologize, there was no bug there… just a programmer error, as I'm an idiot. Sorry for the noise.

@rajbarik
Copy link
Contributor Author

Since #24364 has landed with, among other minor changes, a fix for incorrect use of legacyFactor, let me re-run the benchmarks to see the adjusted baseline for BucketSort.
@swift-ci please benchmark
@rajbarik Since you already have commit access, you should speak to @shahmishal about giving you the power to command the CI bots...

I remember emailing him couple of times and with no response :)

If you are still having issue triggering CI, please let me know.

Thank you @shahmishal !

@rajbarik
Copy link
Contributor Author

Build failed
Swift Test Linux Platform
Git Sha - bb34051

@palimondo @atrick I do not see any mistake related to ES.. Is this expected behavior?

@rajbarik
Copy link
Contributor Author

Note that during the refactoring of ExistentialPerformance.swift I have discovered SR-9298 which seems unreproducible in a test case outside of benchmarks suite and is still open. So in my experience, there are some fishy things surrounding compilation of those existential benchmarks that are hard to pin down.

OK. Is it fine then to go ahead with this one until all bugs around ExistentialPerformance is fixed (after it passes all tests)?

@palimondo
Copy link
Contributor

I’m just highlighting possibly related information, the decision is for someone with a lot more knowledge than me… @atrick?

@palimondo
Copy link
Contributor

palimondo commented Apr 30, 2019

@swift-ci please test Linux platform

(These seem to be quite flaky the past few days… re-running, after checking the error was unrelated to your changes, seems to usually resolve it.)

@atrick
Copy link
Contributor

atrick commented Apr 30, 2019

@rajbarik As long as Linux tests pass, you can merge this. It's possible that the Linux failure was already broken on master when the PR test ran, but it may be that the specializer is exposing an issue that needs to be fixed before we can enable it.

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - bb34051

@rajbarik
Copy link
Contributor Author

rajbarik commented Apr 30, 2019

@atrick I notice the following test failure on Linux/x86-64[see extracted log in the bottom]:

/home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/swift/test/Interpreter/dynamic_self.swift

It is quite likely that ES may have caused this since protocols are passed as arguments (e.g., callDynamicSelfExistential). I think we can pass "-Xllvm -sil-disable-pass=ExistentialSpecializer" to suppress this. Do you know how to pass this option to the interpreter with the following run command?

// RUN: %target-run-simple-swift | %FileCheck %s
// REQUIRES: executable_test
12:12:53 FAIL: Swift(linux-x86_64) :: Interpreter/dynamic_self.swift (10270 of 11899)
12:12:53 ******************** TEST 'Swift(linux-x86_64) :: Interpreter/dynamic_self.swift' FAILED ********************
12:12:53 Script:
12:12:53 --
12:12:53 : 'RUN: at line 1';   rm -rf "/home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/buildbot_linux/swift-linux-x86_64/test-linux-x86_64/Interpreter/Output/dynamic_self.swift.tmp" && mkdir -p "/home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/buildbot_linux/swift-linux-x86_64/test-linux-x86_64/Interpreter/Output/dynamic_self.swift.tmp" && /home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/buildbot_linux/swift-linux-x86_64/bin/swiftc -target x86_64-unknown-linux-gnu  -module-cache-path '/home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/buildbot_linux/swift-linux-x86_64/swift-test-results/x86_64-unknown-linux-gnu/clang-module-cache' -swift-version 4  -O -module-cache-path '/home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/buildbot_linux/swift-linux-x86_64/swift-test-results/x86_64-unknown-linux-gnu/clang-module-cache' /home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/swift/test/Interpreter/dynamic_self.swift -o /home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/buildbot_linux/swift-linux-x86_64/test-linux-x86_64/Interpreter/Output/dynamic_self.swift.tmp/a.out -module-name main  && echo /home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/buildbot_linux/swift-linux-x86_64/test-linux-x86_64/Interpreter/Output/dynamic_self.swift.tmp/a.out &&/usr/bin/env DYLD_LIBRARY_PATH='/home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/buildbot_linux/swift-linux-x86_64/lib/swift/linux/x86_64' LD_LIBRARY_PATH='/home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/buildbot_linux/swift-linux-x86_64/lib/swift/linux/x86_64' SIMCTL_CHILD_DYLD_LIBRARY_PATH='/home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/buildbot_linux/swift-linux-x86_64/lib/swift/linux/x86_64'  /home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/buildbot_linux/swift-linux-x86_64/test-linux-x86_64/Interpreter/Output/dynamic_self.swift.tmp/a.out | '/usr/bin/python' '/home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/swift/utils/PathSanitizingFileCheck' --sanitize BUILD_DIR='/home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/buildbot_linux/swift-linux-x86_64' --sanitize SOURCE_DIR='/home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/swift' --use-filecheck '/home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/buildbot_linux/llvm-linux-x86_64/bin/FileCheck'  /home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/swift/test/Interpreter/dynamic_self.swift
12:12:53 --
12:12:53 Exit Code: 1
12:12:53 
12:12:53 Command Output (stdout):
12:12:53 --
12:12:53 /home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/buildbot_linux/swift-linux-x86_64/test-linux-x86_64/Interpreter/Output/dynamic_self.swift.tmp/a.out
12:12:53 
12:12:53 --
12:12:53 Command Output (stderr):
12:12:53 --
12:12:53 /home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/swift/test/Interpreter/dynamic_self.swift:20:6: warning: result of call to 'g()' is unused
12:12:53   p2.g()
12:12:53      ^~~
12:12:53 /home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/swift/test/Interpreter/dynamic_self.swift:18:7: warning: variable 'p2' was never mutated; consider changing to 'let' constant
12:12:53   var p2 = p.f()
12:12:53   ~~~ ^
12:12:53   let
12:12:53 /home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/swift/test/Interpreter/dynamic_self.swift:28:7: warning: result of call to 'g()' is unused
12:12:53   cp2.g()
12:12:53       ^~~
12:12:53 /home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/swift/test/Interpreter/dynamic_self.swift:26:7: warning: variable 'cp2' was never mutated; consider changing to 'let' constant
12:12:53   var cp2 = cp.f()
12:12:53   ~~~ ^
12:12:53   let
12:12:53 /home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/swift/test/Interpreter/dynamic_self.swift:134:19: warning: result of call to 'testCaptures(x:)' is unused
12:12:53 Z(name: "Leeloo").testCaptures(x: 42)
12:12:53                   ^           ~~~~~~~
12:12:53 
/home/buildnode/jenkins/workspace/swift-PR-Linux@2/branch-master/swift/test/Interpreter/dynamic_self.swift:83:16: error: CHECK-NEXT: is not on the line after the previous match
12:12:53 // CHECK-NEXT: Destroying C
12:12:53                ^
12:12:53 <stdin>:22:1: note: 'next' match was here
12:12:53 Destroying C
12:12:53 ^
12:12:53 <stdin>:14:18: note: previous match ended here
12:12:53 After second call
12:12:53                  ^
12:12:53 <stdin>:15:1: note: non-matching line after previous match is here
12:12:53 C() as class existential
12:12:53 ^
12:12:53 
12:12:53 --
12:12:53 
12:12:53 ********************

@atrick
Copy link
Contributor

atrick commented Apr 30, 2019

@rajbarik You should be able to add any -Xllvm options, if the option existed:
// RUN: %target-run-simple-swift -Xllvm -disable-existential-specializer | %FileCheck %s

Or I think it would be ok to just do this:
%target-run-simple-swift(-Onone) | %FileCheck %s

@jckarter
Copy link
Contributor

jckarter commented May 1, 2019

We could update the test not to rely on unstable destructor order instead. Maybe we could CHECK-DAG: those lines.

@atrick
Copy link
Contributor

atrick commented May 1, 2019

@rajbarik Looking at dynamic_self.swift, it seems that we should be able to fix the test without changing the RUN line. I would think that slapping @inline(never) on the methods f() and g() would be sufficient. Alternatively adding a Builtin.fixLifetime might work. If you're having trouble, I can build with your patch and look into it later. Just ping me again if you need help.

@rajbarik
Copy link
Contributor Author

rajbarik commented May 1, 2019

@rajbarik Looking at dynamic_self.swift, it seems that we should be able to fix the test without changing the RUN line. I would think that slapping @inline(never) on the methods f() and g() would be sufficient. Alternatively adding a Builtin.fixLifetime might work. If you're having trouble, I can build with your patch and look into it later. Just ping me again if you need help.

I do not have a linux machine -- so my tests will be on Mac. I am testing @inline(never) right now and will tell you if I run into any issue.

@rajbarik
Copy link
Contributor Author

rajbarik commented May 1, 2019

@rajbarik Looking at dynamic_self.swift, it seems that we should be able to fix the test without changing the RUN line. I would think that slapping @inline(never) on the methods f() and g() would be sufficient. Alternatively adding a Builtin.fixLifetime might work. If you're having trouble, I can build with your patch and look into it later. Just ping me again if you need help.

#24411

@jckarter
Copy link
Contributor

jckarter commented May 1, 2019

Using optimizer tweaks still feels more brittle to me than changing the test not to rely on the order the cleanups get executed. Maybe the deinits could set a flag variable when they run, and we print the flags at a well-defined point afterward, or something like that.

@atrick
Copy link
Contributor

atrick commented May 1, 2019

@jckarter I think the intention of the test is to correctly IRGen the bodies of those methods. If they get inlined, then the test is broken regardless of whether the checks pass.

@palimondo
Copy link
Contributor

@atrick @rajbarik I have re-examined the performance changes I saw in ExistentialPerformance benchmarks by profiling the code in Instruments and even though I was able to reproduce the differences, the contents of the disassembled methods run_method1x(_:) and run_ArrayMutating(_:) appear to be identical regardless of whether the ExistentialSpecializer is enabled, so I think the discrepancy must be due to code alignment caused by changes in other parts of the binary.

@rajbarik
Copy link
Contributor Author

rajbarik commented May 5, 2019

@swift-ci test

@rajbarik
Copy link
Contributor Author

rajbarik commented May 5, 2019

@swift-ci please benchmark

@rajbarik
Copy link
Contributor Author

rajbarik commented May 6, 2019

@swift-ci benchmark

@rajbarik
Copy link
Contributor Author

rajbarik commented May 6, 2019

@swift-ci Please test compiler performance

@swift-ci
Copy link
Contributor

swift-ci commented May 6, 2019

Summary for master full

Unexpected test results, excluded stats for Deferred, Tagged, Wordy, ProcedureKit

Regressions found (see below)

Debug-batch

debug-batch brief

Regressed (0)
name old new delta delta_pct
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (3)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 25,032,009,972,729 24,928,906,324,385 -103,103,648,344 -0.41%
LLVM.NumLLVMBytesOutput 1,169,278,656 1,169,284,754 6,098 0.0%
time.swift-driver.wall 1762.9s 1759.6s -3.3s -0.19%

debug-batch detailed

Regressed (0)
name old new delta delta_pct
Improved (1)
name old new delta delta_pct
Sema.USRGenerationRequest 10,606,270 10,481,120 -125,150 -1.18% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (105)
name old new delta delta_pct
AST.NumASTBytesAllocated 55,590,475,616 55,257,801,839 -332,673,777 -0.6%
AST.NumDecls 94,750 94,750 0 0.0%
AST.NumDependencies 133,997 134,003 6 0.0%
AST.NumImportedExternalDefinitions 901,929 901,929 0 0.0%
AST.NumInfixOperators 35,705 35,705 0 0.0%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumLoadedModules 168,435 168,435 0 0.0%
AST.NumLocalTypeDecls 123 123 0 0.0%
AST.NumObjCMethods 15,429 15,429 0 0.0%
AST.NumPostfixOperators 18 18 0 0.0%
AST.NumPrecedenceGroups 17,488 17,488 0 0.0%
AST.NumPrefixOperators 90 90 0 0.0%
AST.NumReferencedDynamicNames 122 122 0 0.0%
AST.NumReferencedMemberNames 4,163,266 4,163,266 0 0.0%
AST.NumReferencedTopLevelNames 323,183 323,183 0 0.0%
AST.NumSourceBuffers 216,901 216,901 0 0.0%
AST.NumSourceLines 3,165,267 3,165,267 0 0.0%
AST.NumSourceLinesPerSecond 3,320,771 3,309,581 -11,190 -0.34%
AST.NumTotalClangImportedEntities 3,522,381 3,514,027 -8,354 -0.24%
Driver.ChildrenMaxRSS 111,412,199,424 111,379,384,320 -32,815,104 -0.03%
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 19,330 19,330 0 0.0%
Driver.NumDriverJobsSkipped 0 0 0 0.0%
Driver.NumDriverPipePolls 242,645 243,790 1,145 0.47%
Driver.NumDriverPipeReads 251,881 253,003 1,122 0.45%
Driver.NumProcessFailures 0 0 0 0.0%
Frontend.MaxMallocUsage 526,261,175,848 524,610,637,896 -1,650,537,952 -0.31%
Frontend.NumInstructionsExecuted 25,032,009,972,729 24,928,906,324,385 -103,103,648,344 -0.41%
Frontend.NumProcessFailures 0 0 0 0.0%
IRModule.NumIRAliases 121,579 121,579 0 0.0%
IRModule.NumIRBasicBlocks 4,518,751 4,518,808 57 0.0%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRFunctions 2,138,236 2,138,260 24 0.0%
IRModule.NumIRGlobals 2,238,523 2,238,523 0 0.0%
IRModule.NumIRIFuncs 0 0 0 0.0%
IRModule.NumIRInsts 61,409,727 61,410,026 299 0.0%
IRModule.NumIRNamedMetaData 93,930 93,930 0 0.0%
IRModule.NumIRValueSymbols 3,907,098 3,907,122 24 0.0%
LLVM.NumLLVMBytesOutput 1,169,278,656 1,169,284,754 6,098 0.0%
Parse.NumFunctionsParsed 174,293 174,293 0 0.0%
Parse.NumIterableDeclContextParsed 635,386 635,386 0 0.0%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILGenFunctions 1,101,363 1,101,363 0 0.0%
SILModule.NumSILGenGlobalVariables 41,604 41,604 0 0.0%
SILModule.NumSILGenVtables 12,415 12,415 0 0.0%
SILModule.NumSILGenWitnessTables 46,811 46,811 0 0.0%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptFunctions 1,566,803 1,566,806 3 0.0%
SILModule.NumSILOptGlobalVariables 42,499 42,499 0 0.0%
SILModule.NumSILOptVtables 20,589 20,589 0 0.0%
SILModule.NumSILOptWitnessTables 102,467 102,467 0 0.0%
Sema.AccessLevelRequest 2,442,424 2,440,940 -1,484 -0.06%
Sema.AttachedPropertyDelegateRequest 1,316,883 1,316,883 0 0.0%
Sema.AttachedPropertyDelegateTypeRequest 214,336 214,336 0 0.0%
Sema.CustomAttrNominalRequest 0 0 0 0.0%
Sema.DefaultAndMaxAccessLevelRequest 52,736 52,740 4 0.01%
Sema.DefaultTypeRequest 376,337 376,337 0 0.0%
Sema.EnumRawTypeRequest 14,524 14,524 0 0.0%
Sema.ExtendedNominalRequest 2,971,676 2,965,860 -5,816 -0.2%
Sema.InheritedDeclsReferencedRequest 3,615,411 3,602,691 -12,720 -0.35%
Sema.InheritedTypeRequest 493,548 493,459 -89 -0.02%
Sema.IsDynamicRequest 1,875,165 1,875,165 0 0.0%
Sema.IsFinalRequest 3,598,420 3,587,766 -10,654 -0.3%
Sema.IsObjCRequest 1,632,081 1,631,649 -432 -0.03%
Sema.MangleLocalTypeDeclRequest 246 246 0 0.0%
Sema.NamedLazyMemberLoadFailureCount 18,766 18,741 -25 -0.13%
Sema.NamedLazyMemberLoadSuccessCount 18,115,111 18,113,261 -1,850 -0.01%
Sema.NominalTypeLookupDirectCount 30,303,728 30,277,924 -25,804 -0.09%
Sema.NumConformancesDeserialized 5,754,147 5,728,362 -25,785 -0.45%
Sema.NumConstraintScopes 19,246,889 19,244,111 -2,778 -0.01%
Sema.NumConstraintsConsideredForEdgeContraction 51,628,619 51,627,912 -707 -0.0%
Sema.NumDeclsDeserialized 40,590,671 40,400,951 -189,720 -0.47%
Sema.NumDeclsFinalized 1,684,310 1,684,310 0 0.0%
Sema.NumDeclsTypechecked 1,040,754 1,040,754 0 0.0%
Sema.NumDeclsValidated 2,117,941 2,117,941 0 0.0%
Sema.NumFunctionsTypechecked 898,491 898,491 0 0.0%
Sema.NumGenericSignatureBuilders 995,549 993,321 -2,228 -0.22%
Sema.NumLazyGenericEnvironments 8,112,629 8,089,001 -23,628 -0.29%
Sema.NumLazyGenericEnvironmentsLoaded 206,915 206,887 -28 -0.01%
Sema.NumLazyIterableDeclContexts 5,290,444 5,282,214 -8,230 -0.16%
Sema.NumLeafScopes 12,699,016 12,696,671 -2,345 -0.02%
Sema.NumTypesDeserialized 13,532,818 13,500,049 -32,769 -0.24%
Sema.NumTypesValidated 1,554,317 1,554,316 -1 -0.0%
Sema.NumUnloadedLazyIterableDeclContexts 3,312,860 3,314,377 1,517 0.05%
Sema.OverriddenDeclsRequest 6,601,122 6,541,301 -59,821 -0.91%
Sema.PropertyDelegateBackingPropertyInfoRequest 212,001 212,001 0 0.0%
Sema.PropertyDelegateBackingPropertyTypeRequest 214,336 214,336 0 0.0%
Sema.PropertyDelegateTypeInfoRequest 0 0 0 0.0%
Sema.RequirementRequest 66,087 66,087 0 0.0%
Sema.SelfBoundsFromWhereClauseRequest 5,246,611 5,228,459 -18,152 -0.35%
Sema.SetterAccessLevelRequest 136,759 136,759 0 0.0%
Sema.StructuralTypeRequest 0 0 0 0.0%
Sema.SuperclassDeclRequest 67,739 67,703 -36 -0.05%
Sema.SuperclassTypeRequest 33,766 33,766 0 0.0%
Sema.TypeDeclsFromWhereClauseRequest 28,711 28,715 4 0.01%
Sema.UnderlyingTypeDeclsReferencedRequest 143,904 143,633 -271 -0.19%

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 30,971,777,626,914 31,056,760,553,406 84,982,926,492 0.27%
LLVM.NumLLVMBytesOutput 994,395,342 998,200,058 3,804,716 0.38%
time.swift-driver.wall 3352.3s 3364.2s 11.9s 0.35%

release detailed

Regressed (1)
name old new delta delta_pct
Sema.NumGenericSignatureBuilders 211,537 214,077 2,540 1.2% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (21)
name old new delta delta_pct
AST.NumImportedExternalDefinitions 233,224 233,224 0 0.0%
AST.NumLoadedModules 16,875 16,875 0 0.0%
AST.NumTotalClangImportedEntities 803,549 803,549 0 0.0%
IRModule.NumIRBasicBlocks 3,956,642 3,969,921 13,279 0.34%
IRModule.NumIRFunctions 1,793,281 1,799,189 5,908 0.33%
IRModule.NumIRGlobals 1,971,426 1,972,595 1,169 0.06%
IRModule.NumIRInsts 36,349,555 36,474,065 124,510 0.34%
IRModule.NumIRValueSymbols 3,496,248 3,503,354 7,106 0.2%
LLVM.NumLLVMBytesOutput 994,395,342 998,200,058 3,804,716 0.38%
SILModule.NumSILGenFunctions 762,829 762,829 0 0.0%
SILModule.NumSILOptFunctions 1,020,342 1,022,211 1,869 0.18%
Sema.NumConformancesDeserialized 2,358,078 2,358,144 66 0.0%
Sema.NumConstraintScopes 17,910,773 17,910,773 0 0.0%
Sema.NumDeclsDeserialized 6,345,954 6,345,954 0 0.0%
Sema.NumDeclsValidated 1,244,628 1,244,628 0 0.0%
Sema.NumFunctionsTypechecked 489,664 489,664 0 0.0%
Sema.NumLazyGenericEnvironments 1,301,804 1,301,804 0 0.0%
Sema.NumLazyGenericEnvironmentsLoaded 22,517 22,517 0 0.0%
Sema.NumLazyIterableDeclContexts 809,618 809,618 0 0.0%
Sema.NumTypesDeserialized 3,363,826 3,363,884 58 0.0%
Sema.NumTypesValidated 751,167 751,167 0 0.0%

@rajbarik
Copy link
Contributor Author

rajbarik commented May 6, 2019

@atrick safe to merge this now?

@rajbarik
Copy link
Contributor Author

rajbarik commented May 6, 2019

@swift-ci benchmark.

@swift-ci
Copy link
Contributor

swift-ci commented May 6, 2019

Performance: -O

TEST OLD NEW DELTA RATIO
Regression
SortLargeExistentials 6600 15700 +137.9% 0.42x
UTF8Decode_InitFromData 117 130 +11.1% 0.90x (?)
UTF8Decode_InitFromBytes 126 139 +10.3% 0.91x (?)
ReversedDictionary2 217 239 +10.1% 0.91x
Improvement
BucketSort 2553 150 -94.1% 17.02x
ProtocolDispatch2 207 76 -63.3% 2.72x
EqualSubstringSubstring 27 21 -22.2% 1.29x (?)
LessSubstringSubstring 27 21 -22.2% 1.29x
EqualStringSubstring 27 21 -22.2% 1.29x (?)
EqualSubstringSubstringGenericEquatable 27 21 -22.2% 1.29x
EqualSubstringString 27 21 -22.2% 1.29x (?)
LessSubstringSubstringGenericComparable 27 21 -22.2% 1.29x
ObserverUnappliedMethod 1710 1490 -12.9% 1.15x (?)
StringComparison_longSharedPrefix 355 319 -10.1% 1.11x

Code size: -O

TEST OLD NEW DELTA RATIO
Regression
BucketSort.o 11056 11624 +5.1% 0.95x
ObserverForwarderStruct.o 3728 3808 +2.1% 0.98x
Improvement
ProtocolDispatch2.o 1940 1740 -10.3% 1.11x

Performance: -Osize

TEST OLD NEW DELTA RATIO
Regression
SortLargeExistentials 6700 16000 +138.8% 0.42x
DropLastCountableRangeLazy 4 5 +25.0% 0.80x (?)
PrefixAnyCollection 77 88 +14.3% 0.88x (?)
UTF8Decode_InitFromData 117 130 +11.1% 0.90x (?)
DropLastAnyCollection 29 32 +10.3% 0.91x
UTF8Decode_InitFromBytes 127 139 +9.4% 0.91x (?)
Improvement
BucketSort 2551 136 -94.7% 18.76x
LessSubstringSubstringGenericComparable 28 21 -25.0% 1.33x
EqualSubstringSubstring 27 21 -22.2% 1.29x
EqualStringSubstring 27 21 -22.2% 1.29x (?)
EqualSubstringSubstringGenericEquatable 27 21 -22.2% 1.29x
LessSubstringSubstring 28 22 -21.4% 1.27x
EqualSubstringString 27 22 -18.5% 1.23x
DropFirstAnyCollection 104 85 -18.3% 1.22x
ObserverUnappliedMethod 1750 1530 -12.6% 1.14x (?)
StringComparison_longSharedPrefix 356 320 -10.1% 1.11x (?)
ReversedDictionary2 239 218 -8.8% 1.10x (?)
UTF8Decode_InitDecoding 112 103 -8.0% 1.09x (?)
SortLettersInPlace 408 379 -7.1% 1.08x (?)

Code size: -Osize

TEST OLD NEW DELTA RATIO
Regression
BucketSort.o 11162 11434 +2.4% 0.98x
ProtocolDispatch2.o 1968 2012 +2.2% 0.98x
Improvement
ObserverUnappliedMethod.o 5563 5354 -3.8% 1.04x
ObserverForwarderStruct.o 3908 3852 -1.4% 1.01x
StackPromo.o 1912 1888 -1.3% 1.01x

Performance: -Onone

TEST OLD NEW DELTA RATIO
Regression
UTF8Decode_InitFromData 118 133 +12.7% 0.89x (?)
UTF8Decode_InitFromBytes 128 140 +9.4% 0.91x (?)
Improvement
DataAppendDataLargeToLarge 24200 17600 -27.3% 1.37x (?)
EqualSubstringSubstringGenericEquatable 30 24 -20.0% 1.25x
LessSubstringSubstringGenericComparable 30 24 -20.0% 1.25x
EqualSubstringSubstring 31 25 -19.4% 1.24x
LessSubstringSubstring 31 25 -19.4% 1.24x
EqualSubstringString 32 26 -18.7% 1.23x
EqualStringSubstring 31 26 -16.1% 1.19x (?)
How to read the data The tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.

If you see any unexpected regressions, you should consider fixing the
regressions before you merge the PR.

Noise: Sometimes the performance results (not code size!) contain false
alarms. Unexpected regressions which are marked with '(?)' are probably noise.
If you see regressions which you cannot explain you can try to run the
benchmarks again. If regressions still show up, please consult with the
performance team (@eeckstein).

Hardware Overview
  Model Name: Mac mini
  Model Identifier: Macmini8,1
  Processor Name: Intel Core i7
  Processor Speed: 3.2 GHz
  Number of Processors: 1
  Total Number of Cores: 6
  L2 Cache (per Core): 256 KB
  L3 Cache: 12 MB
  Memory: 64 GB

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.