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

[DNM] OSSA lowering after inlining #68850

Draft
wants to merge 9 commits into
base: main
Choose a base branch
from
Draft

Conversation

meg-gupta
Copy link
Contributor

No description provided.

@meg-gupta
Copy link
Contributor Author

@swift-ci please apple silicon benchmark

@meg-gupta
Copy link
Contributor Author

@swift-ci please apple silicon benchmark

@meg-gupta
Copy link
Contributor Author

####### Testing optimization level -O #######

------- Performance (arm64): -O -------

REGRESSION                                               OLD        NEW         DELTA                RATIO    
MapReduceClass2                                          7.728      42.534      +450.3%              **0.18x**
ArrayPlusEqualSingleElementCollection                    340.98     1085.273    +218.3%              **0.31x**
MapReduce                                                96.9       225.1       +132.3%              **0.43x**
SubstringFromLongString2                                 17.143     37.417      +118.3%              **0.46x**
DevirtualizeProtocolComposition                          118.563    249.571     +110.5%              **0.48x**
SubstringFromLongStringGeneric2                          18.697     39.0        +108.6%              **0.48x (?)**
UTF8Decode_InitFromCustom_noncontiguous_ascii            197.273    403.8       +104.7%              **0.49x (?)**
RC4                                                      58.4       113.588     +94.5%               **0.51x**
PrefixWhileAnySeqCntRange                                102.059    193.364     +89.5%               **0.53x (?)**
PrefixWhileAnySeqCRangeIter                              102.111    193.2       +89.2%               **0.53x (?)**
UTF8Decode_InitFromCustom_noncontiguous_ascii_as_ascii   248.5      455.75      +83.4%               **0.55x (?)**
RandomShuffleLCG2                                        123.326    220.337     +78.7%               **0.56x (?)**
RawBuffer.1000.findLast                                  2394.0     4114.0      +71.8%               **0.58x**
RawBuffer.39.findLast                                    99.8       159.143     +59.5%               **0.63x (?)**
MapReduceClassShort2                                     54.0       84.31       +56.1%               **0.64x**
RawBuffer.128.findLast                                   353.0      544.0       +54.1%               **0.65x (?)**
UTF8Decode_InitFromCustom_noncontiguous                  126.4      188.0       +48.7%               **0.67x (?)**
CxxVecU32.sum.Swift.reduce                               26.592     37.7        +41.8%               **0.71x (?)**
RawBuffer.7.findLast                                     24.939     34.3        +37.5%               **0.73x (?)**
DropWhileCountableRangeLazy                              28.818     38.897      +35.0%               **0.74x**
RawBuffer.1000.findFirst                                 2403.0     3176.0      +32.2%               **0.76x (?)**
Data.append.Sequence.64kB.Count0.I                       156.75     203.667     +29.9%               **0.77x**
Data.append.Sequence.809B.Count0                         212.2      271.375     +27.9%               **0.78x (?)**
Data.append.Sequence.64kB.Count0                         157.667    201.2       +27.6%               **0.78x**
Data.append.Sequence.809B.Count0.I                       213.444    270.429     +26.7%               **0.79x**
Data.init.Sequence.64kB.Count0.I                         156.75     197.25      +25.8%               **0.79x (?)**
Data.init.Sequence.64kB.Count0                           156.833    196.75      +25.5%               **0.80x**
Data.init.Sequence.64kB.Count0.RE                        160.182    200.0       +24.9%               **0.80x (?)**
Data.init.Sequence.64kB.Count0.RE.I                      160.231    199.0       +24.2%               **0.81x (?)**
Data.append.Sequence.64kB.Count0.RE.I                    160.75     198.8       +23.7%               **0.81x (?)**
Data.init.Sequence.2047B.Count0.I                        273.667    337.5       +23.3%               **0.81x (?)**
Data.append.Sequence.64kB.Count0.RE                      160.917    198.2       +23.2%               **0.81x**
Data.init.Sequence.2049B.Count0.I                        274.0      336.833     +22.9%               **0.81x (?)**
Data.append.Sequence.809B.Count0.RE                      217.909    267.0       +22.5%               **0.82x (?)**
DropWhileAnyCollectionLazy                               42.091     51.37       +22.0%               **0.82x (?)**
DropWhileAnySeqCRangeIterLazy                            42.167     51.364      +21.8%               **0.82x (?)**
DropWhileAnySeqCntRangeLazy                              42.176     51.35       +21.8%               **0.82x (?)**
Data.init.Sequence.809B.Count0.I                         234.667    285.429     +21.6%               **0.82x (?)**
Data.append.Sequence.809B.Count0.RE.I                    217.9      264.667     +21.5%               **0.82x**
RawBuffer.39.findFirst                                   102.9      124.75      +21.2%               **0.82x (?)**
Data.init.Sequence.809B.Count0                           235.333    285.0       +21.1%               **0.83x (?)**
Data.init.Sequence.809B.Count0.RE.I                      238.667    289.0       +21.1%               **0.83x (?)**
Data.init.Sequence.513B.Count0.I                         239.667    289.286     +20.7%               **0.83x (?)**
Data.init.Sequence.809B.Count0.RE                        239.222    288.143     +20.4%               **0.83x (?)**
StrToInt                                                 345.294    414.815     +20.1%               **0.83x (?)**
Data.init.Sequence.511B.Count0.I                         239.444    286.0       +19.4%               **0.84x (?)**
Set.subtracting.Seq.Box0                                 383.5      450.2       +17.4%               **0.85x (?)**
EqualStringSubstring                                     18.889     22.164      +17.3%               **0.85x (?)**
ConvertFloatingPoint.MockFloat64ToDouble                 9.885      11.542      +16.8%               **0.86x (?)**
LessSubstringSubstringGenericComparable                  18.884     22.049      +16.8%               **0.86x (?)**
LessSubstringSubstring                                   18.872     22.034      +16.8%               **0.86x (?)**
EqualSubstringSubstring                                  18.87      22.028      +16.7%               **0.86x**
EqualSubstringString                                     18.875     22.025      +16.7%               **0.86x (?)**
EqualSubstringSubstringGenericEquatable                  18.884     22.035      +16.7%               **0.86x (?)**
FrequenciesUsingReduceInto                               388.333    440.435     +13.4%               **0.88x (?)**
LazilyFilteredRange                                      1796.667   2000.0      +11.3%               **0.90x (?)**
ArrayPlusEqualThreeElements                              461.923    513.871     +11.2%               **0.90x (?)**
String.replaceSubrange.ArrChar.Small                     20.125     21.844      +8.5%                **0.92x (?)**
String.replaceSubrange.Substring.Small                   21.88      23.538      +7.6%                **0.93x (?)**

