Skip to content

Fix the mid-level pass pipeline #22445

New issue

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

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

Already on GitHub? Sign in to your account

Closed
wants to merge 19 commits into from
Closed

Fix the mid-level pass pipeline #22445

wants to merge 19 commits into from

Conversation

atrick
Copy link
Contributor

@atrick atrick commented Feb 7, 2019

This is a small series of commits that together fixes issues in the pass pipeline that are causing severe instability in benchmark performance and blocking other bug fixes.

We have heroic optimizations for array access, but whether those actually kick in was essentially random. Now, those optimizations always have a chance to run and the pass pipeline consistently reruns when necessary as it was designed to do.

The two main bug fixes are

  • Don't inline array semantic calls before the mid-level pipeline
  • Fix the mid-level pipeline restart mechanism

@atrick atrick requested review from eeckstein and gottesmm February 7, 2019 17:44
@atrick
Copy link
Contributor Author

atrick commented Feb 7, 2019

@swift-ci test.

@swift-ci
Copy link
Contributor

swift-ci commented Feb 7, 2019

Build failed
Swift Test OS X Platform
Git Sha - 862504188d46343865731f422e616c40e8b3549e

@swift-ci
Copy link
Contributor

swift-ci commented Feb 7, 2019

Build failed
Swift Test Linux Platform
Git Sha - 862504188d46343865731f422e616c40e8b3549e

@atrick
Copy link
Contributor Author

atrick commented Feb 7, 2019

This PR is on hold because there are a few benchmark regressions I don't have time to investigate today. The vast majority are improvements, but I should still understand why the few regressions happened before merging.

@atrick
Copy link
Contributor Author

atrick commented Jul 28, 2019

This PR is still active. I plan to work on merging it this week after finishing some work on EscapeAnalysis. Unfortunately, I can't avoid all regressions because of some fundamental problems in ARC optimization.

@eeckstein eeckstein self-requested a review August 5, 2019 18:19
Copy link
Contributor

@eeckstein eeckstein left a comment

Choose a reason for hiding this comment

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

lgtm

@atrick
Copy link
Contributor Author

atrick commented Sep 27, 2019

@swift-ci test

@atrick
Copy link
Contributor Author

atrick commented Sep 27, 2019

@swift-ci benchmark

@atrick
Copy link
Contributor Author

atrick commented Sep 27, 2019

@swift-ci test source compatibility

@atrick
Copy link
Contributor Author

atrick commented Sep 27, 2019

@swift-ci test compiler performance

@swift-ci
Copy link
Contributor

Performance: -O

Regression OLD NEW DELTA RATIO
DropLastAnySequence 321 1462 +355.5% 0.22x
SuffixAnySequence 302 1372 +354.3% 0.22x
DataCreateEmpty 80 100 +25.0% 0.80x
Calculator 135 161 +19.3% 0.84x
OpenClose 58 68 +17.2% 0.85x
Chars2 3100 3600 +16.1% 0.86x
Prims.NonStrongRef.UnownedSafe 503 584 +16.1% 0.86x (?)
ObjectiveCBridgeStubFromNSStringRef 81 93 +14.8% 0.87x (?)
Data.append.Sequence.64kB.Count.I 30 34 +13.3% 0.88x
Data.append.Sequence.64kB.Count 30 34 +13.3% 0.88x (?)
StrComplexWalk 1880 2130 +13.3% 0.88x
Dictionary 330 370 +12.1% 0.89x
StringEnumRawValueInitialization 360 400 +11.1% 0.90x (?)
Data.init.Sequence.2049B.Count.I 77 85 +10.4% 0.91x (?)
StringComparison_ascii 337 366 +8.6% 0.92x
MapReduceLazyCollectionShort 26 28 +7.7% 0.93x
 
Improvement OLD NEW DELTA RATIO
SuffixAnySeqCntRangeLazy 27292 204 -99.3% 133.78x
SuffixAnySeqCRangeIterLazy 27515 251 -99.1% 109.62x
DropLastAnySeqCRangeIterLazy 27656 349 -98.7% 79.24x
DropLastAnySeqCntRangeLazy 27699 355 -98.7% 78.03x
SuffixAnySeqCntRange 650 205 -68.5% 3.17x
SuffixAnySeqCRangeIter 660 247 -62.6% 2.67x
FlattenListLoop 2290 919 -59.9% 2.49x (?)
DropFirstArray 26 13 -50.0% 2.00x
SuffixAnySequenceLazy 2782 1456 -47.7% 1.91x
DropLastAnySequenceLazy 2801 1583 -43.5% 1.77x
FlattenListFlatMap 4075 2753 -32.4% 1.48x (?)
DropLastAnySeqCntRange 450 312 -30.7% 1.44x
PointerArithmetics 24500 17400 -29.0% 1.41x
DropWhileArray 35 25 -28.6% 1.40x
DropLastAnySeqCRangeIter 451 324 -28.2% 1.39x
MapReduce 217 165 -24.0% 1.32x
PrefixWhileArray 53 41 -22.6% 1.29x
SubstringEqualString 245 195 -20.4% 1.26x
WordCountUniqueUTF16 1620 1290 -20.4% 1.26x
RangeAssignment 198 158 -20.2% 1.25x
NormalizedIterator_ascii 86 69 -19.8% 1.25x
RangeIterationSigned 108 87 -19.4% 1.24x
WordCountUniqueASCII 1440 1180 -18.1% 1.22x
MapReduceAnyCollection 196 162 -17.3% 1.21x (?)
SubstringEquatable 418 353 -15.6% 1.18x
ArrayAppendRepeatCol 590 500 -15.3% 1.18x (?)
String.replaceSubrange.Substring.Small 62 53 -14.5% 1.17x (?)
CharIndexing_tweet_unicodeScalars_Backwards 5960 5120 -14.1% 1.16x
CharIteration_tweet_unicodeScalars_Backwards 5960 5120 -14.1% 1.16x (?)
ArrayAppendSequence 510 440 -13.7% 1.16x (?)
DataSubscriptMedium 37 32 -13.5% 1.16x
Set.isSuperset.Seq.Int.Empty 93 81 -12.9% 1.15x (?)
NSStringConversion.Long 552 483 -12.5% 1.14x
Set.subtracting.Empty.Box 8 7 -12.5% 1.14x (?)
QueueConcrete 970 850 -12.4% 1.14x
CharIndexing_punctuated_unicodeScalars_Backwards 680 600 -11.8% 1.13x (?)
CharIteration_punctuated_unicodeScalars_Backwards 680 600 -11.8% 1.13x
Set.isDisjoint.Seq.Int.Empty 51 45 -11.8% 1.13x (?)
ObjectiveCBridgeStubNSDateRefAccess 196 174 -11.2% 1.13x (?)
CharIndexing_ascii_unicodeScalars_Backwards 2880 2560 -11.1% 1.12x
CharIteration_ascii_unicodeScalars_Backwards 2880 2560 -11.1% 1.12x
String.replaceSubrange.String.Small 55 49 -10.9% 1.12x (?)
String.replaceSubrange.ArrChar.Small 56 50 -10.7% 1.12x
NormalizedIterator_latin1 214 192 -10.3% 1.11x
CharIteration_russian_unicodeScalars 1960 1760 -10.2% 1.11x (?)
NSStringConversion.Medium 255 229 -10.2% 1.11x (?)
StringHashing_abnormal 800 720 -10.0% 1.11x (?)
ProtocolDispatch 217 196 -9.7% 1.11x (?)
StringHasSuffixAscii 1370 1240 -9.5% 1.10x (?)
StringComparison_fastPrenormal 740 670 -9.5% 1.10x (?)
ParseInt.Small.UncommonRadix 222 201 -9.5% 1.10x (?)
NormalizedIterator_emoji 764 692 -9.4% 1.10x
CharIteration_punctuated_unicodeScalars 440 400 -9.1% 1.10x
StringHasPrefixAscii 1220 1110 -9.0% 1.10x (?)
ObjectiveCBridgeStringHash 46 42 -8.7% 1.10x (?)
CharIteration_ascii_unicodeScalars 1880 1720 -8.5% 1.09x (?)
StringHashing_zalgo 2100 1925 -8.3% 1.09x
NormalizedIterator_zalgo 2125 1950 -8.2% 1.09x
StringComparison_emoji 452 416 -8.0% 1.09x (?)
NormalizedIterator_abnormal 780 720 -7.7% 1.08x (?)
StringComparison_latin1 468 432 -7.7% 1.08x
CharIteration_tweet_unicodeScalars 3720 3440 -7.5% 1.08x (?)
Set.isStrictSuperset.Seq.Empty.Int 166 154 -7.2% 1.08x (?)
StringHashing_slowerPrenormal 560 520 -7.1% 1.08x (?)
SuperChars2 287 267 -7.0% 1.07x (?)
StringComparison_slowerPrenormal 870 810 -6.9% 1.07x (?)
MapReduceShort 1490 1390 -6.7% 1.07x (?)

Code size: -O

Regression OLD NEW DELTA RATIO
Queue.o 11113 18729 +68.5% 0.59x
Suffix.o 24276 30608 +26.1% 0.79x
Breadcrumbs.o 44482 54062 +21.5% 0.82x
SortIntPyramids.o 11955 14506 +21.3% 0.82x
AngryPhonebook.o 9875 11731 +18.8% 0.84x
DictTest.o 19560 22456 +14.8% 0.87x
DictTest3.o 22040 25257 +14.6% 0.87x
BucketSort.o 11339 12675 +11.8% 0.89x
DictOfArraysToArrayOfDicts.o 26192 28504 +8.8% 0.92x
DictionaryOfAnyHashableStrings.o 10116 10842 +7.2% 0.93x
FindStringNaive.o 10952 11736 +7.2% 0.93x
PrimsNonStrongRef.o 106041 113401 +6.9% 0.94x
TwoSum.o 5446 5819 +6.8% 0.94x
Combos.o 6866 7306 +6.4% 0.94x
DriverUtils.o 149477 157357 +5.3% 0.95x
main.o 54639 57319 +4.9% 0.95x
Prims.o 16829 17589 +4.5% 0.96x
PrimsSplit.o 16917 17677 +4.5% 0.96x
Hash.o 23205 23949 +3.2% 0.97x
SortStrings.o 27941 28509 +2.0% 0.98x
MapReduce.o 32139 32779 +2.0% 0.98x
 
