Skip to content

[Integer protocols] Make BinaryInteger.Words conform to RandomAccessCollection #19016

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
Sep 6, 2018

Conversation

DougGregor
Copy link
Member

Require that BinaryInteger.Words conform to RandomAccessCollection with
an Index type of Int, simplifying clients.

Fixes rdar://problem/36410936.

@DougGregor
Copy link
Member Author

@swift-ci please test compiler performance

@DougGregor
Copy link
Member Author

@swift-ci please test source compatibility

@DougGregor
Copy link
Member Author

@swift-ci please smoke test

@DougGregor
Copy link
Member Author

Resurrecting #12902 to see where we are now w.r.t. compiler performance.

@swift-ci
Copy link
Contributor

!!! Couldn't read commit file !!!

@shahmishal
Copy link
Member

@swift-ci please test source compatibility

@shahmishal
Copy link
Member

@swift-ci please test compiler performance

@swift-ci
Copy link
Contributor

Build comment file:

Compilation-performance test failed

@airspeedswift
Copy link
Member

@swift-ci please smoke test compiler performance

@swift-ci
Copy link
Contributor

!!! Couldn't read commit file !!!

@DougGregor
Copy link
Member Author

@airspeedswift I went for the full fledged RandomAccessCollection where Words.Index == Int, which seems totally reasonable for any BinaryInteger implementation and simplifies clients.

@airspeedswift
Copy link
Member

Sounds right to me, unless @stephentyrone can think of a counter-example.

@stephentyrone
Copy link
Contributor

stephentyrone commented Aug 28, 2018

@DougGregor @airspeedswift Right, with the note that if someone wraps an existing bignum library that uses sign-magnitude fixed-width integers under the covers, then accessing may be O(n), but they should be able to amortize it for sequential access, and that's only a performance note. I.e. it should always be possible to conform semantically.

@DougGregor
Copy link
Member Author

@swift-ci please smoke test Linux

@DougGregor
Copy link
Member Author

@swift-ci please test compiler performance

@swift-ci
Copy link
Contributor

!!! Couldn't read commit file !!!

/// A type that represents the words of a binary integer.
///
/// The `Words` type must conform to the `Collection` protocol with an
/// `Element` type of `UInt`.
associatedtype Words : Sequence where Words.Element == UInt
associatedtype Words : RandomAccessCollection
Copy link
Contributor

Choose a reason for hiding this comment

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

🎉

@DougGregor
Copy link
Member Author

@swift-ci please test compiler performance

@swift-ci
Copy link
Contributor

Build comment file:

Compilation-performance test failed

@airspeedswift
Copy link
Member

Release builds are busted so compiler performance is failing.

@airspeedswift
Copy link
Member

@swift-ci please test compiler performance

@airspeedswift
Copy link
Member

@swift-ci please test linux platform

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 31337f73737125fecf55436dbbc5baf0d82e3514

@swift-ci
Copy link
Contributor

Build comment file:

Summary for master full

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

Regressions found (see below)

Debug-batch

debug-batch brief

Regressed (2)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 9,994,881,309,201 13,101,510,248,400 3,106,628,939,199 31.08% ⛔
time.swift-driver.wall 1151.9s 1259.2s 107.3s 9.31% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (1)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 489,088,052 489,088,380 328 0.0%

debug-batch detailed

