Skip to content
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

IRGen: Factor out calling convention shuffling in metadata accessors, and remove frame pointers. #26475

Merged
merged 3 commits into from Aug 7, 2019

Conversation

jckarter
Copy link
Member

@jckarter jckarter commented Aug 3, 2019

Metadata accessors that take <=3 arguments have to put the arguments in a temporary buffer and
move the registers around in order to call swift_getGenericMetadata. We can factor this into a
common shim function.

@jckarter
Copy link
Member Author

jckarter commented Aug 3, 2019

@swift-ci Please benchmark

@swift-ci
Copy link
Collaborator

swift-ci commented Aug 3, 2019

Performance: -O

Regression OLD NEW DELTA RATIO
DropFirstArray 14 26 +85.7% 0.54x
ObjectiveCBridgeStubFromNSDate 2490 4070 +63.5% 0.61x (?)
DataCountMedium 13 19 +46.2% 0.68x
DataCountSmall 10 13 +30.0% 0.77x
RandomShuffleLCG2 336 432 +28.6% 0.78x
StringWalk 600 760 +26.7% 0.79x (?)
FlattenListFlatMap 3778 4375 +15.8% 0.86x (?)
Set.isSubset.Int.Empty 52 60 +15.4% 0.87x
DataSubscriptSmall 13 15 +15.4% 0.87x
DropLastAnySequence 295 336 +13.9% 0.88x
Set.isSuperset.Seq.Empty.Int 52 59 +13.5% 0.88x (?)
FlattenListLoop 2152 2439 +13.3% 0.88x (?)
ObjectiveCBridgeStubNSDateRefAccess 174 196 +12.6% 0.89x (?)
ProtocolDispatch 174 196 +12.6% 0.89x (?)
Set.subtracting.Empty.Box 8 9 +12.5% 0.89x (?)
MapReduce 193 215 +11.4% 0.90x (?)
MapReduceAnyCollection 194 216 +11.3% 0.90x (?)
Set.isStrictSubset.Seq.Int.Empty 129 142 +10.1% 0.91x (?)
StringToDataSmall 500 550 +10.0% 0.91x (?)
ParseFloat.Float.Exp 10 11 +10.0% 0.91x (?)
Set.isDisjoint.Seq.Int.Empty 53 58 +9.4% 0.91x (?)
ObjectiveCBridgeStubFromNSStringRef 86 94 +9.3% 0.91x (?)
DataSubscriptMedium 34 37 +8.8% 0.92x (?)
RemoveWhereFilterInts 23 25 +8.7% 0.92x
String.replaceSubrange.ArrChar 70 76 +8.6% 0.92x (?)
Fibonacci 89 96 +7.9% 0.93x (?)
DictionaryOfAnyHashableStrings_insert 2926 3150 +7.7% 0.93x (?)
 
Improvement OLD NEW DELTA RATIO
DropWhileArray 35 25 -28.6% 1.40x
PointerArithmetics 23900 17400 -27.2% 1.37x
DropFirstSequence 44 33 -25.0% 1.33x
DropFirstSequenceLazy 44 33 -25.0% 1.33x
PrefixWhileArray 53 41 -22.6% 1.29x
DropWhileCountableRangeLazy 58 45 -22.4% 1.29x
ArrayAppendLatin1Substring 11664 9576 -17.9% 1.22x (?)
ArrayAppendAsciiSubstring 11484 9432 -17.9% 1.22x
ArrayAppendUTF16Substring 11448 9432 -17.6% 1.21x
DropWhileAnySeqCntRange 50 43 -14.0% 1.16x
PrefixArrayLazy 15 13 -13.3% 1.15x (?)
Data.init.Sequence.2047B.Count.I 86 77 -10.5% 1.12x (?)
NSStringConversion.Long 483 433 -10.4% 1.12x
StrComplexWalk 2090 1880 -10.0% 1.11x
ParseInt.Small.Binary 319 287 -10.0% 1.11x
SuffixSequence 325 296 -8.9% 1.10x (?)
SuffixSequenceLazy 324 296 -8.6% 1.09x
DataAccessBytesMedium 47 43 -8.5% 1.09x (?)
Set.isDisjoint.Empty.Box 101 93 -7.9% 1.09x (?)
ParseInt.Small.Decimal 192 177 -7.8% 1.08x (?)
Data.init.Sequence.64kB.Count 54 50 -7.4% 1.08x (?)
Data.init.Sequence.2049B.Count.I 84 78 -7.1% 1.08x (?)
PrefixArray 14 13 -7.1% 1.08x (?)
NormalizedIterator_ascii 86 80 -7.0% 1.07x (?)