Improvement OLD NEW DELTA RATIO
ExistentialPerformance.o 46241 34049 -26.4% 1.36x
DictionaryLiteral.o 1273 1029 -19.2% 1.24x
StringWalk.o 39215 31887 -18.7% 1.23x
StringBuilder.o 8261 6885 -16.7% 1.20x
StringReplaceSubrange.o 5270 4406 -16.4% 1.20x
FloatingPointPrinting.o 6024 5096 -15.4% 1.18x
ArrayLiteral.o 3319 2823 -14.9% 1.18x
ProtocolDispatch.o 820 700 -14.6% 1.17x
TypeFlood.o 963 827 -14.1% 1.16x
RandomValues.o 2991 2575 -13.9% 1.16x
CharacterLiteralsLarge.o 938 818 -12.8% 1.15x
CaptureProp.o 939 819 -12.8% 1.15x
DataBenchmarks.o 79655 69591 -12.6% 1.14x
ObjectiveCBridgingStubs.o 19092 16700 -12.5% 1.14x
InsertCharacter.o 5016 4392 -12.4% 1.14x
TestsUtils.o 25518 22350 -12.4% 1.14x
ArraySetElement.o 1211 1075 -11.2% 1.13x
ObjectiveCNoBridgingStubs.o 8868 7988 -9.9% 1.11x
COWArrayGuaranteedParameterOverhead.o 1246 1126 -9.6% 1.11x
SetTests.o 143243 129747 -9.4% 1.10x
Sim2DArray.o 1283 1163 -9.4% 1.10x
NSError.o 1348 1228 -8.9% 1.10x
DictionaryBridgeToObjC.o 5186 4734 -8.7% 1.10x
CharacterLiteralsSmall.o 1386 1266 -8.7% 1.09x
RecursiveOwnedParameter.o 1405 1285 -8.5% 1.09x
DictionaryCopy.o 10779 9867 -8.5% 1.09x
MonteCarloPi.o 1623 1487 -8.4% 1.09x
Fibonacci.o 1650 1514 -8.2% 1.09x
ByteSwap.o 1674 1538 -8.1% 1.09x
SuperChars.o 1478 1358 -8.1% 1.09x
ArrayInClass.o 4078 3750 -8.0% 1.09x
ChainedFilterMap.o 2733 2525 -7.6% 1.08x
Substring.o 18041 16718 -7.3% 1.08x
Chars.o 1651 1531 -7.3% 1.08x
NSDictionaryCastToSwift.o 1653 1533 -7.3% 1.08x
DictionaryRemove.o 15873 14721 -7.3% 1.08x
SevenBoom.o 1664 1544 -7.2% 1.08x
Exclusivity.o 4469 4149 -7.2% 1.08x
Ackermann.o 1906 1770 -7.1% 1.08x
BitCount.o 1914 1778 -7.1% 1.08x
SortArrayInClass.o 2722 2530 -7.1% 1.08x
DictionarySwap.o 21271 19799 -6.9% 1.07x
StackPromo.o 1986 1850 -6.8% 1.07x
RandomShuffle.o 3511 3271 -6.8% 1.07x
ProtocolDispatch2.o 1762 1642 -6.8% 1.07x
PrefixWhile.o 20517 19125 -6.8% 1.07x
RangeIteration.o 1684 1572 -6.7% 1.07x
IterateData.o 1811 1691 -6.6% 1.07x
XorLoop.o 2066 1930 -6.6% 1.07x
DictionaryCompactMapValues.o 18176 16992 -6.5% 1.07x
DropWhile.o 21561 20169 -6.5% 1.07x
UTF8Decode.o 11958 11198 -6.4% 1.07x
RangeAssignment.o 4931 4619 -6.3% 1.07x
DeadArray.o 1898 1778 -6.3% 1.07x
RGBHistogram.o 26531 24866 -6.3% 1.07x
PointerArithmetics.o 1799 1687 -6.2% 1.07x
Memset.o 2192 2056 -6.2% 1.07x
SortLettersInPlace.o 8919 8374 -6.1% 1.07x
StringTests.o 8206 7710 -6.0% 1.06x
OpaqueConsumingUsers.o 2047 1927 -5.9% 1.06x
Array2D.o 4236 3988 -5.9% 1.06x
Integrate.o 2351 2215 -5.8% 1.06x
StringEdits.o 12315 11620 -5.6% 1.06x
Diffing.o 8086 7638 -5.5% 1.06x
LinkedList.o 2183 2063 -5.5% 1.06x
RomanNumbers.o 8321 7866 -5.5% 1.06x
CString.o 7954 7522 -5.4% 1.06x
StringInterpolation.o 6823 6463 -5.3% 1.06x
ArrayOfGenericPOD.o 3993 3785 -5.2% 1.05x
Join.o 2334 2214 -5.1% 1.05x
FlattenList.o 5918 5614 -5.1% 1.05x
Calculator.o 2762 2626 -4.9% 1.05x
ArrayOfPOD.o 2442 2322 -4.9% 1.05x
ErrorHandling.o 3007 2871 -4.5% 1.05x
ReversedCollections.o 10750 10278 -4.4% 1.05x
Prefix.o 21594 20650 -4.4% 1.05x
ObserverClosure.o 3132 2996 -4.3% 1.05x
StrComplexWalk.o 2815 2695 -4.3% 1.04x
DropFirst.o 22501 21557 -4.2% 1.04x
FloatingPointParsing.o 15480 14856 -4.0% 1.04x
MonteCarloE.o 3386 3250 -4.0% 1.04x
WordCount.o 43972 42252 -3.9% 1.04x
ReduceInto.o 16823 16167 -3.9% 1.04x
Hanoi.o 3593 3457 -3.8% 1.04x
Radix2CooleyTukey.o 5516 5308 -3.8% 1.04x
OpenClose.o 3270 3150 -3.7% 1.04x
ArraySubscript.o 3718 3582 -3.7% 1.04x
DictionaryBridge.o 3286 3166 -3.7% 1.04x
PopFront.o 5237 5046 -3.6% 1.04x
ArrayOfGenericRef.o 11931 11507 -3.6% 1.04x
ArrayOfRef.o 11937 11513 -3.6% 1.04x
ObserverPartiallyAppliedMethod.o 3419 3299 -3.5% 1.04x
AnyHashableWithAClass.o 3002 2898 -3.5% 1.04x
ObserverForwarderStruct.o 3490 3370 -3.4% 1.04x
NSStringConversion.o 8741 8445 -3.4% 1.04x
StrToInt.o 3597 3477 -3.3% 1.03x
ArrayAppend.o 38130 36882 -3.3% 1.03x
SequenceAlgos.o 19935 19295 -3.2% 1.03x
BinaryFloatingPointProperties.o 7554 7322 -3.1% 1.03x
Histogram.o 4140 4013 -3.1% 1.03x
RemoveWhere.o 24207 23479 -3.0% 1.03x
IntegerParsing.o 19646 19070 -2.9% 1.03x
ObjectAllocation.o 4097 3977 -2.9% 1.03x
Phonebook.o 11633 11298 -2.9% 1.03x
NIOChannelPipeline.o 4096 3984 -2.7% 1.03x
StringMatch.o 4774 4654 -2.5% 1.03x
NopDeinit.o 5421 5285 -2.5% 1.03x
ObserverUnappliedMethod.o 4926 4806 -2.4% 1.02x
Codable.o 25745 25121 -2.4% 1.02x
CharacterProperties.o 19915 19435 -2.4% 1.02x
PopFrontGeneric.o 4684 4576 -2.3% 1.02x
StringRemoveDupes.o 7291 7123 -2.3% 1.02x
DictionaryKeysContains.o 10139 9913 -2.2% 1.02x
ClassArrayGetter.o 5631 5511 -2.1% 1.02x
RangeReplaceableCollectionPlusDefault.o 6038 5918 -2.0% 1.02x
DictionaryGroup.o 16632 16344 -1.7% 1.02x
DictTest2.o 14760 14521 -1.6% 1.02x
Walsh.o 7602 7482 -1.6% 1.02x
PolymorphicCalls.o 7606 7486 -1.6% 1.02x
NibbleSort.o 12208 12016 -1.6% 1.02x
RC4.o 3792 3736 -1.5% 1.01x
StaticArray.o 13761 13569 -1.4% 1.01x
RangeOverlaps.o 9976 9843 -1.3% 1.01x
SortLargeExistentials.o 20542 20270 -1.3% 1.01x
LuhnAlgoLazy.o 10734 10598 -1.3% 1.01x
LuhnAlgoEager.o 10736 10600 -1.3% 1.01x
DiffingMyers.o 8347 8243 -1.2% 1.01x
DictTest4Legacy.o 23395 23123 -1.2% 1.01x
StringEnum.o 13561 13425 -1.0% 1.01x

Performance: -Osize