Regressed (10)
name old new delta delta_pct
AST.NumASTBytesAllocated 11,878,879,851 13,537,814,540 1,658,934,689 13.97% ⛔
Driver.ChildrenMaxRSS 34,633,820,160 37,281,863,680 2,648,043,520 7.65% ⛔
Driver.NumDriverPipePolls 79,581 86,775 7,194 9.04% ⛔
Driver.NumDriverPipeReads 84,117 89,614 5,497 6.53% ⛔
Frontend.NumInstructionsExecuted 9,994,881,309,201 13,101,510,248,400 3,106,628,939,199 31.08% ⛔
Sema.NumConformancesDeserialized 1,932,409 1,961,778 29,369 1.52% ⛔
Sema.NumLazyGenericEnvironmentsLoaded 299,229 310,117 10,888 3.64% ⛔
Sema.NumLazyIterableDeclContexts 2,871,499 2,904,498 32,999 1.15% ⛔
Sema.NumTypesDeserialized 6,943,274 7,151,002 207,728 2.99% ⛔
Sema.NumUnloadedLazyIterableDeclContexts 1,981,050 2,015,330 34,280 1.73% ⛔
Improved (1)
name old new delta delta_pct
AST.NumSourceLinesPerSecond 711,989 593,477 -118,512 -16.65% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (79)
name old new delta delta_pct
AST.NumDecls 33,395 33,395 0 0.0%
AST.NumDependencies 90,731 90,727 -4 -0.0%
AST.NumImportedExternalDefinitions 773,450 773,450 0 0.0%
AST.NumInfixOperators 13,110 13,110 0 0.0%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumLoadedModules 103,553 103,553 0 0.0%
AST.NumLocalTypeDecls 13 13 0 0.0%
AST.NumObjCMethods 12,397 12,397 0 0.0%
AST.NumPostfixOperators 14 14 0 0.0%
AST.NumPrecedenceGroups 6,931 6,931 0 0.0%
AST.NumPrefixOperators 60 60 0 0.0%
AST.NumReferencedDynamicNames 101 101 0 0.0%
AST.NumReferencedMemberNames 1,812,371 1,812,374 3 0.0%
AST.NumReferencedTopLevelNames 115,626 115,626 0 0.0%
AST.NumSourceBuffers 153,185 153,184 -1 -0.0%
AST.NumSourceLines 1,193,040 1,193,040 0 0.0%
AST.NumTotalClangImportedEntities 2,546,022 2,546,022 0 0.0%
AST.NumUsedConformances 101,109 101,112 3 0.0%
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 7,169 7,169 0 0.0%
Driver.NumDriverJobsSkipped 0 0 0 0.0%
Driver.NumProcessFailures 0 0 0 0.0%
Frontend.NumProcessFailures 0 0 0 0.0%
IRModule.NumIRAliases 25,359 25,359 0 0.0%
IRModule.NumIRBasicBlocks 1,714,019 1,714,019 0 0.0%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRFunctions 946,417 946,418 1 0.0%
IRModule.NumIRGlobals 1,097,856 1,097,855 -1 -0.0%
IRModule.NumIRIFuncs 0 0 0 0.0%
IRModule.NumIRInsts 20,078,514 20,078,595 81 0.0%
IRModule.NumIRNamedMetaData 35,388 35,388 0 0.0%
IRModule.NumIRValueSymbols 1,779,259 1,779,259 0 0.0%
LLVM.NumLLVMBytesOutput 489,088,052 489,088,380 328 0.0%
Parse.NumFunctionsParsed 62,772 62,772 0 0.0%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILGenFunctions 841,541 841,541 0 0.0%
SILModule.NumSILGenGlobalVariables 15,097 15,097 0 0.0%
SILModule.NumSILGenVtables 3,778 3,778 0 0.0%
SILModule.NumSILGenWitnessTables 18,538 18,538 0 0.0%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptFunctions 678,328 678,328 0 0.0%
SILModule.NumSILOptGlobalVariables 15,509 15,509 0 0.0%
SILModule.NumSILOptVtables 7,243 7,243 0 0.0%
SILModule.NumSILOptWitnessTables 36,419 36,419 0 0.0%
Sema.AccessLevelRequest 868,784 868,785 1 0.0%
Sema.DefaultAndMaxAccessLevelRequest 22,133 22,133 0 0.0%
Sema.EnumRawTypeRequest 7,721 7,721 0 0.0%
Sema.ExtendedNominalRequest 1,491,427 1,498,994 7,567 0.51%
Sema.InheritedDeclsReferencedRequest 52,797,663 52,818,015 20,352 0.04%
Sema.InheritedTypeRequest 370,946 371,278 332 0.09%
Sema.IsDynamicRequest 789,404 789,404 0 0.0%
Sema.IsObjCRequest 651,208 651,208 0 0.0%
Sema.NamedLazyMemberLoadFailureCount 14,102 14,102 0 0.0%
Sema.NamedLazyMemberLoadSuccessCount 2,290,376 2,282,387 -7,989 -0.35%
Sema.NominalTypeLookupDirectCount 15,122,337 15,122,765 428 0.0%
Sema.NumConstraintScopes 7,333,131 7,333,094 -37 -0.0%
Sema.NumConstraintsConsideredForEdgeContraction 13,173,568 13,173,570 2 0.0%
Sema.NumDeclsDeserialized 16,192,498 16,261,571 69,073 0.43%
Sema.NumDeclsValidated 891,467 891,517 50 0.01%
Sema.NumFunctionsTypechecked 645,835 645,835 0 0.0%
Sema.NumGenericSignatureBuilders 775,097 775,558 461 0.06%
Sema.NumLazyGenericEnvironments 3,112,379 3,139,927 27,548 0.89%
Sema.NumTypesValidated 608,883 608,883 0 0.0%
Sema.OverriddenDeclsRequest 1,530,113 1,528,773 -1,340 -0.09%
Sema.RequirementRequest 22,768 22,768 0 0.0%
Sema.SelfBoundsFromWhereClauseRequest 52,016 52,016 0 0.0%
Sema.SetterAccessLevelRequest 54,197 54,197 0 0.0%
Sema.SuperclassDeclRequest 41,708,099 41,708,102 3 0.0%
Sema.SuperclassTypeRequest 15,355 15,452 97 0.63%
Sema.UnderlyingTypeDeclsReferencedRequest 1,552,020 1,552,208 188 0.01%