Code size: -O

Regression OLD NEW DELTA RATIO
DictionaryLiteral.o 1251 1373 +9.8% 0.91x
ArraySetElement.o 1135 1224 +7.8% 0.93x
SuperChars.o 1462 1576 +7.8% 0.93x
Sim2DArray.o 1207 1296 +7.4% 0.93x
Chars.o 1619 1733 +7.0% 0.93x
COWArrayGuaranteedParameterOverhead.o 1227 1313 +7.0% 0.93x
ArrayOfPOD.o 2385 2545 +6.7% 0.94x
ArrayOfGenericPOD.o 4041 4265 +5.5% 0.95x
ChainedFilterMap.o 2669 2797 +4.8% 0.95x
Join.o 2272 2373 +4.4% 0.96x
DictionaryBridgeToObjC.o 5286 5517 +4.4% 0.96x
PointerArithmetics.o 1759 1827 +3.9% 0.96x
RangeIteration.o 1684 1749 +3.9% 0.96x
StringReplaceSubrange.o 5050 5244 +3.8% 0.96x
IterateData.o 1693 1757 +3.8% 0.96x
ErrorHandling.o 2969 3081 +3.8% 0.96x
StrToInt.o 3508 3636 +3.6% 0.96x
Ackermann.o 1884 1949 +3.5% 0.97x
Memset.o 2148 2221 +3.4% 0.97x
XorLoop.o 2012 2077 +3.2% 0.97x
NSDictionaryCastToSwift.o 1657 1710 +3.2% 0.97x
OpenClose.o 3218 3315 +3.0% 0.97x
RandomValues.o 2894 2978 +2.9% 0.97x
TypeFlood.o 903 928 +2.8% 0.97x
ProtocolDispatch.o 765 786 +2.7% 0.97x
StringEnum.o 13477 13821 +2.6% 0.98x
CaptureProp.o 906 929 +2.5% 0.98x
ArraySubscript.o 3764 3855 +2.4% 0.98x
CharacterLiteralsLarge.o 883 904 +2.4% 0.98x
ArrayLiteral.o 3311 3389 +2.4% 0.98x
CharacterLiteralsSmall.o 1324 1352 +2.1% 0.98x
RangeReplaceableCollectionPlusDefault.o 6077 6205 +2.1% 0.98x
NibbleSort.o 12381 12637 +2.1% 0.98x
RandomShuffle.o 3433 3503 +2.0% 0.98x
ReversedCollections.o 11491 11716 +2.0% 0.98x
MonteCarloE.o 3348 3413 +1.9% 0.98x
ObjectiveCNoBridgingStubs.o 8836 9007 +1.9% 0.98x
RomanNumbers.o 8419 8578 +1.9% 0.98x
Array2D.o 4495 4578 +1.8% 0.98x
FloatingPointParsing.o 15599 15882 +1.8% 0.98x
SequenceAlgos.o 20405 20757 +1.7% 0.98x
PopFront.o 5181 5270 +1.7% 0.98x
StringMatch.o 4700 4777 +1.6% 0.98x
InsertCharacter.o 5144 5224 +1.6% 0.98x
Exclusivity.o 4420 4488 +1.5% 0.98x
Radix2CooleyTukey.o 5215 5295 +1.5% 0.98x
LuhnAlgoLazy.o 10860 11020 +1.5% 0.99x
LuhnAlgoEager.o 10862 11022 +1.5% 0.99x
FloatingPointPrinting.o 5927 6011 +1.4% 0.99x
PrefixWhile.o 21565 21869 +1.4% 0.99x
ArrayInClass.o 4079 4136 +1.4% 0.99x
PopFrontGeneric.o 4686 4751 +1.4% 0.99x
MonteCarloPi.o 1593 1614 +1.3% 0.99x
NSError.o 1294 1310 +1.2% 0.99x
RangeOverlaps.o 10767 10895 +1.2% 0.99x
RangeAssignment.o 4892 4949 +1.2% 0.99x
BinaryFloatingPointProperties.o 7580 7668 +1.2% 0.99x
Phonebook.o 11724 11858 +1.1% 0.99x
Fibonacci.o 1612 1630 +1.1% 0.99x
SevenBoom.o 1642 1660 +1.1% 0.99x
ByteSwap.o 1652 1670 +1.1% 0.99x
DropFirst.o 23731 23987 +1.1% 0.99x
ProtocolDispatch2.o 1740 1758 +1.0% 0.99x
 