IMPROVEMENT                                              OLD        NEW         DELTA                RATIO    
StringEqualPointerComparison                             93.545     0.0         -100.0%              **93546.00x**
SubstringComparable                                      4.366      0.0         -100.0%              **4367.00x**
ChaCha                                                   146.538    68.84       -53.0%               **2.13x**
Set.subtracting.Seq.Empty.Box                            138.143    67.069      -51.4%               **2.06x (?)**
NaiveRRC.init.largeContiguous                            10.18      5.5         -46.0%               **1.85x (?)**
NaiveRRC.append.largeContiguous                          10.185     5.519       -45.8%               **1.85x (?)**
Set.subtracting.Seq.Box.Empty                            118.5      67.071      -43.4%               **1.77x (?)**
Set.isStrictSubset.Seq.Int.Empty                         81.083     49.914      -38.4%               **1.62x (?)**
Set.isStrictSuperset.Seq.Empty.Int                       81.083     49.92       -38.4%               **1.62x (?)**
Set.isDisjoint.Seq.Box.Empty                             57.721     35.857      -37.9%               **1.61x (?)**
Set.isSubset.Seq.Int.Empty                               81.077     51.429      -36.6%               **1.58x (?)**
Set.subtracting.Empty.Box                                12.163     7.787       -36.0%               **1.56x (?)**
ArrayAppendSequence                                      360.588    231.395     -35.8%               **1.56x (?)**
Set.subtracting.Seq.Int.Empty                            96.7       62.391      -35.5%               **1.55x (?)**
NaiveRRC.append.smallContiguousRepeated                  69.455     46.057      -33.7%               **1.51x (?)**
SequenceAlgosUnfoldSequence                              294.063    221.127     -24.8%               **1.33x**
DropWhileAnySequenceLazy                                 170.0      128.154     -24.6%               **1.33x (?)**
Set.subtracting.Seq.Empty.Int                            90.476     68.615      -24.2%               **1.32x (?)**
NopDeinit                                                26550.0    20311.111   -23.5%               **1.31x (?)**
Set.isStrictSuperset.Seq.Int0                            10.163     7.786       -23.4%               **1.31x (?)**
Set.subtracting.Empty.Int                                19.341     14.976      -22.6%               **1.29x**
CharacterPropertiesPrecomputed                           537.222    416.75      -22.4%               **1.29x (?)**
RawBuffer.7.findFirst                                    31.182     24.941      -20.0%               **1.25x (?)**
QueueConcrete                                            427.143    343.125     -19.7%               **1.24x (?)**
PrefixWhileArray                                         48.263     38.875      -19.5%               **1.24x**
Set.isStrictSuperset.Seq.Box0                            13.093     10.764      -17.8%               **1.22x (?)**
ArrayAppendLazyMap                                       607.778    508.5       -16.3%               **1.20x (?)**
DataSubscriptSmall                                       10.909     9.341       -14.4%               **1.17x**
ChainedFilterMap                                         608.5      526.605     -13.5%               **1.16x**
ParseInt.UInt64.Decimal                                  97.6       85.6        -12.3%               **1.14x (?)**
RemoveWhereSwapInts                                      12.0       10.64       -11.3%               **1.13x (?)**
DropWhileArray                                           29.208     26.108      -10.6%               **1.12x (?)**
Set.isDisjoint.Seq.Int100                                62.545     56.5        -9.7%                **1.11x (?)**
RomanNumbers2                                            257.111    233.333     -9.2%                **1.10x (?)**
Set.isDisjoint.Seq.Int.Empty                             34.292     31.185      -9.1%                **1.10x (?)**
Set.isDisjoint.Seq.Empty.Int                             37.429     34.304      -8.3%                **1.09x (?)**
ArrayAppendAscii                                         1684.133   1551.25     -7.9%                **1.09x (?)**
CharacterPropertiesStashed                               409.286    377.209     -7.8%                **1.09x (?)**
Data.append.Sequence.64kB.Count.RE.I                     2.063      1.906       -7.6%                **1.08x (?)**
StringFromLongWholeSubstring                             2.169      2.016       -7.1%                **1.08x**
Prims.NonStrongRef.UnownedSafe.Closure                   230.0      214.3       -6.8%                **1.07x (?)**
Prims.NonStrongRef.UnownedSafe                           229.875    214.333     -6.8%                **1.07x (?)**

REMOVED                                                  MIN        MAX         MEAN                 MAX_RSS  
CSVParsing.Char                                          98.217     98.348      98.26066666666667    —        
CSVParsing.Scalar                                        212.333    212.5       212.44433333333333   —        
CSVParsing.UTF16                                         21.679     21.696      21.684666666666665   —        
CSVParsing.UTF8                                          12.819     12.88       12.857333333333333   —        
CSVParsingAlt2                                           561.688    561.917     561.7643333333333    —        
CSVParsingAltIndices2                                    388.612    388.94      388.72133333333335   —        

------- Code size: -O -------