Release

release brief

Regressed (2)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 12,194,654,743,456 12,724,080,173,495 529,425,430,039 4.34% ⛔
time.swift-driver.wall 2157.0s 2251.3s 94.4s 4.38% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (1)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 472,002,730 472,003,338 608 0.0%

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 140,897 140,897 0 0.0%
AST.NumLoadedModules 6,613 6,613 0 0.0%
AST.NumTotalClangImportedEntities 462,818 462,818 0 0.0%
AST.NumUsedConformances 103,984 103,987 3 0.0%
IRModule.NumIRBasicBlocks 1,715,181 1,715,181 0 0.0%
IRModule.NumIRFunctions 774,247 774,247 0 0.0%
IRModule.NumIRGlobals 865,827 865,827 0 0.0%
IRModule.NumIRInsts 14,735,427 14,735,463 36 0.0%
IRModule.NumIRValueSymbols 1,488,865 1,488,865 0 0.0%
LLVM.NumLLVMBytesOutput 472,002,730 472,003,338 608 0.0%
SILModule.NumSILGenFunctions 323,142 323,142 0 0.0%
SILModule.NumSILOptFunctions 447,275 447,275 0 0.0%
Sema.NumConformancesDeserialized 932,568 935,831 3,263 0.35%
Sema.NumConstraintScopes 7,254,054 7,254,017 -37 -0.0%
Sema.NumDeclsDeserialized 2,920,689 2,918,972 -1,717 -0.06%
Sema.NumDeclsValidated 417,222 417,222 0 0.0%
Sema.NumFunctionsTypechecked 262,064 262,064 0 0.0%
Sema.NumGenericSignatureBuilders 114,823 114,571 -252 -0.22%
Sema.NumLazyGenericEnvironments 510,777 509,237 -1,540 -0.3%
Sema.NumLazyGenericEnvironmentsLoaded 58,408 58,479 71 0.12%
Sema.NumLazyIterableDeclContexts 342,324 342,057 -267 -0.08%
Sema.NumTypesDeserialized 1,634,638 1,646,018 11,380 0.7%
Sema.NumTypesValidated 187,192 187,192 0 0.0%

@DougGregor
Copy link
Member Author

@swift-ci please smoke test

@DougGregor
Copy link
Member Author

@swift-ci please test source compatibility

@DougGregor
Copy link
Member Author

Overall that's a 9% compile-time regression for debug builds and 4% compile-time regression for release builds.

@DougGregor
Copy link
Member Author

@swift-ci please benchmark

1 similar comment
@DougGregor
Copy link
Member Author

@swift-ci please benchmark

@DougGregor
Copy link
Member Author

@swift-ci please smoke test macOS

@DougGregor
Copy link
Member Author

Rebased, testing again, and running the benchmarks. It is possible-but-unlikely that adding constraints to BinaryInteger.Words has made some generic code using words smaller/faster.