Regression OLD NEW DELTA RATIO
DropLastAnySequence 463 1767 +281.6% 0.26x
SuffixAnySequence 690 1787 +159.0% 0.39x
SuffixCountableRange 4 9 +125.0% 0.44x
PrefixArray 13 26 +100.0% 0.50x
Memset 245 436 +78.0% 0.56x
DropWhileCountableRange 19 31 +63.2% 0.61x
SumUsingReduce 280 440 +57.1% 0.64x
DropFirstAnyCollection 72 113 +56.9% 0.64x
PrefixCountableRange 17 26 +52.9% 0.65x
DropLastAnyCollection 27 41 +51.8% 0.66x
DropFirstAnySeqCRangeIterLazy 102 134 +31.4% 0.76x
DropWhileAnyCollection 97 122 +25.8% 0.80x
CharIteration_korean_unicodeScalars 2200 2760 +25.5% 0.80x
DataCreateEmpty 80 100 +25.0% 0.80x (?)
XorLoop 184 219 +19.0% 0.84x
Chars2 3050 3600 +18.0% 0.85x
Calculator 134 158 +17.9% 0.85x
PrefixAnySeqCRangeIterLazy 81 94 +16.0% 0.86x (?)
PrefixAnySeqCntRangeLazy 81 94 +16.0% 0.86x
PrefixWhileAnySeqCRangeIterLazy 81 94 +16.0% 0.86x
PrefixWhileAnySeqCntRangeLazy 81 94 +16.0% 0.86x (?)
DataCountSmall 13 15 +15.4% 0.87x (?)
DataSubscriptSmall 13 15 +15.4% 0.87x
DropWhileAnySeqCntRange 97 111 +14.4% 0.87x (?)
DropFirstAnySeqCntRangeLazy 97 111 +14.4% 0.87x (?)
DropWhileSequence 14 16 +14.3% 0.88x (?)
DataCountMedium 15 17 +13.3% 0.88x
ObjectiveCBridgeStubFromNSStringRef 83 94 +13.3% 0.88x (?)
ObjectiveCBridgeStubNSDateRefAccess 174 196 +12.6% 0.89x (?)
Prims.NonStrongRef.UnownedSafe 526 592 +12.5% 0.89x (?)
PrefixWhileAnyCollection 112 126 +12.5% 0.89x (?)
OpenClose 56 63 +12.5% 0.89x
SuffixAnyCollection 32 36 +12.5% 0.89x
PointerArithmetics 17400 19500 +12.1% 0.89x (?)
CharIteration_ascii_unicodeScalars 1680 1880 +11.9% 0.89x
StringEnumRawValueInitialization 360 400 +11.1% 0.90x
DropWhileAnySeqCntRangeLazy 117 130 +11.1% 0.90x (?)
RemoveWhereMoveInts 18 20 +11.1% 0.90x (?)
ByteSwap 65 72 +10.8% 0.90x
CharIteration_tweet_unicodeScalars 3360 3720 +10.7% 0.90x (?)
CharIteration_punctuated_unicodeScalars 400 440 +10.0% 0.91x (?)
CharIteration_utf16_unicodeScalars 2440 2640 +8.2% 0.92x (?)
ObjectiveCBridgeStubFromNSDate 2360 2550 +8.1% 0.93x (?)
WordCountHistogramASCII 2600 2800 +7.7% 0.93x (?)
 
Improvement OLD NEW DELTA RATIO
DropLastAnySeqCntRangeLazy 27499 555 -98.0% 49.55x
DropLastAnySeqCRangeIterLazy 27495 567 -97.9% 48.49x
SuffixAnySeqCntRangeLazy 27268 725 -97.3% 37.61x
SuffixAnySeqCRangeIterLazy 27429 759 -97.2% 36.14x
FlattenListFlatMap 35569 3806 -89.3% 9.35x
DropFirstArray 26 13 -50.0% 2.00x
FlattenListLoop 2804 1511 -46.1% 1.86x
MapReduceLazyCollectionShort 47 26 -44.7% 1.81x
ArrayAppendSequence 850 480 -43.5% 1.77x
Set.isSuperset.Seq.Box25 192 117 -39.1% 1.64x
DropFirstSequence 49 32 -34.7% 1.53x
DropFirstSequenceLazy 49 32 -34.7% 1.53x
DropLastAnySequenceLazy 2904 1899 -34.6% 1.53x
Sim2DArray 297 197 -33.7% 1.51x (?)
SuffixAnySequenceLazy 2936 1959 -33.3% 1.50x
MapReduce 238 186 -21.8% 1.28x
SubstringEqualString 249 196 -21.3% 1.27x
Set.isDisjoint.Seq.Box0 589 471 -20.0% 1.25x
BitCount 146 117 -19.9% 1.25x (?)
RangeIterationSigned 108 87 -19.4% 1.24x
COWTree 3720 3000 -19.4% 1.24x
NormalizedIterator_ascii 85 69 -18.8% 1.23x (?)
SubstringEquatable 428 348 -18.7% 1.23x (?)
RangeAssignment 200 163 -18.5% 1.23x
WordCountUniqueASCII 1460 1190 -18.5% 1.23x
WordCountUniqueUTF16 1630 1330 -18.4% 1.23x
Set.isDisjoint.Seq.Box25 426 352 -17.4% 1.21x
Set.isSuperset.Seq.Empty.Int 50 42 -16.0% 1.19x (?)
PrefixAnyCollection 102 86 -15.7% 1.19x
ArrayAppendRepeatCol 590 500 -15.3% 1.18x (?)
QueueConcrete 1000 850 -15.0% 1.18x
Set.isSuperset.Seq.Int.Empty 94 81 -13.8% 1.16x (?)
Set.isDisjoint.Seq.Int.Empty 51 44 -13.7% 1.16x (?)
DropWhileAnyCollectionLazy 139 121 -12.9% 1.15x
DropWhileAnySeqCRangeIterLazy 139 121 -12.9% 1.15x (?)
RC4 186 162 -12.9% 1.15x
Set.subtracting.Empty.Box 8 7 -12.5% 1.14x (?)
SequenceAlgosArray 1800 1580 -12.2% 1.14x (?)
NormalizedIterator_slowerPrenormal 580 510 -12.1% 1.14x (?)
DropWhileAnySeqCRangeIter 111 98 -11.7% 1.13x
NSStringConversion.Long 542 480 -11.4% 1.13x (?)
String.replaceSubrange.String.Small 55 49 -10.9% 1.12x (?)
String.replaceSubrange.ArrChar.Small 56 50 -10.7% 1.12x (?)
DropWhileCountableRangeLazy 49 44 -10.2% 1.11x (?)
StringHashing_abnormal 800 720 -10.0% 1.11x
NormalizedIterator_zalgo 2150 1950 -9.3% 1.10x (?)
ReversedDictionary2 239 217 -9.2% 1.10x
EqualSubstringSubstring 22 20 -9.1% 1.10x (?)
EqualStringSubstring 22 20 -9.1% 1.10x
EqualSubstringSubstringGenericEquatable 22 20 -9.1% 1.10x (?)
StringComparison_latin1 474 432 -8.9% 1.10x (?)
ObjectiveCBridgeStringHash 46 42 -8.7% 1.10x (?)
String.replaceSubrange.Substring.Small 58 53 -8.6% 1.09x (?)
StringMatch 4800 4400 -8.3% 1.09x
StringHashing_zalgo 2100 1925 -8.3% 1.09x (?)
ArrayAppendLazyMap 610 560 -8.2% 1.09x (?)
NormalizedIterator_fastPrenormal 610 560 -8.2% 1.09x (?)
NormalizedIterator_nonBMPSlowestPrenormal 980 900 -8.2% 1.09x (?)
StringComparison_fastPrenormal 740 680 -8.1% 1.09x
RandomShuffleLCG2 400 368 -8.0% 1.09x (?)
StringHasPrefixAscii 1130 1040 -8.0% 1.09x
CharIteration_tweet_unicodeScalars_Backwards 5720 5280 -7.7% 1.08x (?)
NormalizedIterator_abnormal 780 720 -7.7% 1.08x (?)
NSStringConversion.Medium 251 232 -7.6% 1.08x (?)
NormalizedIterator_latin1 214 198 -7.5% 1.08x (?)
DataAccessBytesMedium 54 50 -7.4% 1.08x (?)
NormalizedIterator_emoji 760 704 -7.4% 1.08x (?)
SuffixAnySeqCntRange 658 610 -7.3% 1.08x (?)
SuperChars2 288 267 -7.3% 1.08x (?)
CSVParsingAltIndices2 770 715 -7.1% 1.08x (?)
StringHashing_slowerPrenormal 560 520 -7.1% 1.08x (?)
StringComparison_slowerPrenormal 880 820 -6.8% 1.07x (?)
Set.subtracting.Seq.Int100 515 480 -6.8% 1.07x (?)

Code size: -Osize

Regression OLD NEW DELTA RATIO
Suffix.o 22728 29265 +28.8% 0.78x
ArrayAppend.o 30810 38866 +26.1% 0.79x
Queue.o 14377 17929 +24.7% 0.80x
AngryPhonebook.o 9533 11749 +23.2% 0.81x
SortIntPyramids.o 12013 14597 +21.5% 0.82x
TestsUtils.o 18793 22070 +17.4% 0.85x
DictTest.o 11943 13814 +15.7% 0.86x
NopDeinit.o 6381 7213 +13.0% 0.88x
DropLast.o 22474 24907 +10.8% 0.90x
DictTest3.o 13450 14888 +10.7% 0.90x
DriverUtils.o 131908 144980 +9.9% 0.91x
BucketSort.o 11393 12433 +9.1% 0.92x
FindStringNaive.o 10576 11488 +8.6% 0.92x
StringComparison.o 36100 38007 +5.3% 0.95x
MapReduce.o 25960 27304 +5.2% 0.95x
NSStringConversion.o 7973 8381 +5.1% 0.95x
ObjectiveCBridging.o 53294 55462 +4.1% 0.96x
CSVParsing.o 57124 59345 +3.9% 0.96x
DictOfArraysToArrayOfDicts.o 24514 25298 +3.2% 0.97x
Combos.o 7394 7626 +3.1% 0.97x
DictionaryOfAnyHashableStrings.o 7443 7650 +2.8% 0.97x
PrefixWhile.o 18918 19366 +2.4% 0.98x
ArrayOfPOD.o 2706 2770 +2.4% 0.98x
 