REGRESSION                                         OLD      NEW      DELTA    RATIO  
IntegerParsing.o                                   56434    67610    +19.8%   **0.83x**
NIOChannelPipeline.o                               3059     3447     +12.7%   **0.89x**
StringSplitting.o                                  27695    30109    +8.7%    **0.92x**
Suffix.o                                           16894    18110    +7.2%    **0.93x**
DropFirst.o                                        11921    12701    +6.5%    **0.94x**
RangeOverlaps.o                                    4355     4539     +4.2%    **0.96x**
RC4.o                                              2628     2736     +4.1%    **0.96x**
RandomShuffle.o                                    2350     2446     +4.1%    **0.96x**
StringInterpolation.o                              5530     5742     +3.8%    **0.96x**
ProtocolDispatch2.o                                1170     1214     +3.8%    **0.96x**
RomanNumbers.o                                     3329     3429     +3.0%    **0.97x**
Prefix.o                                           11970    12306    +2.8%    **0.97x**
FloatingPointConversion.o                          17206    17502    +1.7%    **0.98x**
ChaCha.o                                           11366    11550    +1.6%    **0.98x**
CharacterLiteralsSmall.o                           894      906      +1.3%    **0.99x**
CxxVectorSum.o                                     11036    11172    +1.2%    **0.99x**
StrToInt.o                                         4150     4198     +1.2%    **0.99x**

IMPROVEMENT                                        OLD      NEW      DELTA    RATIO  
Walsh.o                                            4245     3101     -26.9%   **1.37x**
NopDeinit.o                                        3525     2765     -21.6%   **1.27x**
PrefixWhile.o                                      12273    10539    -14.1%   **1.16x**
Exclusivity.o                                      3246     2790     -14.0%   **1.16x**
Hash.o                                             17763    15671    -11.8%   **1.13x**
StringDistance.o                                   10459    9275     -11.3%   **1.13x**
ReduceInto.o                                       8713     7829     -10.1%   **1.11x**
BucketSort.o                                       6629     5969     -10.0%   **1.11x**
AngryPhonebook.o                                   6315     5687     -9.9%    **1.11x**
DropWhile.o                                        12035    10857    -9.8%    **1.11x**
FlattenList.o                                      2750     2506     -8.9%    **1.10x**
DropLast.o                                         17416    15908    -8.7%    **1.09x**
IterateData.o                                      1403     1287     -8.3%    **1.09x**
LuhnAlgoLazy.o                                     10012    9216     -8.0%    **1.09x**
LuhnAlgoEager.o                                    10016    9220     -7.9%    **1.09x**
StringEdits.o                                      7288     6768     -7.1%    **1.08x**
ClassArrayGetter.o                                 3134     2922     -6.8%    **1.07x**
StringTests.o                                      6210     5806     -6.5%    **1.07x**
IndexPathTest.o                                    7974     7462     -6.4%    **1.07x**
CharacterLiteralsLarge.o                           630      590      -6.3%    **1.07x**
CharacterProperties.o                              17368    16464    -5.2%    **1.05x**
DictionaryGroup.o                                  9651     9167     -5.0%    **1.05x**
ByteSwap.o                                         1102     1054     -4.4%    **1.05x**
TwoSum.o                                           3309     3169     -4.2%    **1.04x**
RangeReplaceableCollectionPlusDefault.o            6051     5799     -4.2%    **1.04x**
QueueTest.o                                        8983     8631     -3.9%    **1.04x**
SuperChars.o                                       1061     1021     -3.8%    **1.04x**
FindStringNaive.o                                  5557     5349     -3.7%    **1.04x**
PopFront.o                                         2604     2508     -3.7%    **1.04x**
WordCount.o                                        30499    29383    -3.7%    **1.04x**
SubstringTest.o                                    15587    15082    -3.2%    **1.03x**
Integrate.o                                        1677     1625     -3.1%    **1.03x**
PopFrontGeneric.o                                  1997     1937     -3.0%    **1.03x**
RemoveWhere.o                                      11152    10824    -2.9%    **1.03x**
ArrayOfRef.o                                       5873     5701     -2.9%    **1.03x**
DriverUtils.o                                      119173   115717   -2.9%    **1.03x**
ArrayOfGenericRef.o                                6648     6476     -2.6%    **1.03x**
NaiveRangeReplaceableCollectionConformance.o       7326     7146     -2.5%    **1.03x**
Chars.o                                            1142     1114     -2.5%    **1.03x**
DictTest3.o                                        12603    12295    -2.4%    **1.03x**
DictTest.o                                         10686    10426    -2.4%    **1.02x**
Fibonacci.o                                        1206     1178     -2.3%    **1.02x**
Ackermann.o                                        1389     1357     -2.3%    **1.02x**
BufferFind.o                                       2730     2670     -2.2%    **1.02x**
MapReduce.o                                        19397    18977    -2.2%    **1.02x**
DictTest2.o                                        8443     8263     -2.1%    **1.02x**
DictionaryCopy.o                                   7364     7208     -2.1%    **1.02x**
Combos.o                                           3788     3712     -2.0%    **1.02x**
ArrayAppend.o                                      19861    19465    -2.0%    **1.02x**
DictOfArraysToArrayOfDicts.o                       18126    17810    -1.7%    **1.02x**
BinaryFloatingPointConversionFromBinaryInteger.o   23490    23082    -1.7%    **1.02x**
ChainedFilterMap.o                                 2539     2495     -1.7%    **1.02x**
RGBHistogram.o                                     17487    17191    -1.7%    **1.02x**
Hanoi.o                                            2148     2112     -1.7%    **1.02x**
DiffingMyers.o                                     5049     4965     -1.7%    **1.02x**
Diffing.o                                          6010     5914     -1.6%    **1.02x**
CxxSetToCollection.o                               6519     6415     -1.6%    **1.02x**
ArrayRemoveAll.o                                   6124     6028     -1.6%    **1.02x**
TestsUtils.o                                       17300    17052    -1.4%    **1.01x**
ObjectiveCBridging.o                               45546    44918    -1.4%    **1.01x**
Histogram.o                                        2425     2393     -1.3%    **1.01x**
MonteCarloE.o                                      1829     1805     -1.3%    **1.01x**
COWTree.o                                          8726     8614     -1.3%    **1.01x**
DictionarySubscriptDefault.o                       15188    15000    -1.2%    **1.01x**
Breadcrumbs.o                                      33629    33213    -1.2%    **1.01x**
DictionaryOfAnyHashableStrings.o                   5890     5818     -1.2%    **1.01x**
DictionaryLiteralTest.o                            993      981      -1.2%    **1.01x**
SetTests.o                                         117967   116667   -1.1%    **1.01x**
LazyFilter.o                                       5497     5437     -1.1%    **1.01x**
ArraySubscript.o                                   1841     1821     -1.1%    **1.01x**
SortArrayInClass.o                                 1856     1836     -1.1%    **1.01x**
UTF8Decode.o                                       15698    15534    -1.0%    **1.01x**
Phonebook.o                                        7384     7308     -1.0%    **1.01x**
DataBenchmarks.o                                   49525    49017    -1.0%    **1.01x**