@swift-ci
Copy link
Contributor

Build comment file:

Performance: -O

TEST OLD NEW DELTA SPEEDUP
Regression
StringHashing_abnormal 1312 1539 +17.3% 0.85x
Improvement
RandomDoubleLCG 2171 2028 -6.6% 1.07x

Performance: -Osize

TEST OLD NEW DELTA SPEEDUP
Regression
StringHashing_abnormal 1342 1539 +14.7% 0.87x
StringHashing_fastPrenormal 8099 8754 +8.1% 0.93x

Performance: -Onone

TEST OLD NEW DELTA SPEEDUP
Regression
StringHashing_abnormal 1431 1641 +14.7% 0.87x
RemoveWhereSwapStrings 6262 6985 +11.5% 0.90x
RemoveWhereMoveStrings 3668 4019 +9.6% 0.91x
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

@DougGregor
Copy link
Member Author

@swift-ci please smoke test Linux

@DougGregor
Copy link
Member Author

@airspeedswift those benchmark regressions surprise me. Do they surprise you as well, or do these tend to be unstable benchmarks?

@stephentyrone
Copy link
Contributor

Even if those regressions aren't noise, given that they're isolated I think that they're acceptable for this change. If they're real, we can fix them.

@DougGregor
Copy link
Member Author

@swift-ci please smoke test Linux

@airspeedswift
Copy link
Member

I don't think they're all noise – the new benchmarks have proven to be really pretty stable. Certainly the repeated appearance of StringHashing_abnormal suggests it isn't noise. But they're odd since we don't use words directly in what's being benched, I guess something about this change peturbs inlining or something somehow. In which case I'd agree with @stephentyrone, we can recoup the losses if that were the only blocker.

@airspeedswift
Copy link
Member

@swift-ci please test compiler performance

@airspeedswift
Copy link
Member

@swift-ci please test

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 31337f73737125fecf55436dbbc5baf0d82e3514

@airspeedswift
Copy link
Member

That requirement that all conformances are string convertible seems bogus. Trying this again without it, you never know, might save a teeny bit of compilation performance...

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 31337f73737125fecf55436dbbc5baf0d82e3514

@DougGregor
Copy link
Member Author

@swift-ci please smoke test macOS

@swift-ci
Copy link
Contributor

Build comment file:

Summary for master full

Unexpected test results, excluded stats for RxSwift, ProcedureKit, ChattoAdditions, Wordy, ReactiveSwift

Regressions found (see below)

Debug-batch

debug-batch brief

Regressed (2)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 8,379,849,681,549 10,715,234,914,799 2,335,385,233,250 27.87% ⛔
time.swift-driver.wall 963.4s 1057.6s 94.2s 9.78% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (1)
name old new delta delta_pct
LLVM.NumLLVMBytesOutput 472,835,026 472,304,552 -530,474 -0.11%

debug-batch detailed