Improvement OLD NEW DELTA RATIO
DictionaryLiteral.o 921 721 -21.7% 1.28x
TypeFlood.o 1011 795 -21.4% 1.27x
ProtocolDispatch.o 868 684 -21.2% 1.27x
CharacterLiteralsLarge.o 986 786 -20.3% 1.25x
ArraySetElement.o 1267 1043 -17.7% 1.21x
CaptureProp.o 1139 939 -17.6% 1.21x
COWArrayGuaranteedParameterOverhead.o 1350 1142 -15.4% 1.18x
Sim2DArray.o 1379 1171 -15.1% 1.18x
main.o 51367 43719 -14.9% 1.17x
SuperChars.o 1534 1310 -14.6% 1.17x
CharacterLiteralsSmall.o 1466 1266 -13.6% 1.16x
MonteCarloPi.o 1584 1370 -13.5% 1.16x
Chars.o 1675 1451 -13.4% 1.15x
BitCount.o 1656 1442 -12.9% 1.15x
Fibonacci.o 1664 1450 -12.9% 1.15x
ByteSwap.o 1688 1474 -12.7% 1.15x
IterateData.o 1779 1555 -12.6% 1.14x
NSError.o 1700 1492 -12.2% 1.14x
Histogram.o 1876 1652 -11.9% 1.14x
RangeIteration.o 1674 1476 -11.8% 1.13x
Ackermann.o 1898 1674 -11.8% 1.13x
StackPromo.o 1962 1738 -11.4% 1.13x
XorLoop.o 2016 1792 -11.1% 1.12x
NSDictionaryCastToSwift.o 1662 1479 -11.0% 1.12x
Memset.o 2040 1816 -11.0% 1.12x
PointerArithmetics.o 1832 1633 -10.9% 1.12x
SevenBoom.o 1838 1640 -10.8% 1.12x
DeadArray.o 1896 1698 -10.4% 1.12x
LinkedList.o 2200 1980 -10.0% 1.11x
ArrayLiteral.o 3077 2770 -10.0% 1.11x
RandomValues.o 2711 2447 -9.7% 1.11x
FlattenList.o 6286 5678 -9.7% 1.11x
RangeAssignment.o 4992 4512 -9.6% 1.11x
OpaqueConsumingUsers.o 2095 1895 -9.5% 1.11x
ProtocolDispatch2.o 2069 1877 -9.3% 1.10x
Integrate.o 2349 2135 -9.1% 1.10x
Join.o 2515 2291 -8.9% 1.10x
MonteCarloE.o 3694 3382 -8.4% 1.09x
RecursiveOwnedParameter.o 1352 1240 -8.3% 1.09x
Array2D.o 4276 3924 -8.2% 1.09x
Calculator.o 2744 2530 -7.8% 1.08x
ErrorHandling.o 2911 2687 -7.7% 1.08x
RC4.o 3452 3188 -7.6% 1.08x
TwoSum.o 3030 2806 -7.4% 1.08x
COWTree.o 13132 12180 -7.2% 1.08x
StringBuilder.o 8013 7437 -7.2% 1.08x
StrComplexWalk.o 2776 2577 -7.2% 1.08x
SortArrayInClass.o 2931 2723 -7.1% 1.08x
InsertCharacter.o 4527 4208 -7.0% 1.08x
StringMatch.o 4594 4277 -6.9% 1.07x
ExistentialPerformance.o 36689 34185 -6.8% 1.07x
ArrayInClass.o 4365 4069 -6.8% 1.07x
FloatingPointPrinting.o 5184 4840 -6.6% 1.07x
StringRemoveDupes.o 4641 4337 -6.6% 1.07x
ChainedFilterMap.o 3437 3213 -6.5% 1.07x
ObserverClosure.o 3481 3257 -6.4% 1.07x
AnyHashableWithAClass.o 3250 3042 -6.4% 1.07x
RomanNumbers.o 8361 7826 -6.4% 1.07x
RandomShuffle.o 3677 3453 -6.1% 1.06x
StringReplaceSubrange.o 4830 4542 -6.0% 1.06x
Hanoi.o 3814 3590 -5.9% 1.06x
SequenceAlgos.o 19835 18675 -5.8% 1.06x
PopFront.o 4955 4667 -5.8% 1.06x
RangeOverlaps.o 11156 10516 -5.7% 1.06x
ArrayOfGenericPOD.o 4009 3785 -5.6% 1.06x
StringWalk.o 34263 32359 -5.6% 1.06x
OpenClose.o 3596 3398 -5.5% 1.06x
Exclusivity.o 4270 4037 -5.5% 1.06x
StringEdits.o 12220 11556 -5.4% 1.06x
ArraySubscript.o 3844 3636 -5.4% 1.06x
ObserverForwarderStruct.o 3626 3434 -5.3% 1.06x
DictionaryBridgeToObjC.o 4351 4121 -5.3% 1.06x
DictionaryBridge.o 3460 3278 -5.3% 1.06x
ObserverPartiallyAppliedMethod.o 3811 3619 -5.0% 1.05x
DictTest2.o 9274 8808 -5.0% 1.05x
ReversedCollections.o 8799 8359 -5.0% 1.05x
PopFrontGeneric.o 4681 4457 -4.8% 1.05x
Prims.o 13811 13155 -4.7% 1.05x
ObjectAllocation.o 4020 3830 -4.7% 1.05x
PrimsSplit.o 13911 13255 -4.7% 1.05x
SortLettersInPlace.o 8505 8104 -4.7% 1.05x
DictionaryCompactMapValues.o 13456 12824 -4.7% 1.05x
DictionaryCopy.o 7719 7359 -4.7% 1.05x
Walsh.o 5632 5384 -4.4% 1.05x
ObjectiveCBridgingStubs.o 17836 17084 -4.2% 1.04x
Radix2CooleyTukey.o 5236 5020 -4.1% 1.04x
StringInterpolation.o 6631 6359 -4.1% 1.04x
CString.o 7866 7546 -4.1% 1.04x
ObjectiveCNoBridgingStubs.o 8356 8020 -4.0% 1.04x
StrToInt.o 5229 5021 -4.0% 1.04x
Substring.o 17088 16426 -3.9% 1.04x
UTF8Decode.o 10614 10216 -3.7% 1.04x
ObserverUnappliedMethod.o 5166 4974 -3.7% 1.04x
NIOChannelPipeline.o 3920 3776 -3.7% 1.04x
StringTests.o 7684 7422 -3.4% 1.04x
ClassArrayGetter.o 5738 5546 -3.3% 1.03x
ReduceInto.o 9781 9461 -3.3% 1.03x
DictionaryRemove.o 10833 10489 -3.2% 1.03x
Phonebook.o 11842 11506 -2.8% 1.03x
DropWhile.o 19692 19148 -2.8% 1.03x
Prefix.o 19847 19303 -2.7% 1.03x
PrimsNonStrongRef.o 79977 77785 -2.7% 1.03x
DictionaryKeysContains.o 7747 7537 -2.7% 1.03x
DataBenchmarks.o 67704 65944 -2.6% 1.03x
ArrayOfRef.o 13017 12689 -2.5% 1.03x
ArrayOfGenericRef.o 13075 12747 -2.5% 1.03x
RGBHistogram.o 22664 22104 -2.5% 1.03x
RangeReplaceableCollectionPlusDefault.o 5542 5406 -2.5% 1.03x
PolymorphicCalls.o 7926 7734 -2.4% 1.02x
DictionarySwap.o 16429 16037 -2.4% 1.02x
DictionarySubscriptDefault.o 18012 17652 -2.0% 1.02x
DropFirst.o 19929 19545 -1.9% 1.02x
SetTests.o 121173 118845 -1.9% 1.02x
CharacterProperties.o 19691 19315 -1.9% 1.02x
BinaryFloatingPointProperties.o 7239 7111 -1.8% 1.02x
DiffingMyers.o 8689 8537 -1.7% 1.02x
StringEnum.o 12897 12673 -1.7% 1.02x
DictionaryGroup.o 13910 13686 -1.6% 1.02x
DictTest4Legacy.o 14057 13833 -1.6% 1.02x
DictTest4.o 14308 14084 -1.6% 1.02x
LuhnAlgoLazy.o 13354 13162 -1.4% 1.01x
LuhnAlgoEager.o 13356 13164 -1.4% 1.01x
StaticArray.o 12260 12100 -1.3% 1.01x
Codable.o 25908 25572 -1.3% 1.01x
Hash.o 19425 19185 -1.2% 1.01x
FloatingPointParsing.o 14806 14630 -1.2% 1.01x
NibbleSort.o 13816 13656 -1.2% 1.01x

Performance: -Onone