####### Testing optimization level -Osize #######

------- Performance (arm64): -Osize -------

REGRESSION                                               OLD         NEW        DELTA                RATIO     
ArrayPlusEqualSingleElementCollection                    347.322     1088.833   +213.5%              **0.32x** 
SubstringFromLongStringGeneric2                          18.697      42.103     +125.2%              **0.44x (?)**
DevirtualizeProtocolComposition                          118.533     249.571    +110.5%              **0.47x (?)**
SubstringFromLongString2                                 18.705      39.0       +108.5%              **0.48x** 
RandomShuffleLCG2                                        113.185     219.752    +94.2%               **0.52x** 
StrToInt                                                 558.462     1067.778   +91.2%               **0.52x (?)**
ArrayOfPOD                                               149.75      285.5      +90.7%               **0.52x** 
ObjectiveCBridgeStubDataAppend                           1292.857    2462.857   +90.5%               **0.52x (?)**
PrefixWhileAnySeqCRangeIter                              101.875     193.0      +89.4%               **0.53x (?)**
PrefixWhileAnySeqCntRange                                101.947     193.0      +89.3%               **0.53x (?)**
RC4                                                      62.444      115.813    +85.5%               **0.54x** 
RawBuffer.128.findLast                                   305.667     545.25     +78.4%               **0.56x (?)**
RawBuffer.1000.findLast                                  2391.0      4115.0     +72.1%               **0.58x** 
RawBuffer.39.findLast                                    99.8        166.857    +67.2%               **0.60x (?)**
SetSymmetricDifferenceInt100                             80.321      113.95     +41.9%               **0.70x (?)**
RawBuffer.7.findLast                                     24.938      34.292     +37.5%               **0.73x (?)**
SIMDRandomMask.Int64x8                                   82.667      110.2      +33.3%               **0.75x (?)**
DataAccessBytesMedium                                    40.538      53.03      +30.8%               **0.76x (?)**
DataAccessBytesSmall                                     43.647      56.154     +28.7%               **0.78x (?)**
DropWhileCountableRangeLazy                              38.481      48.158     +25.1%               **0.80x** 
MapReduce                                                194.0       240.5      +24.0%               **0.81x (?)**
LineSink.bytes.complex                                   75.481      90.556     +20.0%               **0.83x** 
LineSink.scalars.complex                                 75.485      90.556     +20.0%               **0.83x (?)**
Hanoi                                                    1005.625    1195.714   +18.9%               **0.84x (?)**
Data.init.Sequence.64kB.Count0.RE                        177.0       209.4      +18.3%               **0.85x (?)**
Data.init.Sequence.64kB.Count0.RE.I                      177.182     209.4      +18.2%               **0.85x (?)**
LessSubstringSubstring                                   19.481      22.922     +17.7%               **0.85x (?)**
EqualSubstringSubstring                                  19.486      22.914     +17.6%               **0.85x (?)**
Data.init.Sequence.64kB.Count0                           175.583     206.0      +17.3%               **0.85x** 
Data.init.Sequence.64kB.Count0.I                         175.5       205.75     +17.2%               **0.85x (?)**
EqualStringSubstring                                     19.0        22.263     +17.2%               **0.85x (?)**
Data.init.Sequence.809B.Count0                           257.625     301.714    +17.1%               **0.85x** 
EqualSubstringString                                     19.03       22.267     +17.0%               **0.85x (?)**
Data.init.Sequence.809B.Count0.I                         257.625     301.0      +16.8%               **0.86x (?)**
EqualSubstringSubstringGenericEquatable                  19.481      22.759     +16.8%               **0.86x (?)**
LessSubstringSubstringGenericComparable                  19.487      22.763     +16.8%               **0.86x (?)**
Data.append.Sequence.64kB.Count0.RE                      177.0       206.7      +16.8%               **0.86x (?)**
Data.init.Sequence.2049B.Count0.I                        302.0       352.667    +16.8%               **0.86x (?)**
Data.append.Sequence.64kB.Count0.I                       175.455     204.667    +16.6%               **0.86x** 
Data.init.Sequence.2047B.Count0.I                        302.0       352.167    +16.6%               **0.86x** 
Data.init.Sequence.809B.Count0.RE                        259.5       302.429    +16.5%               **0.86x (?)**
Data.append.Sequence.64kB.Count0                         175.5       204.2      +16.4%               **0.86x (?)**
UTF16Decode.initFromCustom.noncont                       371.5       431.4      +16.1%               **0.86x (?)**
Data.append.Sequence.64kB.Count0.RE.I                    177.091     205.25     +15.9%               **0.86x** 
Data.append.Sequence.809B.Count0.RE.I                    237.667     274.75     +15.6%               **0.87x (?)**
Data.append.Sequence.809B.Count0                         235.3       272.0      +15.6%               **0.87x (?)**
SetSymmetricDifferenceInt50                              102.429     118.389    +15.6%               **0.87x (?)**
Data.init.Sequence.809B.Count0.RE.I                      259.667     299.25     +15.2%               **0.87x (?)**
Data.append.Sequence.809B.Count0.I                       235.5       271.0      +15.1%               **0.87x (?)**
FrequenciesUsingReduceInto                               450.0       516.667    +14.8%               **0.87x (?)**
Data.append.Sequence.809B.Count0.RE                      237.778     272.667    +14.7%               **0.87x (?)**
Data.init.Sequence.513B.Count0.I                         261.25      299.0      +14.4%               **0.87x (?)**
Data.init.Sequence.511B.Count0.I                         261.125     297.25     +13.8%               **0.88x** 
Set.isDisjoint.Empty.Int                                 45.217      51.455     +13.8%               **0.88x (?)**
LineSink.bytes.alpha                                     24.813      28.081     +13.2%               **0.88x** 
LazilyFilteredRange                                      2112.727    2376.667   +12.5%               **0.89x (?)**
Set.subtracting.Seq.Box0                                 444.6       500.0      +12.5%               **0.89x (?)**
ConvertFloatingPoint.MockFloat64ToDouble                 11.558      12.962     +12.1%               **0.89x (?)**
ObserverForwarderStruct                                  195.238     217.917    +11.6%               **0.90x (?)**
UTF16Decode.initFromCustom.cont                          362.0       404.0      +11.6%               **0.90x (?)**
MapReduceClass2                                          63.0        69.25      +9.9%                **0.91x (?)**
CxxVecU32.sum.Swift.forInLoop                            67.957      74.545     +9.7%                **0.91x** 
DataCreateSmall                                          1310.526    1434.286   +9.4%                **0.91x** 
CharIndexing_korean_unicodeScalars                       3981.053    4355.556   +9.4%                **0.91x (?)**
ArrayOfGenericPOD2                                       151.143     165.222    +9.3%                **0.91x (?)**
String.replaceSubrange.ArrChar.Small                     20.273      22.135     +9.2%                **0.92x (?)**
Set.subtracting.Seq.Box25                                738.0       799.667    +8.4%                **0.92x (?)**
Combos                                                   131.333     142.3      +8.4%                **0.92x (?)**
CxxVecU32.sum.Swift.reduce                               68.088      73.348     +7.7%                **0.93x (?)**
String.replaceSubrange.Substring.Small                   22.0        23.68      +7.6%                **0.93x (?)**