Improvement OLD NEW DELTA RATIO
ArrayOfGenericRef.o 15077 13301 -11.8% 1.13x
PolymorphicCalls.o 8544 7632 -10.7% 1.12x
DictionaryGroup.o 18235 17079 -6.3% 1.07x
NSStringConversion.o 9243 8843 -4.3% 1.05x
LinkedList.o 2376 2277 -4.2% 1.04x
RC4.o 4068 3901 -4.1% 1.04x
Diffing.o 9134 8774 -3.9% 1.04x
NIOChannelPipeline.o 4357 4187 -3.9% 1.04x
SetTests.o 153118 147710 -3.5% 1.04x
MapReduce.o 31298 30206 -3.5% 1.04x
NopDeinit.o 5664 5476 -3.3% 1.03x
ArrayOfRef.o 12379 11987 -3.2% 1.03x
ObserverForwarderStruct.o 3648 3540 -3.0% 1.03x
BinaryFloatingPointConversionFromBinaryInteger.o 26504 25752 -2.8% 1.03x
DictionarySubscriptDefault.o 28778 27962 -2.8% 1.03x
DictionarySwap.o 21986 21369 -2.8% 1.03x
BucketSort.o 11618 11307 -2.7% 1.03x
UTF8Decode.o 13034 12745 -2.2% 1.02x
DictTest2.o 15528 15185 -2.2% 1.02x
COWTree.o 13042 12754 -2.2% 1.02x
DictTest4Legacy.o 24640 24118 -2.1% 1.02x
DictOfArraysToArrayOfDicts.o 29949 29317 -2.1% 1.02x
OpaqueConsumingUsers.o 2046 2005 -2.0% 1.02x
LazyFilter.o 11092 10871 -2.0% 1.02x
DictTest.o 20601 20193 -2.0% 1.02x
RGBHistogram.o 27738 27193 -2.0% 1.02x
DictionaryRemove.o 16472 16159 -1.9% 1.02x
ClassArrayGetter.o 5715 5609 -1.9% 1.02x
StringEdits.o 12151 11926 -1.9% 1.02x
DictionaryBridge.o 3390 3328 -1.8% 1.02x
CString.o 8272 8128 -1.7% 1.02x
DriverUtils.o 155317 152637 -1.7% 1.02x
IntegerParsing.o 19820 19532 -1.5% 1.01x
DictTest4.o 23400 23102 -1.3% 1.01x
RecursiveOwnedParameter.o 1382 1365 -1.2% 1.01x
CSVParsing.o 60559 59831 -1.2% 1.01x
DictionaryKeysContains.o 10105 9984 -1.2% 1.01x
ExistentialPerformance.o 47173 46629 -1.2% 1.01x
DictionaryOfAnyHashableStrings.o 10372 10260 -1.1% 1.01x

Performance: -Osize

Regression OLD NEW DELTA RATIO
Array2D 3456 3920 +13.4% 0.88x
RemoveWhereSwapInts 31 35 +12.9% 0.89x
DistinctClassFieldAccesses 178 196 +10.1% 0.91x (?)
MapReduce 216 237 +9.7% 0.91x (?)
RandomShuffleLCG2 368 400 +8.7% 0.92x (?)
String.replaceSubrange.ArrChar 70 76 +8.6% 0.92x (?)
ArraySetElement 262 283 +8.0% 0.93x (?)
RemoveWhereFilterInts 25 27 +8.0% 0.93x
String.replaceSubrange.String.Small 53 57 +7.5% 0.93x (?)
 
Improvement OLD NEW DELTA RATIO
DataAccessBytesMedium 56 52 -7.1% 1.08x (?)
Set.isDisjoint.Seq.Empty.Box 101 94 -6.9% 1.07x (?)

Code size: -Osize

Regression OLD NEW DELTA RATIO
ArrayOfPOD.o 2761 2793 +1.2% 0.99x

Performance: -Onone

Regression OLD NEW DELTA RATIO
Set.isStrictSubset.Empty.Int 333 360 +8.1% 0.93x (?)
ArrayAppendReserved 2110 2280 +8.1% 0.93x (?)
ObjectiveCBridgeStubToNSDateRef 2340 2520 +7.7% 0.93x (?)