Improvement OLD NEW DELTA RATIO
Memset 8432 6328 -25.0% 1.33x
ObjectiveCBridgeStubDateMutation 435 348 -20.0% 1.25x
BinaryFloatingPointPropertiesBinade 59 50 -15.3% 1.18x
ArraySetElement 958 817 -14.7% 1.17x (?)
XorLoop 5064 4345 -14.2% 1.17x
String.replaceSubrange.Substring.Small 60 52 -13.3% 1.15x (?)
DataSubscriptMedium 54 47 -13.0% 1.15x
Sim2DArray 6660 5829 -12.5% 1.14x
DataCreateEmpty 740 650 -12.2% 1.14x
ArrayAppendReserved 2370 2090 -11.8% 1.13x (?)
ArrayAppend 2630 2320 -11.8% 1.13x
PrefixCountableRange 323 286 -11.5% 1.13x
DropFirstCountableRange 323 286 -11.5% 1.13x (?)
SuffixCountableRange 110 98 -10.9% 1.12x
BinaryFloatingPointPropertiesUlp 93 83 -10.8% 1.12x (?)
DropLastCountableRange 110 99 -10.0% 1.11x
StringAdder 371 335 -9.7% 1.11x (?)
Walsh 3864 3506 -9.3% 1.10x (?)
NormalizedIterator_zalgo 2225 2025 -9.0% 1.10x
ObjectiveCBridgeStringHash 46 42 -8.7% 1.10x (?)
String.replaceSubrange.ArrChar.Small 59 54 -8.5% 1.09x (?)
StringHashing_zalgo 2200 2025 -8.0% 1.09x (?)
BinaryFloatingPointPropertiesNextUp 90 83 -7.8% 1.08x (?)
Data.hash.Empty 95 88 -7.4% 1.08x (?)
DistinctClassFieldAccesses 739 686 -7.2% 1.08x
StringHasPrefixAscii 3070 2860 -6.8% 1.07x (?)
StringHasSuffixAscii 3240 3020 -6.8% 1.07x (?)
DataSubscriptSmall 74 69 -6.8% 1.07x (?)
StringHashing_abnormal 900 840 -6.7% 1.07x (?)

Code size: -swiftlibs

Regression OLD NEW DELTA RATIO
libswiftOpenCL.dylib 12288 16384 +33.3% 0.75x
libswiftos.dylib 28672 36864 +28.6% 0.78x
libswiftIntents.dylib 28672 32768 +14.3% 0.88x
libswiftCoreData.dylib 32768 36864 +12.5% 0.89x
libswiftSwiftOnoneSupport.dylib 180224 200704 +11.4% 0.90x
libswiftsimd.dylib 135168 147456 +9.1% 0.92x
libswiftFoundation.dylib 1519616 1626112 +7.0% 0.93x
libswiftStdlibUnittest.dylib 364544 389120 +6.7% 0.94x
libswiftAccelerate.dylib 241664 249856 +3.4% 0.97x
libswiftNetwork.dylib 172032 176128 +2.4% 0.98x
 
Improvement OLD NEW DELTA RATIO
libswiftSceneKit.dylib 53248 49152 -7.7% 1.08x
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

@swift-ci
Copy link
Contributor

Build failed
Swift Test Linux Platform
Git Sha - 426d78ec1aaf979031aae54e41c03f1a2157a557

@swift-ci
Copy link
Contributor

Build failed
Swift Test OS X Platform
Git Sha - 426d78ec1aaf979031aae54e41c03f1a2157a557

@atrick
Copy link
Contributor Author

atrick commented Sep 27, 2019

@swift-ci test compiler performance

1 similar comment
@atrick
Copy link
Contributor Author

atrick commented Sep 27, 2019

@swift-ci test compiler performance

@swift-ci
Copy link
Contributor

Summary for master full

Unexpected test results, excluded stats for RxCocoa, Base64CoderSwiftUI, SwifterSwift

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 40,767,854,930,617 40,785,663,457,988 17,808,527,371 0.04%
LLVM.NumLLVMBytesOutput 1,798,141,570 1,797,370,914 -770,656 -0.04%
time.swift-driver.wall 3102.2s 3086.0s -16.2s -0.52%

debug-batch detailed