IMPROVEMENT                                              OLD         NEW        DELTA                RATIO     
StringEqualPointerComparison                             156.0       0.0        -100.0%              **156001.00x**
PrefixAnySequence                                        556.0       38.786     -93.0%               **14.33x**
PrefixAnySeqCRangeIter                                   124.0       19.327     -84.4%               **6.42x** 
PrefixAnySeqCntRange                                     123.4       19.325     -84.3%               **6.39x** 
DropWhileAnySeqCRangeIter                                122.5       19.345     -84.2%               **6.33x** 
DropWhileAnySeqCntRange                                  122.455     19.345     -84.2%               **6.33x** 
ProtocolDispatch2                                        265.25      62.429     -76.5%               **4.25x** 
ParseInt.IntSmall.Decimal                                284.125     81.154     -71.4%               **3.50x** 
ParseInt.IntSmall.UncommonRadix                          333.143     95.304     -71.4%               **3.50x** 
ParseInt.UIntSmall.Binary                                520.0       213.455    -59.0%               **2.44x** 
SumUsingReduceInto                                       940.5       513.5      -45.4%               **1.83x** 
SumUsingReduce                                           940.5       513.5      -45.4%               **1.83x** 
ChaCha                                                   146.462     82.0       -44.0%               **1.79x (?)**
NaiveRRC.init.largeContiguous                            10.8        6.108      -43.4%               **1.77x (?)**
NaiveRRC.append.largeContiguous                          10.806      6.119      -43.4%               **1.77x (?)**
CharIteration_punctuated_unicodeScalars                  657.674     374.359    -43.1%               **1.76x (?)**
Set.subtracting.Seq.Box.Empty                            127.875     74.833     -41.5%               **1.71x (?)**
Set.isDisjoint.Seq.Box.Empty                             62.4        37.446     -40.0%               **1.67x** 
Set.isStrictSubset.Seq.Int.Empty                         87.357      54.563     -37.5%               **1.60x (?)**
Set.isStrictSuperset.Seq.Empty.Int                       87.357      54.563     -37.5%               **1.60x (?)**
Set.subtracting.Seq.Int.Empty                            110.778     70.154     -36.7%               **1.58x (?)**
CharIteration_ascii_unicodeScalars                       2564.138    1629.474   -36.5%               **1.57x (?)**
Set.subtracting.Empty.Box                                13.72       8.73       -36.4%               **1.57x (?)**
CharIteration_tweet_unicodeScalars                       4985.0      3188.0     -36.0%               **1.56x (?)**
NaiveRRC.append.smallContiguousRepeated                  72.559      47.577     -34.4%               **1.53x** 
Set.isSubset.Seq.Int.Empty                               88.9        59.25      -33.4%               **1.50x (?)**
Data.append.Sequence.64kB.Count.RE.I                     31.467      21.043     -33.1%               **1.50x (?)**
SequenceAlgosUnfoldSequence                              340.8       228.125    -33.1%               **1.49x (?)**
Data.append.Sequence.64kB.Count.RE                       31.292      21.063     -32.7%               **1.49x** 
Set.subtracting.Seq.Empty.Int                            104.444     76.417     -26.8%               **1.37x (?)**
Set.subtracting.Seq.Empty.Box                            103.313     76.438     -26.0%               **1.35x (?)**
DataCreateEmpty                                          124.651     93.469     -25.0%               **1.33x (?)**
CharacterPropertiesPrecomputed                           588.824     447.179    -24.1%               **1.32x** 
Set.isStrictSuperset.Seq.Int0                            10.653      8.1        -24.0%               **1.32x (?)**
CharacterLiteralsLarge                                   53.03       40.552     -23.5%               **1.31x** 
Set.subtracting.Empty.Int                                21.514      16.525     -23.2%               **1.30x (?)**
CharIteration_russian_unicodeScalars                     2884.0      2238.71    -22.4%               **1.29x** 
Data.append.Sequence.809B.Count.RE.I                     62.444      49.714     -20.4%               **1.26x (?)**
DataAppendSequence                                       6226.087    4982.353   -20.0%               **1.25x (?)**
Data.append.Sequence.809B.Count.RE                       62.296      49.962     -19.8%               **1.25x (?)**
PrefixWhileArray                                         48.286      38.85      -19.5%               **1.24x (?)**
QueueConcrete                                            449.189     361.667    -19.5%               **1.24x** 
ParseInt.UInt64.Decimal                                  106.261     85.667     -19.4%               **1.24x (?)**
RawBuffer.1000.findFirst                                 3963.0      3204.0     -19.2%               **1.24x (?)**
NopDeinit                                                32800.0     26550.0    -19.1%               **1.24x (?)**
QueueGeneric                                             430.185     349.524    -18.8%               **1.23x** 
PointerArithmetics                                       18716.667   15600.0    -16.7%               **1.20x (?)**
RawBuffer.39.findFirst                                   160.692     134.111    -16.5%               **1.20x (?)**
CharIteration_chinese_unicodeScalars                     2290.667    1916.571   -16.3%               **1.20x (?)**
ArrayAppendLazyMap                                       600.625     508.0      -15.4%               **1.18x (?)**
RawBuffer.7.findFirst                                    40.538      34.292     -15.4%               **1.18x (?)**
RemoveWhereQuadraticString                               168.286     142.6      -15.3%               **1.18x (?)**
CharIteration_korean_unicodeScalars                      3200.0      2713.846   -15.2%               **1.18x** 
Data.init.Sequence.64kB.Count                            36.097      31.071     -13.9%               **1.16x (?)**
Data.init.Sequence.64kB.Count.I                          35.933      31.1       -13.4%               **1.16x (?)**
ObjectiveCBridgeStubToNSStringRef                        92.882      80.391     -13.4%               **1.16x (?)**
UTF8Decode_InitFromCustom_noncontiguous_ascii            469.0       406.4      -13.3%               **1.15x (?)**
PrefixAnySequenceLazy                                    575.0       498.75     -13.3%               **1.15x** 
ParseInt.UInt64.Hex                                      212.778     184.909    -13.1%               **1.15x** 
SetSymmetricDifferenceInt0                               220.667     192.545    -12.7%               **1.15x (?)**
SetExclusiveOr                                           2203.333    1925.455   -12.6%               **1.14x (?)**
Set.isStrictSuperset.Seq.Box0                            16.689      14.647     -12.2%               **1.14x (?)**
PrefixWhileAnySequence                                   215.2       189.273    -12.0%               **1.14x (?)**
PrefixWhileSequence                                      215.3       189.364    -12.0%               **1.14x (?)**
UTF8Decode_InitFromCustom_noncontiguous_ascii_as_ascii   521.0       459.0      -11.9%               **1.14x (?)**
Data.init.Sequence.2047B.Count.I                         61.838      54.63      -11.7%               **1.13x (?)**
Data.init.Sequence.2049B.Count.I                         61.893      54.692     -11.6%               **1.13x (?)**
CharIteration_ascii_unicodeScalars_Backwards             3514.286    3108.0     -11.6%               **1.13x (?)**
CharIteration_tweet_unicodeScalars_Backwards             7000.0      6208.0     -11.3%               **1.13x (?)**
CharacterPropertiesStashed                               461.351     409.667    -11.2%               **1.13x (?)**
CharIteration_utf16_unicodeScalars                       3497.143    3120.0     -10.8%               **1.12x (?)**
BucketSort                                               77.464      69.194     -10.7%               **1.12x** 
DropWhileArray                                           29.138      26.113     -10.4%               **1.12x (?)**
Data.init.Sequence.809B.Count                            52.72       47.571     -9.8%                **1.11x (?)**
UTF8Decode_InitFromCustom_noncontiguous                  209.182     189.1      -9.6%                **1.11x (?)**
Data.init.Sequence.809B.Count.I                          52.75       47.694     -9.6%                **1.11x (?)**
ReversedBidirectional                                    4931.0      4463.0     -9.5%                **1.10x (?)**
CharIteration_punctuatedJapanese_unicodeScalars          611.268     553.636    -9.4%                **1.10x (?)**
FatCompactMap                                            832.0       754.0      -9.4%                **1.10x (?)**
Prims.NonStrongRef.UnownedSafe                           245.714     223.0      -9.2%                **1.10x (?)**
Prims.NonStrongRef.UnownedSafe.Closure                   245.667     223.125    -9.2%                **1.10x (?)**
StringMatch                                              3287.5      3000.0     -8.7%                **1.10x (?)**
NSError                                                  91.563      83.667     -8.6%                **1.09x (?)**
ArrayAppendAscii                                         1653.722    1522.788   -7.9%                **1.09x (?)**
DataSubscriptMedium                                      40.548      37.432     -7.7%                **1.08x (?)**
StringFromLongWholeSubstring                             2.336       2.163      -7.4%                **1.08x (?)**
CharIndexing_tweet_unicodeScalars                        4984.0      4623.529   -7.2%                **1.08x (?)**
AngryPhonebook.ASCII2.Small                              76.323      71.0       -7.0%                **1.07x (?)**
Data.init.Sequence.513B.Count.I                          56.286      52.444     -6.8%                **1.07x (?)**
CharIndexing_ascii_unicodeScalars                        2537.778    2371.034   -6.6%                **1.07x** 

