1. 14 4月, 2021 14 次提交
  2. 13 4月, 2021 26 次提交
    • A
      Enable MacCatalyst tests in System.Runtime.Extensions.Tests (#51169) · 597186e8
      Alexander Köplinger 提交于
      We now have the necessary support in the runtime and arcade.
      597186e8
    • D
    • T
      [debugger][mono][icordbg] Implement minimal version of dbgshim to start an... · 82e8d0e8
      Thays Grazia 提交于
      [debugger][mono][icordbg] Implement minimal version of dbgshim to start an application on desktop (#50505)
      
      * Running debugger tests on windows using mono runtime
      
      * Coreclr Debugger Tests are running on windows
      
      * Removing wrong comments
      
      * Update src/mono/dlls/dbgshim/dbgshim.cpp
      Co-authored-by: NAleksey Kliger (λgeek) <akliger@gmail.com>
      
      * Changing what was suggested by @lambdageek
      
      * Fix running tests on Mac
      
      * Fix windows compilation removing unused messages
      
      * Fix merge
      
      * Fix compilation on other platforms then amd64
      
      * Fix copy files when does not generate dbgshim and mscordbi
      
      * Ignore  when mscodbig and dbgshim is not found
      
      * Fix copy files when they don't exist
      
      * Update src/mono/mono/mini/debugger-protocol.c
      Co-authored-by: NAleksey Kliger (λgeek) <akliger@gmail.com>
      Co-authored-by: NAleksey Kliger (λgeek) <akliger@gmail.com>
      82e8d0e8
    • A
      [design] Mono runtime components (#49913) · 03ea0528
      Aleksey Kliger (λgeek) 提交于
      * [design] MonoVM Runtime Components
      
      * Add details about writing a new component
      
      * Update design doc to reflect latest changes in the prototype
      03ea0528
    • F
      Return iOS version in Environment.OSVersion on Mac Catalyst (#50990) · 5d0817a2
      Filip Navara 提交于
      * Return iOS version in Environment.OSVersion on Mac Catalyst.
      Implement OperatingSystem.IsMacCatalyst and OperatingSystem.IsMacCatalystVersionAtLeast.
      
      * Address feedback
      
      * Ensure NSThread is in multi-threaded mode before using autorelease pool
      5d0817a2
    • M
      Separate GetResourceString method with defaultString value. (#51073) · 5a3da7d9
      Marek Safar 提交于
      It's not used in Release build and it injects ununsed null value to every callsite
      5a3da7d9
    • P
      Fix card mark stealing issue (#51104) · b1f7ca4c
      Peter Sollich 提交于
      Fix issue with card marking stealing where getting a new chunk caused the "card" variable to go backwards. This caused an extra call to card_transition, which in turn caused cards to be cleared that should be set. The ultimate result is memory corruption.
      
      Here are the conditions that cause the bug to surface:
      - an object containing pointers that straddles a 2 MB boundary
      - the objects contains just value types (i.e. no pointers) for at least 256 bytes after the 2 MB boundary
      - there is a generation-crossing pointer afterwards in the same object
      - but that is the only generation-crossing pointer in that 256 byte range
      
      The bug comes about because of the following sequence of events:
      - in mark_through_cards_for_segments, we scan an object at the end of a 2 MB chunk
      - we encounter a pointer location that is already outside of that chunk (it belongs to card 2 in the next chunk)
      - we call card_transition, which advances the card to the card of the pointer location (i.e., to card 2 in the next chunk)
      - we realize that we need to get a new chunk
      - when we get the chunk, we set the card to card 0 in the chunk
      - we return to mark_through_cards_for_segments
      - as the next chunk is adjacent to the current one, we continue processing the current object
      - when we encounter the next pointer location in the object, we trigger a card_transition again
      - this will erroneously not clear cards 0 and 1 because we think it there is a cross-gen pointer
      - it will also reset the cross-gen generation pointer counter
      - thus, if there are no other cross-generation pointers in the 256 bytes described by card 2, card 2 will be erroneously cleared
      - having cards cleared erroneously ultimately leads to heap corruption
      
      The fix simply makes sure the "card" variable doesn't go backwards in find_next_chunk.
      
      It fixes the issue because it avoids the double card_transition.
      
      It is safe because during iteration of a segment, the "card" variable must always increase. When we switch to another segment, it may decrease, but that is fine because in this case it will be re-initialized by the logic in mark_through_cards_segments.
      b1f7ca4c
    • C
      dc7571c6
    • S
      Fix JITEEInterface::IsValueClass to return false for pointers. (#50749) · 5a2df345
      Sergey Andreenko 提交于
      * lets VM return `isValueClass=false` for pointers.
      
      * fix assert and add a comment.
      
      * fix diffs.
      
      * fix crossgen2 part.
      
      * Update JITEEVersionIdentifier.
      5a2df345
    • S
      Delete `JitDoOldStructRetyping` artifacts. (#51092) · f9fcb8b0
      Sergey Andreenko 提交于
      * Delete `JitDoOldStructRetyping`.
      
      * delete unnecessary spilling in `fgUpdateInlineReturnExpressionPlaceHolder`.
      f9fcb8b0
    • A
      Fix the buffering bug that blocks SDK (#51151) · 4f3fd1a9
      Adam Sitnik 提交于
      * add a failing test that mimcs the SDK bug
      
      * fix the buffering bug
      4f3fd1a9
    • E
      d2e983cd
    • B
      Generalize loop inversion (#50982) · 4b6ac1bf
      Bruce Forstall 提交于
      * Generalize loop inversion
      
      Starting with an experimental branch from @AndyAyersMS,
      generalize the loop inversion `optInvertWhileLoop` code
      to consider duplicating an entire conditional block, not
      just a conditional block that contains exactly one JTRUE
      tree. Since the JTRUE itself wasn't considered before in
      the costing, bump up the maximum cost allowed by 2 to account
      for that. (Note that there is a lot of room here for tuning
      the cost/benefit analysis.)
      
      Additionally, the code already bumped the allowed cost if the
      condition tree contained calls to a shared static helper. Add
      another boost if the tree contains array.Length expressions,
      which are likely to be CSE'ed.
      
      Loop inversion by itself doesn't buy much, but our downstream
      phases, like natural loop recognition, loop hoisting, and loop
      cloning, depend on an inverted loop structure with a zero trip
      test.
      
      There are many diffs, typically size regressions because we
      are duplicating code. Some notable cases:
      1. BenchI Puzzle. This was a motivating example, from #6569.
      It ends up with multiple new CSEs and BDN shows a 24% run-time
      improvement.
      2. RegexRedux_5 and ReverseComplement_1 also report faster
      3. On the contrary, FannkuchRedux_5 reports 23% slower. It appears
      we create fewer CSEs and end up with a couple more instructions
      inside some tight loops.
      4. Other things typically seen in diffs: (a) removed null and
      bounds checks, (b) additional CSEs, (c) loop alignment kicks in.
      
      The loop matching at the stage inversion runs is lexical and very
      simplistic, as it is before natural loop recognition. As a result,
      for some loops, like multiple-condition `while` loops (e.g.,
      `while (--digits >= 0 || value != 0)` in
      `System.Number:UInt32ToDecChars`), the inversion ends up creating
      some pretty weird flow. (That's actually not new to this change.)
      
      I added a `COMPlus_JitDoLoopInversion` config to allow turning
      off the phase to do experiments.
      
      Here are the diffs for SPMI on the benchmarks:
      ```
      
      Summary of Code Size diffs:
      (Lower is better)
      
      Total bytes of base: 306240
      Total bytes of diff: 306022
      Total bytes of delta: -218 (-0.07% of base)
          diff is an improvement.
      ```
      <details>
      
      <summary>Detail diffs</summary>
      
      ```
      
      Top file regressions (bytes):
               204 : 18210.dasm (13.98% of base)
               123 : 17149.dasm (3.84% of base)
               115 : 12617.dasm (1.95% of base)
               106 : 19256.dasm (5.92% of base)
               105 : 8717.dasm (8.19% of base)
                94 : 5445.dasm (9.49% of base)
                85 : 16452.dasm (1.48% of base)
                82 : 19234.dasm (12.01% of base)
                76 : 4626.dasm (20.05% of base)
                64 : 18620.dasm (6.97% of base)
                52 : 19202.dasm (16.20% of base)
                50 : 19210.dasm (3.15% of base)
                48 : 25971.dasm (0.66% of base)
                46 : 18490.dasm (6.05% of base)
                46 : 19131.dasm (8.44% of base)
                36 : 17812.dasm (1.84% of base)
                36 : 10409.dasm (4.20% of base)
                36 : 15922.dasm (17.48% of base)
                35 : 17997.dasm (11.18% of base)
                34 : 14621.dasm (4.82% of base)
      
      Top file improvements (bytes):
              -557 : 18190.dasm (-19.94% of base)
              -525 : 18412.dasm (-12.80% of base)
              -260 : 18400.dasm (-19.89% of base)
              -202 : 17991.dasm (-16.67% of base)
              -201 : 20540.dasm (-18.91% of base)
              -200 : 18417.dasm (-9.96% of base)
              -159 : 17736.dasm (-7.87% of base)
              -128 : 18326.dasm (-7.15% of base)
               -90 : 18182.dasm (-4.71% of base)
               -67 : 18177.dasm (-3.94% of base)
               -59 : 18359.dasm (-5.13% of base)
               -53 : 20672.dasm (-8.02% of base)
               -53 : 18280.dasm (-10.77% of base)
               -45 : 18575.dasm (-8.08% of base)
               -42 : 16930.dasm (-7.89% of base)
               -40 : 17935.dasm (-4.77% of base)
               -38 : 17814.dasm (-2.11% of base)
               -38 : 18458.dasm (-4.87% of base)
               -36 : 18222.dasm (-3.07% of base)
               -36 : 18440.dasm (-6.75% of base)
      
      376 total files with Code Size differences (153 improved, 223 regressed), 5 unchanged.
      
      Top method regressions (bytes):
               204 (13.98% of base) : 18210.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeAcyclicInterfaces(Roslyn.Utilities.ConsList`1[[Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
               123 ( 3.84% of base) : 17149.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.LanguageParser:ParseNamespaceBody(byref,byref,byref,ushort):this
               115 ( 1.95% of base) : 12617.dasm - Utf8Json.Formatters.DictionaryFormatterBase`5[Int32,__Canon,__Canon,Enumerator,__Canon][System.Int32,System.__Canon,System.__Canon,System.Collections.Generic.Dictionary`2+Enumerator[System.Int32,System.__Canon],System.__Canon]:Serialize(byref,System.__Canon,Utf8Json.IJsonFormatterResolver):this
               106 ( 5.92% of base) : 19256.dasm - <Microsoft-Cci-ITypeDefinition-GetExplicitImplementationOverrides>d__31:MoveNext():bool:this
               105 ( 8.19% of base) : 8717.dasm - System.String:SplitWithPostProcessing(System.ReadOnlySpan`1[Int32],System.ReadOnlySpan`1[Int32],int,int,int):System.String[]:this
                94 ( 9.49% of base) : 5445.dasm - System.Uri:CreateUriInfo(long):this
                85 ( 1.48% of base) : 16452.dasm - DynamicClass:_DynamicMethod9(System.IO.TextReader,int):MicroBenchmarks.Serializers.MyEventsListerViewModel
                82 (12.01% of base) : 19234.dasm - <GetTopLevelTypesCore>d__53:MoveNext():bool:this
                76 (20.05% of base) : 4626.dasm - System.Collections.Generic.PriorityQueue`2[__Canon,__Canon][System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[__Canon,__Canon],int):this
                64 ( 6.97% of base) : 18620.dasm - Microsoft.CodeAnalysis.CSharp.Binder:BindSimpleBinaryOperator(Microsoft.CodeAnalysis.CSharp.Syntax.BinaryExpressionSyntax,Microsoft.CodeAnalysis.DiagnosticBag):Microsoft.CodeAnalysis.CSharp.BoundExpression:this
                52 (16.20% of base) : 19202.dasm - <GetAssemblyReferencesFromAddedModules>d__36:MoveNext():bool:this
                50 ( 3.15% of base) : 19210.dasm - <GetTopLevelTypes>d__23[__Canon,__Canon,__Canon,__Canon,__Canon,__Canon,__Canon,__Canon,__Canon][System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon,System.__Canon]:MoveNext():bool:this
                48 ( 0.66% of base) : 25971.dasm - DynamicClass:_DynamicMethod1(System.IO.TextReader,int):MicroBenchmarks.Serializers.CollectionsOfPrimitives
                46 ( 6.05% of base) : 18490.dasm - Microsoft.CodeAnalysis.CSharp.ClsComplianceChecker:VisitAssembly(Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol):this
                46 ( 8.44% of base) : 19131.dasm - <AddedModulesResourceNames>d__200:MoveNext():bool:this
                36 ( 1.84% of base) : 17812.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol:MakeNameToMembersMap(Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]:this
                36 ( 4.20% of base) : 10409.dasm - System.Net.Security.SslStream:FillHandshakeBufferAsync(System.Net.Security.AsyncReadWriteAdapter,int):System.Threading.Tasks.ValueTask`1[Int32]:this
                36 (17.48% of base) : 15922.dasm - System.Number:DecimalToNumber(byref,byref)
                35 (11.18% of base) : 17997.dasm - <CreateNestedTypes>d__126:MoveNext():bool:this
                34 ( 4.82% of base) : 14621.dasm - BenchmarksGame.KNucleotide_1:Bench(System.IO.Stream,BenchmarksGame.NucleotideHelpers,bool):bool
      
      Top method improvements (bytes):
              -557 (-19.94% of base) : 18190.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeDeclaredBases(Roslyn.Utilities.ConsList`1[[Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.DiagnosticBag):System.Tuple`2[[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]:this
              -525 (-12.80% of base) : 18412.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ComputeInterfaceImplementations(Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken):System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedExplicitImplementationForwardingMethod, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
              -260 (-19.89% of base) : 18400.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.OverriddenOrHiddenMembersHelpers:FindOverriddenOrHiddenMembersInType(Microsoft.CodeAnalysis.CSharp.Symbol,bool,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref,byref,byref)
              -202 (-16.67% of base) : 17991.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetRuntimeMember(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref,Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol):Microsoft.CodeAnalysis.CSharp.Symbol
              -201 (-18.91% of base) : 20540.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:GetDeclaredMember(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,Microsoft.CodeAnalysis.Text.TextSpan,System.String):Microsoft.CodeAnalysis.CSharp.Symbol:this
              -200 (-9.96% of base) : 18417.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckMemberNameConflicts(Microsoft.CodeAnalysis.DiagnosticBag):this
              -159 (-7.87% of base) : 17736.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetDiagnostics(int,bool,Microsoft.CodeAnalysis.DiagnosticBag,System.Threading.CancellationToken):this
              -128 (-7.15% of base) : 18326.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:MakeTypeMembers(Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]:this
               -90 (-4.71% of base) : 18182.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:PostDecodeWellKnownAttributes(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Syntax.AttributeSyntax, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.DiagnosticBag,short,Microsoft.CodeAnalysis.WellKnownAttributeData):this
               -67 (-3.94% of base) : 18177.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this
               -59 (-5.13% of base) : 18359.dasm - Microsoft.CodeAnalysis.CSharp.Binder:ValidateParameterNameConflicts(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.TypeParameterSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.DiagnosticBag):this
               -53 (-8.02% of base) : 20672.dasm - Microsoft.CodeAnalysis.CSharp.Imports:LookupSymbolInUsings(System.Collections.Immutable.ImmutableArray`1[NamespaceOrTypeAndUsingDirective],Microsoft.CodeAnalysis.CSharp.Binder,Microsoft.CodeAnalysis.CSharp.LookupResult,System.String,int,Roslyn.Utilities.ConsList`1[[Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],int,bool,byref)
               -53 (-10.77% of base) : 18280.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:GetSourceTypeMember(System.String,int,ushort,Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode):Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:this
               -45 (-8.08% of base) : 18575.dasm - Microsoft.CodeAnalysis.CSharp.ExecutableCodeBinder:ValidateIteratorMethods(Microsoft.CodeAnalysis.DiagnosticBag):this
               -42 (-7.89% of base) : 16930.dasm - V8.Crypto.BigInteger:fromByteArray(System.Byte[]):this
               -40 (-4.77% of base) : 17935.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol:LookupMetadataType(byref):Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:this
               -38 (-2.11% of base) : 17814.dasm - Microsoft.CodeAnalysis.CSharp.MergedNamespaceDeclaration:MakeChildren():System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.MergedNamespaceOrTypeDeclaration, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]:this
               -38 (-4.87% of base) : 18458.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:ForceComplete(Microsoft.CodeAnalysis.SourceLocation,System.Threading.CancellationToken):this
               -36 (-3.07% of base) : 18222.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:MakeAllMembers(Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Generic.Dictionary`2[[System.String, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]:this
               -36 (-6.75% of base) : 18440.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckTypeParameterNameConflicts(Microsoft.CodeAnalysis.DiagnosticBag):this
      
      Top method regressions (percentages):
                17 (36.17% of base) : 22943.dasm - System.Collections.IndexerSetReverse`1[Int32][System.Int32]:Array():System.Int32[]:this
                17 (36.17% of base) : 24496.dasm - System.Collections.IndexerSetReverse`1[__Canon][System.__Canon]:Array():System.__Canon[]:this
                18 (27.27% of base) : 13842.dasm - System.Collections.IterateFor`1[__Canon][System.__Canon]:Get(System.Collections.Generic.IList`1[__Canon]):System.__Canon:this
                15 (26.79% of base) : 13055.dasm - System.Number:UInt32ToDecChars(long,int,int):long
                15 (25.86% of base) : 975.dasm - System.Number:UInt32ToDecChars(long,int,int):long
                16 (25.81% of base) : 20092.dasm - System.Collections.IndexerSet`1[__Canon][System.__Canon]:Set(System.Collections.Generic.IList`1[__Canon]):System.Collections.Generic.IList`1[__Canon]:this
                22 (25.58% of base) : 9613.dasm - System.Xml.XmlLoader:LoadDocSequence(System.Xml.XmlDocument):this
                18 (25.35% of base) : 11926.dasm - EMFloatClass:normalize(InternalFPF)
                14 (22.95% of base) : 25097.dasm - V8.Richards.Packet:addTo(V8.Richards.Packet):V8.Richards.Packet:this
                16 (21.92% of base) : 4954.dasm - System.IO.Compression.DeflateStream:WriteDeflaterOutput():this
                10 (20.41% of base) : 27331.dasm - System.Collections.IterateFor`1[Int32][System.Int32]:ImmutableList():int:this
                10 (20.41% of base) : 9944.dasm - System.Collections.IterateFor`1[Int32][System.Int32]:ImmutableSortedSet():int:this
                76 (20.05% of base) : 4626.dasm - System.Collections.Generic.PriorityQueue`2[__Canon,__Canon][System.__Canon,System.__Canon]:MoveDownCustomComparer(System.ValueTuple`2[__Canon,__Canon],int):this
                10 (20.00% of base) : 14834.dasm - System.Collections.IterateFor`1[__Canon][System.__Canon]:ImmutableList():System.__Canon:this
                10 (20.00% of base) : 15485.dasm - System.Collections.IterateFor`1[__Canon][System.__Canon]:ImmutableSortedSet():System.__Canon:this
                24 (19.05% of base) : 8484.dasm - System.Collections.IterateForEach`1[__Canon][System.__Canon]:ImmutableArray():System.__Canon:this
                17 (18.09% of base) : 11992.dasm - Newtonsoft.Json.Utilities.DateTimeUtils:CopyIntToCharArray(System.Char[],int,int,int)
                 9 (18.00% of base) : 19831.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:CalculateTableStreamHeaderSize():int:this
                16 (17.98% of base) : 4541.dasm - System.Collections.IndexerSetReverse`1[__Canon][System.__Canon]:Span():System.__Canon:this
                36 (17.48% of base) : 15922.dasm - System.Number:DecimalToNumber(byref,byref)
      
      Top method improvements (percentages):
               -19 (-28.79% of base) : 18465.dasm - Microsoft.CodeAnalysis.CSharp.MergedTypeDeclaration:get_AnyMemberHasAttributes():bool:this
              -557 (-19.94% of base) : 18190.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol:MakeDeclaredBases(Roslyn.Utilities.ConsList`1[[Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.DiagnosticBag):System.Tuple`2[[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]], System.Collections.Immutable, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]]:this
              -260 (-19.89% of base) : 18400.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.OverriddenOrHiddenMembersHelpers:FindOverriddenOrHiddenMembersInType(Microsoft.CodeAnalysis.CSharp.Symbol,bool,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref,byref,byref)
               -30 (-19.35% of base) : 19588.dasm - Microsoft.Cci.MetadataWriter:MayUseSmallExceptionHeaders(System.Collections.Immutable.ImmutableArray`1[[Microsoft.Cci.ExceptionHandlerRegion, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):bool
              -201 (-18.91% of base) : 20540.dasm - Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel:GetDeclaredMember(Microsoft.CodeAnalysis.CSharp.Symbols.NamespaceOrTypeSymbol,Microsoft.CodeAnalysis.Text.TextSpan,System.String):Microsoft.CodeAnalysis.CSharp.Symbol:this
               -11 (-16.92% of base) : 18912.dasm - Microsoft.CodeAnalysis.CSharp.CodeGen.CodeGenerator:EmitStatements(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.BoundStatement, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
               -11 (-16.92% of base) : 18800.dasm - Microsoft.CodeAnalysis.CSharp.DataFlowPass:DeclareVariables(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
               -11 (-16.92% of base) : 18812.dasm - Microsoft.CodeAnalysis.CSharp.DataFlowPass:ReportUnusedVariables(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.LocalFunctionSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
              -202 (-16.67% of base) : 17991.dasm - Microsoft.CodeAnalysis.CSharp.CSharpCompilation:GetRuntimeMember(Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol,byref,Microsoft.CodeAnalysis.RuntimeMembers.SignatureComparer`5[[Microsoft.CodeAnalysis.CSharp.Symbols.MethodSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.CSharp.Symbols.FieldSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.CSharp.Symbols.PropertySymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35],[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]],Microsoft.CodeAnalysis.CSharp.Symbols.AssemblySymbol):Microsoft.CodeAnalysis.CSharp.Symbol
               -11 (-16.18% of base) : 20764.dasm - Microsoft.CodeAnalysis.CSharp.AbstractRegionDataFlowPass:MakeSlots(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
               -11 (-15.94% of base) : 19532.dasm - Microsoft.Cci.MetadataVisitor:Visit(System.Collections.Immutable.ImmutableArray`1[[Microsoft.Cci.IParameterDefinition, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
               -11 (-15.71% of base) : 19548.dasm - Microsoft.Cci.MetadataVisitor:Visit(System.Collections.Immutable.ImmutableArray`1[[Microsoft.Cci.ILocalDefinition, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
               -11 (-15.71% of base) : 19553.dasm - Microsoft.Cci.MetadataVisitor:Visit(System.Collections.Immutable.ImmutableArray`1[[Microsoft.Cci.ExceptionHandlerRegion, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
               -11 (-15.71% of base) : 19457.dasm - Microsoft.Cci.MetadataVisitor:Visit(System.Collections.Immutable.ImmutableArray`1[[Microsoft.Cci.IParameterTypeInformation, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
               -11 (-15.71% of base) : 19459.dasm - Microsoft.Cci.MetadataVisitor:Visit(System.Collections.Immutable.ImmutableArray`1[[Microsoft.Cci.ICustomModifier, Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
               -11 (-15.49% of base) : 18811.dasm - Microsoft.CodeAnalysis.CSharp.DataFlowPass:ReportUnusedVariables(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.LocalSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
               -11 (-15.07% of base) : 18797.dasm - Microsoft.CodeAnalysis.CSharp.DataFlowPass:EnterParameters(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.Symbols.ParameterSymbol, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
               -11 (-15.07% of base) : 20750.dasm - Microsoft.CodeAnalysis.CSharp.PreciseAbstractFlowPass`1[LocalState][Microsoft.CodeAnalysis.CSharp.DataFlowPass+LocalState]:VisitMultipleLocalDeclarations(Microsoft.CodeAnalysis.CSharp.BoundMultipleLocalDeclarations):Microsoft.CodeAnalysis.CSharp.BoundNode:this
               -11 (-15.07% of base) : 18768.dasm - Microsoft.CodeAnalysis.CSharp.PreciseAbstractFlowPass`1[LocalState][Microsoft.CodeAnalysis.CSharp.ControlFlowPass+LocalState]:VisitStatements(System.Collections.Immutable.ImmutableArray`1[[Microsoft.CodeAnalysis.CSharp.BoundStatement, Microsoft.CodeAnalysis.CSharp, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]):this
               -12 (-13.64% of base) : 18415.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol:CheckMemberNamesDistinctFromType(Microsoft.CodeAnalysis.DiagnosticBag):this
      
      376 total methods with Code Size differences (153 improved, 223 regressed), 5 unchanged.
      
      ```
      
      </details>
      
      --------------------------------------------------------------------------------
      
      Additionally, I removed some dead "optimization enabling" code.
      
      * Code review feedback: fix one condition
      4b6ac1bf
    • B
      Improve flowgraph xml/dot dumping (#51082) · 2dc08d31
      Bruce Forstall 提交于
      * Improve flowgraph xml/dot dumping
      
      1. Decouple it from JitDump
      2. Add some documentation, including a useful link to https://sketchviz.com/
      3. Fix DUMP_FLOWGRAPHS Release build
      4. Fix some xml dumping issues
      5. Replace custom function pattern parsing with CONFIG_METHODSET ".contains" function
      6. Make dot format the default (instead of xml)
      
      Fixes #43712
      
      * Code review feedback: use `getCalledCount`
      2dc08d31
    • L
      Avoid intermediate allocations in MethodInfo/ConstructorInfo.Invoke (#50814) · 880903b2
      Levi Broderick 提交于
      * Avoid temporary array allocations in reflection
      
      * Add nullability annotations
      
      * Move some lazy property getters out of the hot path
      
      * More factoring out common fast paths
      
      * Comment cleanup - no functional changes
      
      * Moved some function blocks around for clarity - no functional changes
      
      * Pass span into native stack byref
      
      * Knock max stackalloced ctor parameters back to 4
      
      * Move all CheckConsistency logic inline
      880903b2
    • A
      Fix race in ComWrappers test (#51153) · ada0d61b
      Aaron Robinson 提交于
      Since the finalizer thread runs async with the test, we need to
      atomically decrement the static instance counter.
      ada0d61b
    • S
      927b1c54
    • J
      Add support in comhost tooling to embed type libraries. (#50986) · 91c16faf
      Jeremy Koritzinsky 提交于
      * Add support in comhost tooling to embed type libraries.
      
      Sdk work will still be needed to enable developers to embed tlbs in their comhosts.
      
      * Cleanup.
      
      * PR feedback. Update validation to throw specific exception types for specific errors so the SDK can accurately report errors to the user.
      91c16faf
    • B
      Fix some memory attributions (#51065) · 36e3cef1
      Bruce Forstall 提交于
      * Fix some memory attributions
      
      This doesn't change the memory stats greatly, overall.
      
      * Formatting
      36e3cef1
    • R
    • Z
    • B
      Fix EMITTER_STATS build (#51063) · c5d16e0f
      Bruce Forstall 提交于
      c5d16e0f
    • B
      Remove CSE ifdefs (#51043) · 4e6a7193
      Bruce Forstall 提交于
      * Remove CSE ifdefs
      
      `FEATURE_ANYCSE` and `FEATURE_VALNUM_CSE` are always enabled, and
      are expected to remain so, so remove the ifdefs.
      
      * Formatting
      4e6a7193
    • A
      Fix minimum iOS/tvOS version and add iOS 14 to RID graph (#50167) · 81e867ea
      Alexander Köplinger 提交于
      As specified in https://github.com/dotnet/runtime/issues/44654 the minimum iOS/tvOS version we're targeting for .NET 6 is iOS 10.
      Bump the versions used in our build scripts and RID graph to that and also add iOS 14.
      81e867ea
    • M
    • M