Regressed (8)
name old new delta delta_pct
AST.NumASTBytesAllocated 9,258,392,801 10,542,167,640 1,283,774,839 13.87% ⛔
Driver.ChildrenMaxRSS 33,112,236,032 35,789,109,248 2,676,873,216 8.08% ⛔
Driver.NumDriverPipePolls 71,919 81,013 9,094 12.64% ⛔
Driver.NumDriverPipeReads 74,080 82,028 7,948 10.73% ⛔
Frontend.NumInstructionsExecuted 8,379,849,681,549 10,715,234,914,799 2,335,385,233,250 27.87% ⛔
Sema.NumLazyIterableDeclContexts 2,227,776 2,250,991 23,215 1.04% ⛔
Sema.NumTypesDeserialized 5,574,508 5,730,002 155,494 2.79% ⛔
Sema.NumUnloadedLazyIterableDeclContexts 1,495,963 1,519,100 23,137 1.55% ⛔
Improved (2)
name old new delta delta_pct
AST.NumSourceLinesPerSecond 772,481 637,613 -134,868 -17.46% ✅
IRModule.NumIRBasicBlocks 1,661,475 1,632,127 -29,348 -1.77% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (81)
name old new delta delta_pct
AST.NumDecls 31,738 31,738 0 0.0%
AST.NumDependencies 66,864 66,864 0 0.0%
AST.NumImportedExternalDefinitions 628,439 628,439 0 0.0%
AST.NumInfixOperators 12,659 12,659 0 0.0%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumLoadedModules 77,198 77,198 0 0.0%
AST.NumLocalTypeDecls 8 8 0 0.0%
AST.NumObjCMethods 11,744 11,744 0 0.0%
AST.NumPostfixOperators 14 14 0 0.0%
AST.NumPrecedenceGroups 6,661 6,661 0 0.0%
AST.NumPrefixOperators 55 55 0 0.0%
AST.NumReferencedDynamicNames 101 101 0 0.0%
AST.NumReferencedMemberNames 1,738,376 1,738,319 -57 -0.0%
AST.NumReferencedTopLevelNames 110,861 110,861 0 0.0%
AST.NumSourceBuffers 102,855 102,835 -20 -0.02%
AST.NumSourceLines 1,140,606 1,140,606 0 0.0%
AST.NumTotalClangImportedEntities 2,093,591 2,093,591 0 0.0%
AST.NumUsedConformances 97,001 97,003 2 0.0%
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 6,944 6,944 0 0.0%
Driver.NumDriverJobsSkipped 0 0 0 0.0%
Driver.NumProcessFailures 0 0 0 0.0%
Frontend.NumProcessFailures 0 0 0 0.0%
IRModule.NumIRAliases 23,608 23,608 0 0.0%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRFunctions 904,236 904,233 -3 -0.0%
IRModule.NumIRGlobals 1,095,532 1,095,530 -2 -0.0%
IRModule.NumIRIFuncs 0 0 0 0.0%
IRModule.NumIRInsts 19,388,006 19,347,208 -40,798 -0.21%
IRModule.NumIRNamedMetaData 34,293 34,293 0 0.0%
IRModule.NumIRValueSymbols 1,728,471 1,728,466 -5 -0.0%
LLVM.NumLLVMBytesOutput 472,835,026 472,304,552 -530,474 -0.11%
Parse.NumFunctionsParsed 58,478 58,478 0 0.0%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILGenFunctions 911,822 911,822 0 0.0%
SILModule.NumSILGenGlobalVariables 14,857 14,857 0 0.0%
SILModule.NumSILGenVtables 3,414 3,414 0 0.0%
SILModule.NumSILGenWitnessTables 17,709 17,709 0 0.0%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptFunctions 651,240 651,240 0 0.0%
SILModule.NumSILOptGlobalVariables 15,217 15,217 0 0.0%
SILModule.NumSILOptVtables 6,549 6,549 0 0.0%
SILModule.NumSILOptWitnessTables 34,712 34,712 0 0.0%
Sema.AccessLevelRequest 728,737 728,678 -59 -0.01%
Sema.DefaultAndMaxAccessLevelRequest 18,462 18,462 0 0.0%
Sema.EnumRawTypeRequest 5,952 5,952 0 0.0%
Sema.ExtendedNominalRequest 1,158,170 1,160,908 2,738 0.24%
Sema.InheritedDeclsReferencedRequest 46,243,737 46,111,611 -132,126 -0.29%
Sema.InheritedTypeRequest 337,478 337,478 0 0.0%
Sema.IsDynamicRequest 671,289 671,262 -27 -0.0%
Sema.IsObjCRequest 557,541 557,511 -30 -0.01%
Sema.NamedLazyMemberLoadFailureCount 12,083 12,083 0 0.0%
Sema.NamedLazyMemberLoadSuccessCount 1,798,642 1,798,015 -627 -0.03%
Sema.NominalTypeLookupDirectCount 13,457,493 13,456,136 -1,357 -0.01%
Sema.NumConformancesDeserialized 1,621,992 1,638,268 16,276 1.0%
Sema.NumConstraintScopes 7,132,702 7,131,624 -1,078 -0.02%
Sema.NumConstraintsConsideredForEdgeContraction 12,980,871 12,975,546 -5,325 -0.04%
Sema.NumDeclsDeserialized 13,087,527 13,136,287 48,760 0.37%
Sema.NumDeclsValidated 762,957 762,897 -60 -0.01%
Sema.NumFunctionsTypechecked 546,686 546,686 0 0.0%
Sema.NumGenericSignatureBuilders 613,374 614,211 837 0.14%
Sema.NumLazyGenericEnvironments 2,486,299 2,506,158 19,859 0.8%
Sema.NumLazyGenericEnvironmentsLoaded 243,355 243,322 -33 -0.01%
Sema.NumTypesValidated 513,360 513,329 -31 -0.01%
Sema.OverriddenDeclsRequest 1,284,455 1,284,411 -44 -0.0%
Sema.RequirementRequest 18,968 18,968 0 0.0%
Sema.SelfBoundsFromWhereClauseRequest 46,092 46,092 0 0.0%
Sema.SetterAccessLevelRequest 46,057 46,057 0 0.0%
Sema.SuperclassDeclRequest 36,772,388 36,770,797 -1,591 -0.0%
Sema.SuperclassTypeRequest 13,104 13,104 0 0.0%
Sema.USRGenerationRequest 164,417 164,417 0 0.0%
Sema.UnderlyingTypeDeclsReferencedRequest 1,343,148 1,343,156 8 0.0%