REMOVED                                                  MIN         MAX        MEAN                 MAX_RSS   
CSVParsing.Char                                          105.955     106.136    106.04533333333333   —         
CSVParsing.Scalar                                        217.333     217.833    217.611              —         
CSVParsing.UTF16                                         29.781      31.438     30.575333333333333   —         
CSVParsing.UTF8                                          20.398      20.425     20.407               —         
CSVParsingAlt2                                           584.467     586.667    585.526              —         
CSVParsingAltIndices2                                    495.815     497.241    496.426              —         

------- Code size: -Osize -------

REGRESSION                                         OLD      NEW      DELTA    RATIO  
StrToInt.o                                         4066     5430     +33.5%   **0.75x**
IntegerParsing.o                                   42854    56926    +32.8%   **0.75x**
BufferFill.o                                       5773     6753     +17.0%   **0.85x**
ArrayOfPOD.o                                       1726     1954     +13.2%   **0.88x**
NIOChannelPipeline.o                               2919     3219     +10.3%   **0.91x**
Suffix.o                                           13684    14892    +8.8%    **0.92x**
NaiveRangeReplaceableCollectionConformance.o       7438     7986     +7.4%    **0.93x**
RangeOverlaps.o                                    3891     4071     +4.6%    **0.96x**
StringInterpolation.o                              5210     5426     +4.1%    **0.96x**
UTF16Decode.o                                      13138    13658    +4.0%    **0.96x**
RC4.o                                              2472     2568     +3.9%    **0.96x**
Combos.o                                           3828     3976     +3.9%    **0.96x**
RandomShuffle.o                                    2410     2502     +3.8%    **0.96x**
BitCount.o                                         1066     1106     +3.8%    **0.96x**
StrComplexWalk.o                                   2150     2230     +3.7%    **0.96x**
Phonebook.o                                        6840     7088     +3.6%    **0.97x**
SortArrayInClass.o                                 1792     1852     +3.3%    **0.97x**
RecursiveOwnedParameter.o                          986      1018     +3.2%    **0.97x**
ArrayOfGenericPOD.o                                3841     3953     +2.9%    **0.97x**
ChaCha.o                                           10078    10338    +2.6%    **0.97x**
ObserverClosure.o                                  1824     1864     +2.2%    **0.98x**
DictionaryLiteralTest.o                            550      562      +2.2%    **0.98x**
ObserverPartiallyAppliedMethod.o                   1855     1895     +2.2%    **0.98x**
RangeReplaceableCollectionPlusDefault.o            5451     5567     +2.1%    **0.98x**
FloatingPointConversion.o                          17870    18222    +2.0%    **0.98x**
DictionaryGroup.o                                  8795     8955     +1.8%    **0.98x**
BinaryFloatingPointProperties.o                    3445     3505     +1.7%    **0.98x**
PrimsNonStrongRef.o                                57926    58850    +1.6%    **0.98x**
Hanoi.o                                            2072     2104     +1.5%    **0.98x**
CharacterLiteralsSmall.o                           806      818      +1.5%    **0.99x**
DictTest4.o                                        8640     8760     +1.4%    **0.99x**
CxxSetToCollection.o                               5827     5907     +1.4%    **0.99x**
DictionaryBridgeToObjC.o                           3246     3286     +1.2%    **0.99x**
DictionaryCompactMapValues.o                       12038    12182    +1.2%    **0.99x**
ArrayLiteral.o                                     1718     1738     +1.2%    **0.99x**
DictTest4Legacy.o                                  8950     9046     +1.1%    **0.99x**