Code size: -swiftlibs

Improvement OLD NEW DELTA RATIO
libswiftMetal.dylib 40960 36864 -10.0% 1.11x
libswiftAVFoundation.dylib 57344 53248 -7.1% 1.08x
libswiftXCTest.dylib 73728 69632 -5.6% 1.06x
libswiftAppKit.dylib 77824 73728 -5.3% 1.06x
libswiftAccelerate.dylib 237568 225280 -5.2% 1.05x
libswiftFoundation.dylib 1585152 1527808 -3.6% 1.04x
libswiftNetwork.dylib 172032 167936 -2.4% 1.02x
libswiftStdlibUnittest.dylib 348160 339968 -2.4% 1.02x
libswiftCore.dylib 3764224 3682304 -2.2% 1.02x
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

@jckarter jckarter force-pushed the generic-metadata-accessor-shim branch from 248c754 to 251e1d9 Compare August 5, 2019 19:46
@jckarter
Copy link
Member Author

jckarter commented Aug 5, 2019

@swift-ci Please benchmark

@swift-ci
Copy link
Collaborator

swift-ci commented Aug 5, 2019

Performance: -O

Regression OLD NEW DELTA RATIO
UTF8Decode_InitFromBytes 130 143 +10.0% 0.91x (?)
UTF8Decode_InitFromData 121 133 +9.9% 0.91x (?)
 
Improvement OLD NEW DELTA RATIO
FlattenListFlatMap 5905 4175 -29.3% 1.41x (?)
UTF8Decode_InitDecoding 122 102 -16.4% 1.20x

Code size: -O

Performance: -Osize

Regression OLD NEW DELTA RATIO
UTF8Decode_InitFromBytes 131 144 +9.9% 0.91x (?)
 
Improvement OLD NEW DELTA RATIO
UTF8Decode_InitDecoding 121 104 -14.0% 1.16x (?)

Code size: -Osize

Performance: -Onone

Regression OLD NEW DELTA RATIO
UTF8Decode_InitFromData 121 136 +12.4% 0.89x
UTF8Decode_InitFromBytes 131 147 +12.2% 0.89x (?)
ObjectiveCBridgeStubToNSDateRef 2080 2320 +11.5% 0.90x (?)
ArrayOfPOD 661 727 +10.0% 0.91x (?)
StringToDataEmpty 600 650 +8.3% 0.92x (?)
 
Improvement OLD NEW DELTA RATIO
UTF8Decode_InitDecoding 144 125 -13.2% 1.15x

Code size: -swiftlibs

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

@jckarter jckarter force-pushed the generic-metadata-accessor-shim branch from 251e1d9 to ae2a241 Compare August 5, 2019 21:14
@jckarter
Copy link
Member Author

jckarter commented Aug 5, 2019

@swift-ci Please test

@swift-ci
Copy link
Collaborator

swift-ci commented Aug 5, 2019

Build failed
Swift Test Linux Platform
Git Sha - 248c75418cf83ca95f640950bec5a861d228f977

@swift-ci
Copy link
Collaborator

swift-ci commented Aug 5, 2019

Build failed
Swift Test OS X Platform
Git Sha - 248c75418cf83ca95f640950bec5a861d228f977

@jckarter jckarter marked this pull request as ready for review August 5, 2019 21:26
@jckarter jckarter changed the title [WIP] IRGen: Factor out calling convention shuffling in metadata accessors. IRGen: Factor out calling convention shuffling in metadata accessors, and remove frame pointers. Aug 5, 2019
@jckarter
Copy link
Member Author

jckarter commented Aug 5, 2019

@swift-ci Please benchmark

@jckarter
Copy link
Member Author

jckarter commented Aug 5, 2019

@swift-ci Please test

@swift-ci
Copy link
Collaborator

swift-ci commented Aug 5, 2019

Build failed
Swift Test Linux Platform
Git Sha - ae2a2417bfd7db790d7ed00b2cb6469fb9a16329

@swift-ci
Copy link
Collaborator

swift-ci commented Aug 5, 2019

Build failed
Swift Test OS X Platform
Git Sha - ae2a2417bfd7db790d7ed00b2cb6469fb9a16329

@swift-ci
Copy link
Collaborator

swift-ci commented Aug 5, 2019

Performance: -O