Regressed (1)
name old new delta delta_pct
AST.NumSourceLinesPerSecond 4,362,858 4,413,792 50,934 1.17% ⛔
Improved (4)
name old new delta delta_pct
Driver.NumDriverPipePolls 80,165 78,869 -1,296 -1.62% ✅
Driver.NumDriverPipeReads 70,871 69,660 -1,211 -1.71% ✅
Sema.StoredPropertiesAndMissingMembersRequest 29,979 28,758 -1,221 -4.07% ✅
Sema.StoredPropertiesRequest 287,833 283,536 -4,297 -1.49% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (170)
name old new delta delta_pct
AST.ImportSetCacheHit 1,553,379 1,553,084 -295 -0.02%
AST.ImportSetCacheMiss 414,732 414,654 -78 -0.02%
AST.ImportSetFoldHit 119,174 119,167 -7 -0.01%
AST.ImportSetFoldMiss 295,558 295,487 -71 -0.02%
AST.ModuleShadowCacheHit 2,268 2,268 0 0.0%
AST.ModuleShadowCacheMiss 1,567 1,567 0 0.0%
AST.ModuleVisibilityCacheHit 264,060 264,060 0 0.0%
AST.ModuleVisibilityCacheMiss 17,139 17,139 0 0.0%
AST.NumASTBytesAllocated 52,279,460,334 52,195,171,389 -84,288,945 -0.16%
AST.NumASTScopeLookups 3,463,400 3,463,446 46 0.0%
AST.NumBraceStmtASTScopeExpansions 472,155 472,155 0 0.0%
AST.NumBraceStmtASTScopes 472,155 472,155 0 0.0%
AST.NumDecls 140,718 140,718 0 0.0%
AST.NumDependencies 297,367 297,361 -6 -0.0%
AST.NumInfixOperators 53,855 53,855 0 0.0%
AST.NumIterableTypeBodyASTScopeExpansions 222,643 222,643 0 0.0%
AST.NumIterableTypeBodyASTScopes 274,309 274,352 43 0.02%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumLoadedModules 270,491 270,491 0 0.0%
AST.NumLocalTypeDecls 253 253 0 0.0%
AST.NumLookupInModule 5,428,663 5,404,158 -24,505 -0.45%
AST.NumLookupQualifiedInAnyObject 291 291 0 0.0%
AST.NumLookupQualifiedInModule 2,654,314 2,629,764 -24,550 -0.92%
AST.NumLookupQualifiedInNominal 7,239,817 7,237,944 -1,873 -0.03%
AST.NumModuleLookupClassMember 7,167 7,167 0 0.0%
AST.NumModuleLookupValue 41,474,857 41,445,361 -29,496 -0.07%
AST.NumObjCMethods 24,701 24,701 0 0.0%
AST.NumPostfixOperators 49 49 0 0.0%
AST.NumPrecedenceGroups 25,742 25,742 0 0.0%
AST.NumPrefixOperators 99 99 0 0.0%
AST.NumReferencedDynamicNames 199 199 0 0.0%
AST.NumReferencedMemberNames 6,348,804 6,348,804 0 0.0%
AST.NumReferencedTopLevelNames 478,089 478,089 0 0.0%
AST.NumSourceBuffers 303,672 303,672 0 0.0%
AST.NumSourceLines 4,697,453 4,697,453 0 0.0%
AST.NumTotalClangImportedEntities 4,920,150 4,901,337 -18,813 -0.38%
AST.NumUnqualifiedLookup 3,605,015 3,605,061 46 0.0%
Driver.ChildrenMaxRSS 231,424,364,544 231,751,450,624 327,086,080 0.14%
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 27,877 27,877 0 0.0%
Driver.NumDriverJobsSkipped 0 0 0 0.0%
Driver.NumProcessFailures 0 0 0 0.0%
Frontend.MaxMallocUsage 995,297,265,976 995,137,873,896 -159,392,080 -0.02%
Frontend.NumInstructionsExecuted 40,767,854,930,617 40,785,663,457,988 17,808,527,371 0.04%
Frontend.NumProcessFailures 0 0 0 0.0%
IRModule.NumIRAliases 197,389 197,475 86 0.04%
IRModule.NumIRBasicBlocks 6,841,602 6,828,012 -13,590 -0.2%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRFunctions 3,370,749 3,363,661 -7,088 -0.21%
IRModule.NumIRGlobals 3,548,629 3,541,906 -6,723 -0.19%
IRModule.NumIRIFuncs 0 0 0 0.0%
IRModule.NumIRInsts 87,026,771 86,995,893 -30,878 -0.04%
IRModule.NumIRNamedMetaData 134,565 134,565 0 0.0%
IRModule.NumIRValueSymbols 6,261,891 6,249,398 -12,493 -0.2%
LLVM.NumLLVMBytesOutput 1,798,141,570 1,797,370,914 -770,656 -0.04%
Parse.NumFunctionsParsed 269,025 269,025 0 0.0%
Parse.NumIterableDeclContextParsed 592,140 591,951 -189 -0.03%
Parse.ParseAbstractFunctionBodyRequest 246,762 246,762 0 0.0%
Parse.ParseMembersRequest 463,649 463,460 -189 -0.04%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILGenFunctions 1,713,946 1,713,946 0 0.0%
SILModule.NumSILGenGlobalVariables 53,898 53,898 0 0.0%
SILModule.NumSILGenVtables 18,663 18,663 0 0.0%
SILModule.NumSILGenWitnessTables 72,471 72,471 0 0.0%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptFunctions 2,457,055 2,452,510 -4,545 -0.18%
SILModule.NumSILOptGlobalVariables 55,506 55,021 -485 -0.87%
SILModule.NumSILOptVtables 31,496 31,496 0 0.0%
SILModule.NumSILOptWitnessTables 158,412 158,412 0 0.0%
Sema.AbstractGenericSignatureRequest 22,984 22,984 0 0.0%
Sema.AccessLevelRequest 10,934,578 10,913,525 -21,053 -0.19%
Sema.AttachedFunctionBuilderRequest 3 3 0 0.0%
Sema.AttachedPropertyWrapperTypeRequest 535,026 535,026 0 0.0%
Sema.AttachedPropertyWrappersRequest 2,023,354 2,020,505 -2,849 -0.14%
Sema.ClassAncestryFlagsRequest 94,874 94,115 -759 -0.8%
Sema.CollectOverriddenDeclsRequest 6,493,736 6,456,259 -37,477 -0.58%
Sema.CursorInfoRequest 0 0 0 0.0%
Sema.CustomAttrNominalRequest 3 3 0 0.0%
Sema.DefaultAndMaxAccessLevelRequest 53,195 53,199 4 0.01%
Sema.DefaultDefinitionTypeRequest 7,712 7,712 0 0.0%
Sema.DefaultTypeRequest 459,567 459,567 0 0.0%
Sema.EmittedMembersRequest 25,883 25,883 0 0.0%
Sema.EnumRawTypeRequest 21,199 21,199 0 0.0%
Sema.ExistentialConformsToSelfRequest 19,715 19,726 11 0.06%
Sema.ExistentialTypeSupportedRequest 15,765 15,765 0 0.0%
Sema.ExtendedNominalRequest 475,360 475,360 0 0.0%
Sema.ExtendedTypeRequest 74,638 74,638 0 0.0%
Sema.FunctionBuilderTypeRequest 3 3 0 0.0%
Sema.FunctionOperatorRequest 53,603 53,603 0 0.0%
Sema.GenericParamListRequest 13,143,792 13,093,389 -50,403 -0.38%
Sema.GenericSignatureRequest 4,014,931 4,000,373 -14,558 -0.36%
Sema.GetDestructorRequest 26,417 26,419 2 0.01%
Sema.HasDynamicMemberLookupAttributeRequest 0 0 0 0.0%
Sema.InferredGenericSignatureRequest 158,650 158,650 0 0.0%
Sema.InheritedDeclsReferencedRequest 5,042,689 5,031,556 -11,133 -0.22%
Sema.InheritedTypeRequest 276,007 275,999 -8 -0.0%
Sema.InitKindRequest 99,440 99,440 0 0.0%
Sema.IsAccessorTransparentRequest 308,763 308,763 0 0.0%
Sema.IsDeclApplicableRequest 0 0 0 0.0%
Sema.IsDynamicRequest 1,594,690 1,594,690 0 0.0%
Sema.IsFinalRequest 2,420,469 2,418,368 -2,101 -0.09%
Sema.IsGetterMutatingRequest 418,038 418,038 0 0.0%
Sema.IsImplicitlyUnwrappedOptionalRequest 2,359,975 2,356,009 -3,966 -0.17%
Sema.IsObjCRequest 1,505,810 1,505,900 90 0.01%
Sema.IsSetterMutatingRequest 338,512 338,512 0 0.0%
Sema.LazyStoragePropertyRequest 2,156 2,156 0 0.0%
Sema.LookupPrecedenceGroupRequest 176,066 176,066 0 0.0%
Sema.MangleLocalTypeDeclRequest 506 506 0 0.0%
Sema.NamedLazyMemberLoadFailureCount 18,244 18,210 -34 -0.19%
Sema.NamedLazyMemberLoadSuccessCount 28,100,430 28,105,010 4,580 0.02%
Sema.NominalTypeLookupDirectCount 34,641,360 34,626,184 -15,176 -0.04%
Sema.NumAccessorBodiesSynthesized 189,333 189,333 0 0.0%
Sema.NumAccessorsSynthesized 277,144 277,144 0 0.0%
Sema.NumConformancesDeserialized 8,133,327 8,123,271 -10,056 -0.12%
Sema.NumConstraintScopes 26,944,320 26,943,225 -1,095 -0.0%
Sema.NumConstraintsConsideredForEdgeContraction 86,064,610 86,063,773 -837 -0.0%
Sema.NumCyclicOneWayComponentsCollapsed 0 0 0 0.0%
Sema.NumDeclsDeserialized 62,420,977 62,107,713 -313,264 -0.5%
Sema.NumDeclsTypechecked 1,401,141 1,401,141 0 0.0%
Sema.NumDeclsValidated 1,577,618 1,577,618 0 0.0%
Sema.NumFunctionsTypechecked 528,614 528,614 0 0.0%
Sema.NumGenericSignatureBuilders 1,186,887 1,186,675 -212 -0.02%
Sema.NumLazyIterableDeclContexts 7,456,678 7,443,758 -12,920 -0.17%
Sema.NumLazyRequirementSignatures 737,883 737,821 -62 -0.01%
Sema.NumLazyRequirementSignaturesLoaded 500,355 500,217 -138 -0.03%
Sema.NumLeafScopes 17,331,665 17,330,796 -869 -0.01%
Sema.NumTypesDeserialized 18,416,250 18,350,738 -65,512 -0.36%
Sema.NumTypesValidated 1,626,761 1,626,761 0 0.0%
Sema.NumUnloadedLazyIterableDeclContexts 4,508,296 4,521,229 12,933 0.29%
Sema.OpaqueReadOwnershipRequest 262,483 262,483 0 0.0%
Sema.OperatorPrecedenceGroupRequest 747 747 0 0.0%
Sema.OverriddenDeclsRequest 2,270,375 2,267,036 -3,339 -0.15%
Sema.PropertyWrapperBackingPropertyInfoRequest 530,028 530,028 0 0.0%
Sema.PropertyWrapperBackingPropertyTypeRequest 535,026 535,026 0 0.0%
Sema.PropertyWrapperMutabilityRequest 590,441 590,441 0 0.0%
Sema.PropertyWrapperTypeInfoRequest 1 1 0 0.0%
Sema.ProtocolRequiresClassRequest 70,038 69,983 -55 -0.08%
Sema.ProvideDefaultImplForRequest 6,493,736 6,456,259 -37,477 -0.58%
Sema.RangeInfoRequest 0 0 0 0.0%
Sema.RequirementRequest 106,237 106,237 0 0.0%
Sema.RequirementSignatureRequest 563,874 563,666 -208 -0.04%
Sema.RequiresOpaqueAccessorsRequest 1,285,480 1,285,480 0 0.0%
Sema.RequiresOpaqueModifyCoroutineRequest 252,974 252,974 0 0.0%
Sema.ResilienceExpansionRequest 1,661,279 1,661,279 0 0.0%
Sema.ResolveProtocolNameRequest 0 0 0 0.0%
Sema.RootAndResultTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.RootTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.SelfAccessKindRequest 4,831,474 4,818,387 -13,087 -0.27%
Sema.SelfBoundsFromWhereClauseRequest 6,705,431 6,691,948 -13,483 -0.2%
Sema.SetterAccessLevelRequest 142,160 142,160 0 0.0%
Sema.StorageImplInfoRequest 1,144,457 1,141,608 -2,849 -0.25%
Sema.StructuralTypeRequest 2,010 2,010 0 0.0%
Sema.SuperclassDeclRequest 392,393 392,349 -44 -0.01%
Sema.SuperclassTypeRequest 48,980 48,980 0 0.0%
Sema.SynthesizeAccessorRequest 277,144 277,144 0 0.0%
Sema.TypeCheckFunctionBodyUntilRequest 528,614 528,614 0 0.0%
Sema.TypeDeclsFromWhereClauseRequest 28,423 28,427 4 0.01%
Sema.TypeRelationCheckRequest 0 0 0 0.0%
Sema.USRGenerationRequest 7,588,034 7,549,597 -38,437 -0.51%
Sema.UnderlyingTypeDeclsReferencedRequest 221,104 220,953 -151 -0.07%
Sema.UnderlyingTypeRequest 32,443 32,443 0 0.0%

Release

release brief

Regressed (3)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 48,296,454,794,266 55,079,794,465,090 6,783,339,670,824 14.05% ⛔
LLVM.NumLLVMBytesOutput 1,919,044,106 2,076,791,176 157,747,070 8.22% ⛔
time.swift-driver.wall 5480.2s 6094.8s 614.5s 11.21% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (0)
name old new delta delta_pct

release detailed

Regressed (6)
name old new delta delta_pct
IRModule.NumIRBasicBlocks 5,588,700 6,445,888 857,188 15.34% ⛔
IRModule.NumIRFunctions 2,867,793 2,931,659 63,866 2.23% ⛔
IRModule.NumIRGlobals 3,040,641 3,112,292 71,651 2.36% ⛔
IRModule.NumIRInsts 53,728,893 60,862,298 7,133,405 13.28% ⛔
IRModule.NumIRValueSymbols 5,551,781 5,675,584 123,803 2.23% ⛔
LLVM.NumLLVMBytesOutput 1,919,044,106 2,076,791,176 157,747,070 8.22% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (13)
name old new delta delta_pct
AST.NumLoadedModules 30,351 30,351 0 0.0%
AST.NumTotalClangImportedEntities 1,218,485 1,218,363 -122 -0.01%
SILModule.NumSILGenFunctions 1,195,032 1,195,032 0 0.0%
SILModule.NumSILOptFunctions 1,712,391 1,697,761 -14,630 -0.85%
Sema.NumConformancesDeserialized 3,808,346 3,800,363 -7,983 -0.21%
Sema.NumConstraintScopes 26,588,057 26,588,057 0 0.0%
Sema.NumDeclsDeserialized 10,420,092 10,371,497 -48,595 -0.47%
Sema.NumDeclsValidated 969,992 969,992 0 0.0%
Sema.NumFunctionsTypechecked 532,236 532,236 0 0.0%
Sema.NumGenericSignatureBuilders 276,096 276,084 -12 -0.0%
Sema.NumLazyIterableDeclContexts 1,326,999 1,323,917 -3,082 -0.23%
Sema.NumTypesDeserialized 5,245,890 5,224,079 -21,811 -0.42%
Sema.NumTypesValidated 951,004 951,004 0 0.0%

@swift-ci
Copy link
Contributor

Summary for master full