IMPROVEMENT                                        OLD      NEW      DELTA    RATIO  
ProtocolDispatch2.o                                1405     1162     -17.3%   **1.21x**
NopDeinit.o                                        3253     2757     -15.2%   **1.18x**
Walsh.o                                            3349     2889     -13.7%   **1.16x**
ObjectiveCBridgingStubs.o                          11406    10062    -11.8%   **1.13x**
DropWhile.o                                        10451    9267     -11.3%   **1.13x**
Exclusivity.o                                      2874     2574     -10.4%   **1.12x**
AngryPhonebook.o                                   6127     5619     -8.3%    **1.09x**
FlattenList.o                                      2642     2434     -7.9%    **1.09x**
IterateData.o                                      1303     1203     -7.7%    **1.08x**
SIMDRandomMask.o                                   3821     3537     -7.4%    **1.08x**
StringEdits.o                                      7488     6988     -6.7%    **1.07x**
Prefix.o                                           11000    10352    -5.9%    **1.06x**
BucketSort.o                                       6217     5853     -5.9%    **1.06x**
DropLast.o                                         13970    13154    -5.8%    **1.06x**
PrefixWhile.o                                      10277    9697     -5.6%    **1.06x**
ClassArrayGetter.o                                 3006     2842     -5.5%    **1.06x**
StringMatch.o                                      3086     2922     -5.3%    **1.06x**
StringDistance.o                                   9323     8839     -5.2%    **1.05x**
BufferFind.o                                       2066     1966     -4.8%    **1.05x**
ArrayRemoveAll.o                                   5928     5652     -4.7%    **1.05x**
ByteSwap.o                                         1066     1018     -4.5%    **1.05x**
TwoSum.o                                           1953     1869     -4.3%    **1.04x**
Array2D.o                                          1913     1833     -4.2%    **1.04x**
StringTests.o                                      5202     4986     -4.2%    **1.04x**
WordCount.o                                        29887    28751    -3.8%    **1.04x**
FindStringNaive.o                                  5069     4897     -3.4%    **1.04x**
SuperChars.o                                       1013     981      -3.2%    **1.03x**
QueueTest.o                                        8723     8455     -3.1%    **1.03x**
ReduceInto.o                                       5961     5785     -3.0%    **1.03x**
CharacterLiteralsLarge.o                           586      570      -2.7%    **1.03x**
Chars.o                                            1054     1026     -2.7%    **1.03x**
Fibonacci.o                                        1166     1138     -2.4%    **1.02x**
DiffingMyers.o                                     5347     5231     -2.2%    **1.02x**
DictOfArraysToArrayOfDicts.o                       15137    14809    -2.2%    **1.02x**
DictionaryCopy.o                                   6376     6240     -2.1%    **1.02x**
Ackermann.o                                        1345     1317     -2.1%    **1.02x**
CharacterProperties.o                              15308    15008    -2.0%    **1.02x**
SortIntPyramids.o                                  6948     6812     -2.0%    **1.02x**
DictTest.o                                         8414     8250     -1.9%    **1.02x**
BinaryFloatingPointConversionFromBinaryInteger.o   20330    19938    -1.9%    **1.02x**
SubstringTest.o                                    13171    12938    -1.8%    **1.02x**
Integrate.o                                        1621     1593     -1.7%    **1.02x**
RemoveWhere.o                                      9676     9516     -1.7%    **1.02x**
FloatingPointParsing.o                             6899     6787     -1.6%    **1.02x**
SetTests.o                                         96479    94915    -1.6%    **1.02x**
NSErrorTest.o                                      1287     1267     -1.6%    **1.02x**
LazyFilter.o                                       5445     5361     -1.5%    **1.02x**
LuhnAlgoLazy.o                                     10029    9877     -1.5%    **1.02x**
LuhnAlgoEager.o                                    10033    9881     -1.5%    **1.02x**
DriverUtils.o                                      108631   107287   -1.2%    **1.01x**
COWTree.o                                          8476     8372     -1.2%    **1.01x**
RGBHistogram.o                                     15481    15305    -1.1%    **1.01x**
TestsUtils.o                                       16924    16756    -1.0%    **1.01x**