Regression OLD NEW DELTA RATIO
EqualSubstringSubstring 22 28 +27.3% 0.79x
LessSubstringSubstring 22 28 +27.3% 0.79x (?)
EqualStringSubstring 22 28 +27.3% 0.79x (?)
EqualSubstringSubstringGenericEquatable 22 28 +27.3% 0.79x (?)
EqualSubstringString 22 28 +27.3% 0.79x (?)
LessSubstringSubstringGenericComparable 22 28 +27.3% 0.79x
Chars2 2950 3350 +13.6% 0.88x
Calculator 133 151 +13.5% 0.88x (?)
Set.isSubset.Seq.Int.Empty 116 129 +11.2% 0.90x
StringComparison_longSharedPrefix 320 355 +10.9% 0.90x
SortLettersInPlace 380 413 +8.7% 0.92x (?)
OpenClose 58 63 +8.6% 0.92x (?)
ArrayLiteral2 78 84 +7.7% 0.93x (?)
Set.isStrictSubset.Seq.Int.Empty 119 128 +7.6% 0.93x (?)
 
Improvement OLD NEW DELTA RATIO
FlattenListLoop 2716 2268 -16.5% 1.20x (?)
ArraySetElement 305 262 -14.1% 1.16x
RandomShuffleLCG2 384 336 -12.5% 1.14x (?)
RemoveWhereSwapInts 35 31 -11.4% 1.13x
RemoveWhereMoveInts 18 16 -11.1% 1.12x
Array2D 4144 3696 -10.8% 1.12x (?)
DistinctClassFieldAccesses 194 174 -10.3% 1.11x (?)
MapReduceAnyCollection 215 194 -9.8% 1.11x
PrefixWhileAnySeqCRangeIter 186 173 -7.0% 1.08x (?)
PrefixWhileAnySeqCntRange 186 173 -7.0% 1.08x
PrefixWhileSequence 195 182 -6.7% 1.07x (?)
DropLastAnySequence 334 312 -6.6% 1.07x (?)

Code size: -O

Improvement OLD NEW DELTA RATIO
ErrorHandling.o 3055 2959 -3.1% 1.03x
CaptureProp.o 963 939 -2.5% 1.03x
BinaryFloatingPointConversionFromBinaryInteger.o 25696 25360 -1.3% 1.01x
TestsUtils.o 25414 25134 -1.1% 1.01x

Performance: -Osize

Regression OLD NEW DELTA RATIO
LessSubstringSubstring 22 29 +31.8% 0.76x
LessSubstringSubstringGenericComparable 22 29 +31.8% 0.76x
EqualSubstringSubstring 22 28 +27.3% 0.79x (?)
EqualStringSubstring 22 28 +27.3% 0.79x
EqualSubstringSubstringGenericEquatable 22 28 +27.3% 0.79x (?)
EqualSubstringString 22 28 +27.3% 0.79x (?)
DataCreateEmpty 80 100 +25.0% 0.80x
Set.subtracting.Empty.Box 8 9 +12.5% 0.89x (?)
Calculator 136 152 +11.8% 0.89x (?)
DataToStringEmpty 450 500 +11.1% 0.90x (?)
StringComparison_longSharedPrefix 322 356 +10.6% 0.90x
Chars2 3250 3550 +9.2% 0.92x (?)
StringComparison_ascii 339 369 +8.8% 0.92x
 
Improvement OLD NEW DELTA RATIO
ArraySetElement 305 262 -14.1% 1.16x
RemoveWhereSwapInts 33 29 -12.1% 1.14x
DataCountMedium 17 15 -11.8% 1.13x (?)
Array2D 3920 3472 -11.4% 1.13x (?)
RangeAssignment 221 196 -11.3% 1.13x (?)
FlattenListLoop 2364 2145 -9.3% 1.10x (?)
MapReduce 258 236 -8.5% 1.09x (?)
MapReduceAnyCollection 259 238 -8.1% 1.09x (?)
RandomShuffleLCG2 400 368 -8.0% 1.09x (?)
RemoveWhereFilterInts 25 23 -8.0% 1.09x (?)
PrefixWhileSequence 202 188 -6.9% 1.07x (?)
PrefixWhileAnySeqCRangeIter 211 197 -6.6% 1.07x (?)
PrefixWhileAnySeqCntRange 211 197 -6.6% 1.07x (?)

Code size: -Osize