Unexpected test results, excluded stats for RxCocoa, SwifterSwift, Base64CoderSwiftUI

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 49,425,282,008,343 49,462,898,261,364 37,616,253,021 0.08%
LLVM.NumLLVMBytesOutput 1,796,569,148 1,795,790,902 -778,246 -0.04%
time.swift-driver.wall 5335.1s 5343.0s 7.9s 0.15%

debug-batch detailed

Regressed (0)
name old new delta delta_pct
Improved (4)
name old new delta delta_pct
Driver.NumDriverPipePolls 59,040 57,525 -1,515 -2.57% ✅
Driver.NumDriverPipeReads 46,075 44,510 -1,565 -3.4% ✅
Sema.StoredPropertiesAndMissingMembersRequest 32,593 31,225 -1,368 -4.2% ✅
Sema.StoredPropertiesRequest 350,784 345,869 -4,915 -1.4% ✅
Unchanged (delta < 1.0% or delta < 100.0ms) (171)
name old new delta delta_pct
AST.ImportSetCacheHit 1,747,940 1,748,370 430 0.02%
AST.ImportSetCacheMiss 616,305 616,358 53 0.01%
AST.ImportSetFoldHit 177,759 177,776 17 0.01%
AST.ImportSetFoldMiss 438,546 438,581 35 0.01%
AST.ModuleShadowCacheHit 2,344 2,344 0 0.0%
AST.ModuleShadowCacheMiss 1,657 1,657 0 0.0%
AST.ModuleVisibilityCacheHit 305,351 305,353 2 0.0%
AST.ModuleVisibilityCacheMiss 23,598 23,600 2 0.01%
AST.NumASTBytesAllocated 65,081,950,529 64,944,639,230 -137,311,299 -0.21%
AST.NumASTScopeLookups 4,238,975 4,239,456 481 0.01%
AST.NumBraceStmtASTScopeExpansions 479,865 479,865 0 0.0%
AST.NumBraceStmtASTScopes 479,865 479,865 0 0.0%
AST.NumDecls 140,718 140,718 0 0.0%
AST.NumDependencies 435,022 435,036 14 0.0%
AST.NumInfixOperators 53,855 53,855 0 0.0%
AST.NumIterableTypeBodyASTScopeExpansions 266,913 266,939 26 0.01%
AST.NumIterableTypeBodyASTScopes 351,391 351,556 165 0.05%
AST.NumLinkLibraries 0 0 0 0.0%
AST.NumLoadedModules 399,963 399,963 0 0.0%
AST.NumLocalTypeDecls 253 253 0 0.0%
AST.NumLookupInModule 6,720,230 6,714,045 -6,185 -0.09%
AST.NumLookupQualifiedInAnyObject 291 291 0 0.0%
AST.NumLookupQualifiedInModule 3,237,663 3,231,032 -6,631 -0.2%
AST.NumLookupQualifiedInNominal 8,065,113 8,063,928 -1,185 -0.01%
AST.NumModuleLookupClassMember 7,167 7,167 0 0.0%
AST.NumModuleLookupValue 49,120,347 49,114,984 -5,363 -0.01%
AST.NumObjCMethods 24,701 24,701 0 0.0%
AST.NumPostfixOperators 49 49 0 0.0%
AST.NumPrecedenceGroups 25,742 25,742 0 0.0%
AST.NumPrefixOperators 99 99 0 0.0%
AST.NumReferencedDynamicNames 199 199 0 0.0%
AST.NumReferencedMemberNames 6,348,853 6,348,853 0 0.0%
AST.NumReferencedTopLevelNames 478,078 478,078 0 0.0%
AST.NumSourceBuffers 567,666 567,666 0 0.0%
AST.NumSourceLines 4,697,453 4,697,453 0 0.0%
AST.NumSourceLinesPerSecond 3,125,515 3,129,779 4,264 0.14%
AST.NumTotalClangImportedEntities 6,332,787 6,326,121 -6,666 -0.11%
AST.NumUnqualifiedLookup 4,382,403 4,382,884 481 0.01%
Driver.ChildrenMaxRSS 242,607,439,872 242,572,830,720 -34,609,152 -0.01%
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 27,877 27,877 0 0.0%
Driver.NumDriverJobsSkipped 0 0 0 0.0%
Driver.NumProcessFailures 0 0 0 0.0%
Frontend.MaxMallocUsage 1,384,730,242,288 1,384,996,306,064 266,063,776 0.02%
Frontend.NumInstructionsExecuted 49,425,282,008,343 49,462,898,261,364 37,616,253,021 0.08%
Frontend.NumProcessFailures 0 0 0 0.0%
IRModule.NumIRAliases 197,389 197,475 86 0.04%
IRModule.NumIRBasicBlocks 6,841,602 6,828,012 -13,590 -0.2%
IRModule.NumIRComdatSymbols 0 0 0 0.0%
IRModule.NumIRFunctions 3,370,749 3,363,661 -7,088 -0.21%
IRModule.NumIRGlobals 3,548,626 3,541,903 -6,723 -0.19%
IRModule.NumIRIFuncs 0 0 0 0.0%
IRModule.NumIRInsts 87,026,771 86,995,893 -30,878 -0.04%
IRModule.NumIRNamedMetaData 134,565 134,565 0 0.0%
IRModule.NumIRValueSymbols 6,261,891 6,249,398 -12,493 -0.2%
LLVM.NumLLVMBytesOutput 1,796,569,148 1,795,790,902 -778,246 -0.04%
Parse.NumFunctionsParsed 269,025 269,025 0 0.0%
Parse.NumIterableDeclContextParsed 915,435 915,200 -235 -0.03%
Parse.ParseAbstractFunctionBodyRequest 247,053 247,053 0 0.0%
Parse.ParseMembersRequest 749,416 749,181 -235 -0.03%
SILModule.NumSILGenDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILGenFunctions 1,713,946 1,713,946 0 0.0%
SILModule.NumSILGenGlobalVariables 53,898 53,898 0 0.0%
SILModule.NumSILGenVtables 18,663 18,663 0 0.0%
SILModule.NumSILGenWitnessTables 72,471 72,471 0 0.0%
SILModule.NumSILOptDefaultWitnessTables 0 0 0 0.0%
SILModule.NumSILOptFunctions 2,457,055 2,452,510 -4,545 -0.18%
SILModule.NumSILOptGlobalVariables 55,506 55,021 -485 -0.87%
SILModule.NumSILOptVtables 31,496 31,496 0 0.0%
SILModule.NumSILOptWitnessTables 158,412 158,412 0 0.0%
Sema.AbstractGenericSignatureRequest 26,484 26,484 0 0.0%
Sema.AccessLevelRequest 12,311,216 12,294,704 -16,512 -0.13%
Sema.AttachedFunctionBuilderRequest 3 3 0 0.0%
Sema.AttachedPropertyWrapperTypeRequest 536,896 536,896 0 0.0%
Sema.AttachedPropertyWrappersRequest 2,093,114 2,089,922 -3,192 -0.15%
Sema.ClassAncestryFlagsRequest 109,894 109,031 -863 -0.79%
Sema.CollectOverriddenDeclsRequest 7,497,417 7,498,668 1,251 0.02%
Sema.CursorInfoRequest 0 0 0 0.0%
Sema.CustomAttrNominalRequest 3 3 0 0.0%
Sema.DefaultAndMaxAccessLevelRequest 58,271 58,270 -1 -0.0%
Sema.DefaultDefinitionTypeRequest 8,164 8,164 0 0.0%
Sema.DefaultTypeRequest 461,216 461,216 0 0.0%
Sema.EmittedMembersRequest 28,103 28,103 0 0.0%
Sema.EnumRawTypeRequest 25,059 25,059 0 0.0%
Sema.ExistentialConformsToSelfRequest 24,741 24,761 20 0.08%
Sema.ExistentialTypeSupportedRequest 17,767 17,767 0 0.0%
Sema.ExtendedNominalRequest 879,505 879,505 0 0.0%
Sema.ExtendedTypeRequest 83,125 83,136 11 0.01%
Sema.FunctionBuilderTypeRequest 3 3 0 0.0%
Sema.FunctionOperatorRequest 77,566 77,566 0 0.0%
Sema.GenericParamListRequest 15,981,546 15,964,477 -17,069 -0.11%
Sema.GenericSignatureRequest 5,001,762 4,999,019 -2,743 -0.05%
Sema.GetDestructorRequest 28,499 28,501 2 0.01%
Sema.HasDynamicMemberLookupAttributeRequest 0 0 0 0.0%
Sema.InferredGenericSignatureRequest 185,769 185,809 40 0.02%
Sema.InheritedDeclsReferencedRequest 6,243,010 6,251,932 8,922 0.14%
Sema.InheritedTypeRequest 315,413 315,599 186 0.06%
Sema.InitKindRequest 109,008 109,008 0 0.0%
Sema.IsAccessorTransparentRequest 320,430 320,430 0 0.0%
Sema.IsDeclApplicableRequest 0 0 0 0.0%
Sema.IsDynamicRequest 1,667,550 1,667,550 0 0.0%
Sema.IsFinalRequest 2,663,047 2,663,655 608 0.02%
Sema.IsGetterMutatingRequest 438,389 438,389 0 0.0%
Sema.IsImplicitlyUnwrappedOptionalRequest 2,530,255 2,528,379 -1,876 -0.07%
Sema.IsObjCRequest 1,604,496 1,604,089 -407 -0.03%
Sema.IsSetterMutatingRequest 345,187 345,187 0 0.0%
Sema.LazyStoragePropertyRequest 2,604 2,604 0 0.0%
Sema.LookupPrecedenceGroupRequest 176,066 176,066 0 0.0%
Sema.MangleLocalTypeDeclRequest 506 506 0 0.0%
Sema.NamedLazyMemberLoadFailureCount 22,293 22,297 4 0.02%
Sema.NamedLazyMemberLoadSuccessCount 30,706,603 30,719,050 12,447 0.04%
Sema.NominalTypeLookupDirectCount 36,584,713 36,584,765 52 0.0%
Sema.NumAccessorBodiesSynthesized 189,388 189,388 0 0.0%
Sema.NumAccessorsSynthesized 296,354 296,354 0 0.0%
Sema.NumConformancesDeserialized 9,590,710 9,591,895 1,185 0.01%
Sema.NumConstraintScopes 27,039,405 27,039,492 87 0.0%
Sema.NumConstraintsConsideredForEdgeContraction 86,111,238 86,111,679 441 0.0%
Sema.NumCyclicOneWayComponentsCollapsed 0 0 0 0.0%
Sema.NumDeclsDeserialized 76,643,353 76,412,912 -230,441 -0.3%
Sema.NumDeclsTypechecked 1,400,923 1,400,923 0 0.0%
Sema.NumDeclsValidated 1,764,125 1,764,188 63 0.0%
Sema.NumFunctionsTypechecked 528,614 528,614 0 0.0%
Sema.NumGenericSignatureBuilders 1,459,975 1,459,995 20 0.0%
Sema.NumLazyIterableDeclContexts 9,790,150 9,782,627 -7,523 -0.08%
Sema.NumLazyRequirementSignatures 1,030,936 1,030,671 -265 -0.03%
Sema.NumLazyRequirementSignaturesLoaded 665,218 665,333 115 0.02%
Sema.NumLeafScopes 17,405,982 17,405,865 -117 -0.0%
Sema.NumTypesDeserialized 22,597,989 22,535,012 -62,977 -0.28%
Sema.NumTypesValidated 1,825,303 1,825,340 37 0.0%
Sema.NumUnloadedLazyIterableDeclContexts 6,308,800 6,331,772 22,972 0.36%
Sema.OpaqueReadOwnershipRequest 282,731 282,731 0 0.0%
Sema.OperatorPrecedenceGroupRequest 747 747 0 0.0%
Sema.OverriddenDeclsRequest 2,503,576 2,502,695 -881 -0.04%
Sema.PropertyWrapperBackingPropertyInfoRequest 531,507 531,507 0 0.0%
Sema.PropertyWrapperBackingPropertyTypeRequest 536,896 536,896 0 0.0%
Sema.PropertyWrapperMutabilityRequest 612,021 612,021 0 0.0%
Sema.PropertyWrapperTypeInfoRequest 1 1 0 0.0%
Sema.ProtocolRequiresClassRequest 91,743 91,876 133 0.14%
Sema.ProvideDefaultImplForRequest 7,497,417 7,498,668 1,251 0.02%
Sema.RangeInfoRequest 0 0 0 0.0%
Sema.RequirementRequest 112,820 112,832 12 0.01%
Sema.RequirementSignatureRequest 750,779 751,057 278 0.04%
Sema.RequiresOpaqueAccessorsRequest 1,315,461 1,315,461 0 0.0%
Sema.RequiresOpaqueModifyCoroutineRequest 274,011 274,011 0 0.0%
Sema.ResilienceExpansionRequest 1,825,948 1,826,000 52 0.0%
Sema.ResolveProtocolNameRequest 0 0 0 0.0%
Sema.RootAndResultTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.RootTypeOfKeypathDynamicMemberRequest 0 0 0 0.0%
Sema.SelfAccessKindRequest 6,258,301 6,259,600 1,299 0.02%
Sema.SelfBoundsFromWhereClauseRequest 8,123,799 8,136,181 12,382 0.15%
Sema.SetterAccessLevelRequest 145,942 145,942 0 0.0%
Sema.StorageImplInfoRequest 1,192,955 1,189,763 -3,192 -0.27%
Sema.StructuralTypeRequest 2,309 2,309 0 0.0%
Sema.SuperclassDeclRequest 502,765 502,950 185 0.04%
Sema.SuperclassTypeRequest 56,515 56,515 0 0.0%
Sema.SynthesizeAccessorRequest 296,354 296,354 0 0.0%
Sema.TypeCheckFunctionBodyUntilRequest 528,614 528,614 0 0.0%
Sema.TypeDeclsFromWhereClauseRequest 30,394 30,393 -1 -0.0%
Sema.TypeRelationCheckRequest 0 0 0 0.0%
Sema.USRGenerationRequest 8,714,855 8,720,651 5,796 0.07%
Sema.UnderlyingTypeDeclsReferencedRequest 270,574 270,905 331 0.12%
Sema.UnderlyingTypeRequest 37,329 37,329 0 0.0%