Release

release brief

Regressed (1)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 12,017,471,683,523 12,197,691,817,590 180,220,134,067 1.5% ⛔
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 441,647,086 441,676,862 29,776 0.01%
time.swift-driver.wall 1926.8s 1945.8s 19.0s 0.99%

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 139,373 139,373 0 0.0%
AST.NumLoadedModules 6,473 6,473 0 0.0%
AST.NumTotalClangImportedEntities 456,348 456,348 0 0.0%
AST.NumUsedConformances 100,136 100,138 2 0.0%
IRModule.NumIRBasicBlocks 1,622,835 1,622,878 43 0.0%
IRModule.NumIRFunctions 732,208 732,217 9 0.0%
IRModule.NumIRGlobals 830,932 830,935 3 0.0%
IRModule.NumIRInsts 13,923,748 13,924,888 1,140 0.01%
IRModule.NumIRValueSymbols 1,415,959 1,415,971 12 0.0%
LLVM.NumLLVMBytesOutput 441,647,086 441,676,862 29,776 0.01%
SILModule.NumSILGenFunctions 305,470 305,473 3 0.0%
SILModule.NumSILOptFunctions 427,353 427,351 -2 -0.0%
Sema.NumConformancesDeserialized 909,227 910,658 1,431 0.16%
Sema.NumConstraintScopes 7,099,674 7,098,590 -1,084 -0.02%
Sema.NumDeclsDeserialized 2,855,566 2,855,901 335 0.01%
Sema.NumDeclsValidated 396,219 396,219 0 0.0%
Sema.NumFunctionsTypechecked 250,088 250,088 0 0.0%
Sema.NumGenericSignatureBuilders 111,382 111,389 7 0.01%
Sema.NumLazyGenericEnvironments 498,930 499,009 79 0.02%
Sema.NumLazyGenericEnvironmentsLoaded 56,683 56,683 0 0.0%
Sema.NumLazyIterableDeclContexts 335,322 335,421 99 0.03%
Sema.NumTypesDeserialized 1,595,378 1,607,521 12,143 0.76%
Sema.NumTypesValidated 178,069 178,069 0 0.0%

@airspeedswift
Copy link
Member

Seems like that helped release but not debug ¯_(ツ)_/¯

@DougGregor
Copy link
Member Author

@airspeedswift looks like there is more diff fallout from the CustomStringConvertible change. I think we should separate it back out, since it didn't help much

…ollection.

Require that BinaryInteger.Words conform to RandomAccessCollection with
an Index type of Int, simplifying clients.

Fixes rdar://problem/36410936.
@DougGregor
Copy link
Member Author

@swift-ci please smoke test

@DougGregor
Copy link
Member Author

Back to a clean, rebased PR

@DougGregor
Copy link
Member Author

@swift-ci please smoke test Linux

@DougGregor DougGregor merged commit 52764c8 into swiftlang:master Sep 6, 2018
@DougGregor DougGregor deleted the words-collection branch September 6, 2018 00:44
@DougGregor
Copy link
Member Author

Merging. Then.... try to recover the compile-time regression.

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.

6 participants