####### Testing optimization level -Onone #######
------- Performance (arm64): -Onone -------

REGRESSION                                OLD        NEW        DELTA                RATIO    
LessSubstringSubstringGenericComparable   21.36      24.629     +15.3%               **0.87x (?)**
EqualSubstringSubstringGenericEquatable   21.4       24.63      +15.1%               **0.87x (?)**
LessSubstringSubstring                    22.417     25.731     +14.8%               **0.87x (?)**
EqualSubstringString                      23.042     26.265     +14.0%               **0.88x (?)**
EqualStringSubstring                      22.795     25.867     +13.5%               **0.88x (?)**
EqualSubstringSubstring                   22.391     25.25      +12.8%               **0.89x (?)**
ArrayAppendGenericStructs                 700.0      785.0      +12.1%               **0.89x (?)**
String.replaceSubrange.ArrChar.Small      20.756     22.895     +10.3%               **0.91x**
String.replaceSubrange.Substring.Small    22.75      25.0       +9.9%                **0.91x (?)**
DataAppendArray                           1907.273   2072.222   +8.6%                **0.92x (?)**
ObjectiveCBridgeStubNSDateRefAccess       3059.0     3315.0     +8.4%                **0.92x (?)**
ObjectiveCBridgeStubDateAccess            2293.0     2474.0     +7.9%                **0.93x (?)**

IMPROVEMENT                               OLD        NEW        DELTA                RATIO    
Data.init.Sequence.64kB.Count.I           839.0      757.0      -9.8%                **1.11x (?)**
Data.init.Sequence.64kB.Count             839.0      757.0      -9.8%                **1.11x (?)**
Data.append.Sequence.64kB.Count           839.5      757.667    -9.7%                **1.11x**
Data.append.Sequence.64kB.Count.I         839.5      757.667    -9.7%                **1.11x (?)**
Data.init.Sequence.2047B.Count.I          1321.0     1193.0     -9.7%                **1.11x (?)**
Data.init.Sequence.2049B.Count.I          1322.0     1194.0     -9.7%                **1.11x (?)**
Data.init.Sequence.809B.Count.I           1057.0     956.0      -9.6%                **1.11x (?)**
Data.init.Sequence.809B.Count             1057.0     956.0      -9.6%                **1.11x (?)**
Data.init.Sequence.513B.Count.I           1020.0     924.0      -9.4%                **1.10x (?)**
Data.append.Sequence.809B.Count.I         1069.0     968.5      -9.4%                **1.10x (?)**
Data.init.Sequence.511B.Count.I           1016.0     921.0      -9.4%                **1.10x (?)**
Data.append.Sequence.809B.Count           1067.0     968.0      -9.3%                **1.10x (?)**
Data.init.Sequence.64kB.Count0            918.0      835.0      -9.0%                **1.10x (?)**
Data.init.Sequence.64kB.Count0.I          917.0      835.0      -8.9%                **1.10x (?)**
Data.append.Sequence.64kB.Count0.I        918.5      836.5      -8.9%                **1.10x (?)**
Data.append.Sequence.64kB.Count0          918.0      836.5      -8.9%                **1.10x (?)**
Data.init.Sequence.2047B.Count0.I         1469.0     1340.0     -8.8%                **1.10x (?)**
Data.init.Sequence.2049B.Count0.I         1470.0     1342.0     -8.7%                **1.10x (?)**
Data.append.Sequence.809B.Count0.I        1165.0     1065.0     -8.6%                **1.09x (?)**
Data.append.Sequence.809B.Count0          1164.5     1066.0     -8.5%                **1.09x (?)**
Data.init.Sequence.809B.Count0.I          1188.0     1088.0     -8.4%                **1.09x (?)**
Data.init.Sequence.809B.Count0            1188.0     1088.0     -8.4%                **1.09x (?)**
Data.init.Sequence.511B.Count0.I          1151.5     1056.0     -8.3%                **1.09x (?)**
Data.init.Sequence.513B.Count0.I          1154.0     1059.0     -8.2%                **1.09x (?)**
RawBuffer.7.findLast                      1150.5     1061.0     -7.8%                **1.08x (?)**

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.

1 participant