Release

release brief

Regressed (3)
name old new delta delta_pct
Frontend.NumInstructionsExecuted 48,565,166,492,435 55,329,904,768,232 6,764,738,275,797 13.93% ⛔
LLVM.NumLLVMBytesOutput 1,919,036,078 2,076,797,080 157,761,002 8.22% ⛔
time.swift-driver.wall 8900.8s 9865.5s 964.7s 10.84% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (0)
name old new delta delta_pct

release detailed

Regressed (6)
name old new delta delta_pct
IRModule.NumIRBasicBlocks 5,588,700 6,445,888 857,188 15.34% ⛔
IRModule.NumIRFunctions 2,867,793 2,931,659 63,866 2.23% ⛔
IRModule.NumIRGlobals 3,040,641 3,112,292 71,651 2.36% ⛔
IRModule.NumIRInsts 53,728,893 60,862,298 7,133,405 13.28% ⛔
IRModule.NumIRValueSymbols 5,551,781 5,675,584 123,803 2.23% ⛔
LLVM.NumLLVMBytesOutput 1,919,036,078 2,076,797,080 157,761,002 8.22% ⛔
Improved (0)
name old new delta delta_pct
Unchanged (delta < 1.0% or delta < 100.0ms) (13)
name old new delta delta_pct
AST.NumLoadedModules 30,351 30,351 0 0.0%
AST.NumTotalClangImportedEntities 1,218,485 1,218,363 -122 -0.01%
SILModule.NumSILGenFunctions 1,195,032 1,195,032 0 0.0%
SILModule.NumSILOptFunctions 1,712,391 1,697,761 -14,630 -0.85%
Sema.NumConformancesDeserialized 3,808,346 3,800,363 -7,983 -0.21%
Sema.NumConstraintScopes 26,588,057 26,588,057 0 0.0%
Sema.NumDeclsDeserialized 10,420,092 10,371,497 -48,595 -0.47%
Sema.NumDeclsValidated 969,992 969,992 0 0.0%
Sema.NumFunctionsTypechecked 532,236 532,236 0 0.0%
Sema.NumGenericSignatureBuilders 276,096 276,084 -12 -0.0%
Sema.NumLazyIterableDeclContexts 1,326,999 1,323,917 -3,082 -0.23%
Sema.NumTypesDeserialized 5,245,890 5,224,079 -21,811 -0.42%
Sema.NumTypesValidated 951,004 951,004 0 0.0%

This way we catch the DeadFunctionArgs optimization too, which is a
separate sub-pass.
And fix a test case that assumes Array.append is never inlined.

We need to be able to prevent inlining a function and any of its
specializations. There's no way to specify multiple function names on
the command line, so we use the partial match technique.
Inlining semantic calls must *always* be deferred to the mid-level
pipeline. Otherwise, array optimizations take effect randomly. This is
a primary cause of instability in Swift benchmarks.
Module passes need to be in a separate pipeline, otherwise the
pipeline restart mechanism will be broken.

This makes GlobalOpt and serialization run earlier in the
pipeline. There's no explicit reason for them to be run later, in the
middle of a function pass pipeline.

Also, pipeline boundaries, like serialization and module passes should
be explicit at the the top level function that creates the pass
pipelines.
inlining.

This tests that the pass pipeline is properly setup to run all the
array optimizations even when inlining is required. This requires that
the passmanager defer all semantic inlining until it reaches the
mid-level pipeline.
So -debug-only=sil-inliner is useful.
This complements the pass pipeline changes. Now no semantic inlining
occurs in the early phase, and we expect to see nested semantic calls
in the mid-level pipeline. To ensure that optimizations based on call
semantics work, we need those nested semantic calls to be inlined.
So they can be used in ADTs like SmallPtrSet.
So that it's possible to determine the kind of Array semantic function
from its SILFunction decl only.
Don't allow module passes to be inserted within a function pass
pipeline. This silently breaks the function pipeline both interfering
with analysis and the normal pipeline restart mechanism.
Devirtualizing try_apply modified the CFG, but passes that run
devirtualization were not invalidating any CFG analyses, such as the
domtree.

This could hypothetically have caused miscompilation, but will be
caught by running with -sil-verify-all.
Run all high-level opts before inlining any semantic calls. We have
one exception: an array.uninitialized compiler intrinsic that needs to
be expanded early for optimizations to see the "normal" underlying
semantic call.

This not only ensures that stdlib is well optimized, but ensures that
callers are fully optimized and inlined before attempting to run
semantic passes.

Lower nested semantic calls incrementally so that semantic passes
rerun at each level.

Avoid fully expanding any semantic functions until all semantic passes
have seen them and all callers have been fully optimized.

Inlining the lowest-level semantic calls defeats basic EscapeAnalysis
and SideEffectAnalysis. This shouldn't be done until the late inliner
runs.
Interposing non-semantic calls within semantic calls breaks the
mechanism by which the pass pipeline incrementally processes each
layer of semantics.

Semantics should go "all the way down" to the level that we want
inlined in the mid-level pipeline.
Which broke as a result of stdlib refactoring, and which I don't have
time to get working again.
Not all simplifications correctly invalidate CFG analyses.
@atrick
Copy link
Contributor Author

atrick commented Apr 20, 2020

Superseded by #31163 and other followup PRs.

@atrick atrick closed this Apr 20, 2020
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