Improvement OLD NEW DELTA RATIO
ErrorHandling.o 2991 2879 -3.7% 1.04x
TestsUtils.o 19169 18809 -1.9% 1.02x
BinaryFloatingPointConversionFromBinaryInteger.o 25824 25472 -1.4% 1.01x
NibbleSort.o 14112 13928 -1.3% 1.01x
Phonebook.o 12077 11957 -1.0% 1.01x

Performance: -Onone

Regression OLD NEW DELTA RATIO
EqualSubstringSubstringGenericEquatable 25 31 +24.0% 0.81x
LessSubstringSubstringGenericComparable 25 31 +24.0% 0.81x (?)
EqualSubstringSubstring 26 32 +23.1% 0.81x (?)
LessSubstringSubstring 26 31 +19.2% 0.84x (?)
EqualStringSubstring 27 32 +18.5% 0.84x
EqualSubstringString 27 32 +18.5% 0.84x
StringToDataEmpty 600 650 +8.3% 0.92x (?)
 
Improvement OLD NEW DELTA RATIO
RC4 9426 8339 -11.5% 1.13x (?)
ArrayOfGenericPOD2 836 751 -10.2% 1.11x (?)

Code size: -swiftlibs

Regression OLD NEW DELTA RATIO
libswiftQuartzCore.dylib 28672 32768 +14.3% 0.88x
libswiftNaturalLanguage.dylib 36864 40960 +11.1% 0.90x
libswiftAVFoundation.dylib 53248 57344 +7.7% 0.93x
libswiftCoreGraphics.dylib 61440 65536 +6.7% 0.94x
libswiftAppKit.dylib 73728 77824 +5.6% 0.95x
libswiftNetwork.dylib 167936 176128 +4.9% 0.95x
libswiftCore.dylib 3678208 3776512 +2.7% 0.97x
libswiftAccelerate.dylib 237568 241664 +1.7% 0.98x
libswiftFoundation.dylib 1507328 1527808 +1.4% 0.99x
libswiftStdlibUnittest.dylib 335872 339968 +1.2% 0.99x
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

Metadata accessors that take <=3 arguments have to put the arguments in a temporary buffer and
move the registers around in order to call swift_getGenericMetadata. We can factor this into a
common shim function.
@jckarter
Copy link
Member Author

jckarter commented Aug 7, 2019

Looks like the increased dylib size comes from increased unwind and EH table information, which makes sense because without the frame pointer we need more info on how to unwind frames. The __text segments themselves are still smaller across the board, which is good because that's fewer hot pages.

@jckarter jckarter force-pushed the generic-metadata-accessor-shim branch from cde1eb8 to d50b236 Compare August 7, 2019 20:52
@jckarter
Copy link
Member Author

jckarter commented Aug 7, 2019

@swift-ci Please test

@swift-ci
Copy link
Collaborator

swift-ci commented Aug 7, 2019

Build failed
Swift Test Linux Platform
Git Sha - cde1eb8f2f5b490be264cac312b2f6138f87f576

@swift-ci
Copy link
Collaborator

swift-ci commented Aug 7, 2019

Build failed
Swift Test OS X Platform
Git Sha - cde1eb8f2f5b490be264cac312b2f6138f87f576

@jckarter jckarter force-pushed the generic-metadata-accessor-shim branch from d50b236 to 1d19a3e Compare August 7, 2019 21:13
@jckarter
Copy link
Member Author

jckarter commented Aug 7, 2019

@swift-ci Please test

@swift-ci
Copy link
Collaborator

swift-ci commented Aug 7, 2019

Build failed
Swift Test Linux Platform
Git Sha - d50b23658c169ebbed0cf134090890f95198abaf

@jckarter jckarter force-pushed the generic-metadata-accessor-shim branch from 1d19a3e to b3ac66a Compare August 7, 2019 21:16
@jckarter
Copy link
Member Author

jckarter commented Aug 7, 2019

@swift-ci Please test

@swift-ci
Copy link
Collaborator

swift-ci commented Aug 7, 2019

Build failed
Swift Test OS X Platform
Git Sha - 1d19a3e68b5c7a5eb9c28e32794105afc13bf72c

@swift-ci
Copy link
Collaborator

swift-ci commented Aug 7, 2019

Build failed
Swift Test Linux Platform
Git Sha - 1d19a3e68b5c7a5eb9c28e32794105afc13bf72c

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.

None yet

2 participants