MihuBot / runtime-utils

0 stars 0 forks source link

[JitDiff X64] [MichalPetryka] Propagate delegate loads during inlining #783

Open MihuBot opened 2 weeks ago

MihuBot commented 2 weeks ago

Job completed in 20 minutes 19 seconds. https://github.com/dotnet/runtime/pull/109715

Diffs

Diffs ``` Found 279 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 39655417 Total bytes of diff: 39673707 Total bytes of delta: 18290 (0.05 % of base) Total relative delta: 50.93 diff is a regression. relative diff is a regression. Top file regressions (bytes): 13438 : System.Collections.Immutable.dasm (0.64 % of base) 3463 : System.Reflection.MetadataLoadContext.dasm (1.58 % of base) 702 : System.Net.Requests.dasm (0.48 % of base) 325 : System.Threading.Tasks.Dataflow.dasm (0.03 % of base) 233 : System.Data.Common.dasm (0.01 % of base) 222 : System.Net.HttpListener.dasm (0.21 % of base) 103 : System.Net.Mail.dasm (0.06 % of base) 93 : Microsoft.Extensions.Configuration.dasm (0.57 % of base) 37 : System.Private.CoreLib.dasm (0.00 % of base) Top file improvements (bytes): -323 : System.Linq.Parallel.dasm (-0.01 % of base) -3 : System.Net.NetworkInformation.dasm (-0.01 % of base) 11 total files with Code Size differences (2 improved, 9 regressed), 248 unchanged. Top method regressions (bytes): 469 (29.57 % of base) : System.Net.Requests.dasm - System.Net.FtpControlStream:QueueOrCreateDataConection(System.Net.CommandStream+PipelineEntry,System.Net.ResponseDescription,byref):int:this (FullOpts) 369 (64.17 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaResolver:ResolveAndSpecializeType(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.TypeLoading.Ecma.EcmaModule,byref):System.Reflection.TypeLoading.RoInstantiationProviderType (FullOpts) 285 (171.69 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoModule:GetUniqueArrayType(System.Reflection.TypeLoading.RoType):System.Reflection.TypeLoading.RoArrayType:this (FullOpts) 266 (173.86 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoModule:GetUniqueByRefType(System.Reflection.TypeLoading.RoType):System.Reflection.TypeLoading.RoByRefType:this (FullOpts) 252 (39.87 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[short,System.Nullable`1[int]](byref,short,System.Func`2[short,System.Nullable`1[int]],System.Func`3[short,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 252 (39.94 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[ubyte,System.Nullable`1[int]](byref,ubyte,System.Func`2[ubyte,System.Nullable`1[int]],System.Func`3[ubyte,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 249 (43.30 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[short,System.Nullable`1[int]](byref,short,System.Nullable`1[int],System.Func`3[short,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 249 (43.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[ubyte,System.Nullable`1[int]](byref,ubyte,System.Nullable`1[int],System.Func`3[ubyte,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 242 (38.66 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[long,System.Nullable`1[int]](byref,long,System.Func`2[long,System.Nullable`1[int]],System.Func`3[long,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 242 (42.53 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[long,System.Nullable`1[int]](byref,long,System.Nullable`1[int],System.Func`3[long,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 234 (615.79 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoModule:GetUniqueConstructedGenericType(System.Reflection.TypeLoading.RoDefinitionType,System.Reflection.TypeLoading.RoType[]):System.Reflection.TypeLoading.RoConstructedGenericType:this (FullOpts) 233 (134.68 % of base) : System.Data.Common.dasm - System.Data.Common.DataStorage:ImplementsInterfaces(int,System.Type,byref,byref,byref,byref,byref) (FullOpts) 233 (16.63 % of base) : System.Net.Requests.dasm - System.Net.FtpControlStream:QueueOrCreateFtpDataStream(byref):int:this (FullOpts) 231 (37.20 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[int,System.Nullable`1[int]](byref,int,System.Func`2[int,System.Nullable`1[int]],System.Func`3[int,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 231 (40.88 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[int,System.Nullable`1[int]](byref,int,System.Nullable`1[int],System.Func`3[int,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 231 (39.42 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryRemove[System.Numerics.Vector`1[float],System.Nullable`1[int]](byref,System.Numerics.Vector`1[float],byref):ubyte (FullOpts) 224 (17.91 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:GetOrAdd[System.Numerics.Vector`1[float],System.Nullable`1[int]](byref,System.Numerics.Vector`1[float],System.Func`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 219 (128.07 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaModule:GetGenericInstantiation(System.Reflection.TypeLoading.RoType,System.Collections.Immutable.ImmutableArray`1[System.Reflection.TypeLoading.RoType]):System.Reflection.TypeLoading.RoType:this (FullOpts) 217 (34.17 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[double,System.Nullable`1[int]](byref,double,System.Func`2[double,System.Nullable`1[int]],System.Func`3[double,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 217 (37.61 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[double,System.Nullable`1[int]](byref,double,System.Nullable`1[int],System.Func`3[double,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 217 (32.10 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[System.Nullable`1[int],System.Nullable`1[int]](byref,System.Nullable`1[int],System.Func`2[System.Nullable`1[int],System.Nullable`1[int]],System.Func`3[System.Nullable`1[int],System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 217 (35.00 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[System.Nullable`1[int],System.Nullable`1[int]](byref,System.Nullable`1[int],System.Nullable`1[int],System.Func`3[System.Nullable`1[int],System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 214 (18.29 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[System.Numerics.Vector`1[float],System.Nullable`1[int]](byref,System.Numerics.Vector`1[float],System.Func`2[System.Numerics.Vector`1[float],System.Nullable`1[int]],System.Func`3[System.Numerics.Vector`1[float],System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 214 (19.33 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[System.Numerics.Vector`1[float],System.Nullable`1[int]](byref,System.Numerics.Vector`1[float],System.Nullable`1[int],System.Func`3[System.Numerics.Vector`1[float],System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 208 (141.50 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoModule:GetUniqueArrayType(System.Reflection.TypeLoading.RoType,int):System.Reflection.TypeLoading.RoArrayType:this (FullOpts) 204 (21.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:GetOrAdd[System.Numerics.Vector`1[float],System.Nullable`1[int]](byref,System.Numerics.Vector`1[float],System.Nullable`1[int]):System.Nullable`1[int] (FullOpts) 204 (21.63 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryAdd[System.Numerics.Vector`1[float],System.Nullable`1[int]](byref,System.Numerics.Vector`1[float],System.Nullable`1[int]):ubyte (FullOpts) 200 (41.84 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:GetOrAdd[double,System.Nullable`1[int]](byref,double,System.Nullable`1[int]):System.Nullable`1[int] (FullOpts) 200 (41.41 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:GetOrAdd[long,System.Nullable`1[int]](byref,long,System.Nullable`1[int]):System.Nullable`1[int] (FullOpts) 200 (38.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:GetOrAdd[System.Nullable`1[int],System.Nullable`1[int]](byref,System.Nullable`1[int],System.Nullable`1[int]):System.Nullable`1[int] (FullOpts) 200 (19.01 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoDefinitionType:MakeGenericType(System.Type[]):System.Type:this (FullOpts) 197 (39.01 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryUpdate[double,System.Nullable`1[int]](byref,double,System.Nullable`1[int],System.Nullable`1[int]):ubyte (FullOpts) 197 (38.48 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryUpdate[long,System.Nullable`1[int]](byref,long,System.Nullable`1[int],System.Nullable`1[int]):ubyte (FullOpts) 197 (35.69 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryUpdate[System.Nullable`1[int],System.Nullable`1[int]](byref,System.Nullable`1[int],System.Nullable`1[int],System.Nullable`1[int]):ubyte (FullOpts) 194 (19.60 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryUpdate[System.Numerics.Vector`1[float],System.Nullable`1[int]](byref,System.Numerics.Vector`1[float],System.Nullable`1[int],System.Nullable`1[int]):ubyte (FullOpts) 192 (37.72 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryUpdate[int,System.Nullable`1[int]](byref,int,System.Nullable`1[int],System.Nullable`1[int]):ubyte (FullOpts) 192 (37.28 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryUpdate[short,System.Nullable`1[int]](byref,short,System.Nullable`1[int],System.Nullable`1[int]):ubyte (FullOpts) 192 (37.28 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryUpdate[ubyte,System.Nullable`1[int]](byref,ubyte,System.Nullable`1[int],System.Nullable`1[int]):ubyte (FullOpts) 187 (16.58 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaDefinitionType:GetNestedTypeCore(System.ReadOnlySpan`1[ubyte]):System.Reflection.TypeLoading.RoDefinitionType:this (FullOpts) 185 (39.11 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryAdd[double,System.Nullable`1[int]](byref,double,System.Nullable`1[int]):ubyte (FullOpts) 185 (38.70 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryAdd[long,System.Nullable`1[int]](byref,long,System.Nullable`1[int]):ubyte (FullOpts) 185 (35.71 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryAdd[System.Nullable`1[int],System.Nullable`1[int]](byref,System.Nullable`1[int],System.Nullable`1[int]):ubyte (FullOpts) 185 (35.44 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryRemove[System.Nullable`1[int],System.Nullable`1[int]](byref,System.Nullable`1[int],byref):ubyte (FullOpts) 183 (38.12 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:GetOrAdd[int,System.Nullable`1[int]](byref,int,System.Nullable`1[int]):System.Nullable`1[int] (FullOpts) 183 (37.65 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:GetOrAdd[short,System.Nullable`1[int]](byref,short,System.Nullable`1[int]):System.Nullable`1[int] (FullOpts) 183 (37.65 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:GetOrAdd[ubyte,System.Nullable`1[int]](byref,ubyte,System.Nullable`1[int]):System.Nullable`1[int] (FullOpts) 180 (32.73 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaModule:EnsureTypeDefTableFullyFilled():this (FullOpts) 177 (37.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryAdd[int,System.Nullable`1[int]](byref,int,System.Nullable`1[int]):ubyte (FullOpts) 177 (36.80 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryAdd[short,System.Nullable`1[int]](byref,short,System.Nullable`1[int]):ubyte (FullOpts) 177 (36.80 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryAdd[ubyte,System.Nullable`1[int]](byref,ubyte,System.Nullable`1[int]):ubyte (FullOpts) 174 (32.89 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaModule:GetMethodImpl(System.String,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this (FullOpts) 158 (20.47 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaModule:GetField(System.String,int):System.Reflection.FieldInfo:this (FullOpts) 149 (10.64 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaResolver:ResolveTypeDefRefOrSpec(System.Reflection.Metadata.EntityHandle,System.Reflection.TypeLoading.Ecma.EcmaModule,byref):System.Reflection.TypeLoading.RoType (FullOpts) 148 (37.95 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaModule:GetModuleType():System.Reflection.TypeLoading.Ecma.EcmaDefinitionType:this (FullOpts) 143 (17.79 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaDefinitionType:ComputeDeclaringType():System.Reflection.TypeLoading.RoType:this (FullOpts) 143 (22.31 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaGenericTypeParameterType:ComputeDeclaringType():System.Reflection.TypeLoading.RoType:this (FullOpts) 143 (32.43 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaResolver:ResolveTypeDef(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.TypeLoading.Ecma.EcmaModule):System.Reflection.TypeLoading.Ecma.EcmaDefinitionType (FullOpts) 139 (20.62 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[System.Nullable`1[int]](System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]],System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]):System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]] (FullOpts) 139 (20.62 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[System.Numerics.Vector`1[float]](System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]],System.Collections.Generic.IEqualityComparer`1[System.Numerics.Vector`1[float]]):System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]] (FullOpts) 133 (19.73 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[double](System.Collections.Generic.IEnumerable`1[double],System.Collections.Generic.IEqualityComparer`1[double]):System.Collections.Immutable.ImmutableHashSet`1[double] (FullOpts) 133 (19.73 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[int](System.Collections.Generic.IEnumerable`1[int],System.Collections.Generic.IEqualityComparer`1[int]):System.Collections.Immutable.ImmutableHashSet`1[int] (FullOpts) 133 (19.73 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[long](System.Collections.Generic.IEnumerable`1[long],System.Collections.Generic.IEqualityComparer`1[long]):System.Collections.Immutable.ImmutableHashSet`1[long] (FullOpts) 133 (19.73 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[short](System.Collections.Generic.IEnumerable`1[short],System.Collections.Generic.IEqualityComparer`1[short]):System.Collections.Immutable.ImmutableHashSet`1[short] (FullOpts) 133 (19.73 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[ubyte](System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Generic.IEqualityComparer`1[ubyte]):System.Collections.Immutable.ImmutableHashSet`1[ubyte] (FullOpts) 113 (32.10 % of base) : System.Net.HttpListener.dasm - System.Net.ListenerAsyncResult:Complete(System.Exception):this (FullOpts) 109 (7.47 % of base) : System.Net.HttpListener.dasm - System.Net.ListenerAsyncResult:Complete(System.Net.HttpListenerContext,ubyte):this (FullOpts) 102 (12.41 % of base) : System.Net.Mail.dasm - System.Net.Mail.CheckCommand:BeginSend(System.Net.Mail.SmtpConnection,System.AsyncCallback,System.Object):System.IAsyncResult (FullOpts) 97 (2.81 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.Nullable`1[int]]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.Nullable`1[int]] (FullOpts) 93 (9.89 % of base) : Microsoft.Extensions.Configuration.dasm - Microsoft.Extensions.Configuration.ConfigurationProvider:GetChildKeys(System.Collections.Generic.IEnumerable`1[System.String],System.String):System.Collections.Generic.IEnumerable`1[System.String]:this (FullOpts) 91 (2.41 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[System.Numerics.Vector`1[float]]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[System.Numerics.Vector`1[float]] (FullOpts) 80 (15.36 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[System.Nullable`1[int]](System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]],System.Nullable`1[int][]):System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]] (FullOpts) 80 (16.88 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[System.Nullable`1[int]](System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]],System.ReadOnlySpan`1[System.Nullable`1[int]]):System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]] (FullOpts) 80 (15.36 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[System.Numerics.Vector`1[float]](System.Collections.Generic.IEqualityComparer`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float][]):System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]] (FullOpts) 80 (16.88 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[System.Numerics.Vector`1[float]](System.Collections.Generic.IEqualityComparer`1[System.Numerics.Vector`1[float]],System.ReadOnlySpan`1[System.Numerics.Vector`1[float]]):System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]] (FullOpts) 77 (14.78 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[double](System.Collections.Generic.IEqualityComparer`1[double],double[]):System.Collections.Immutable.ImmutableHashSet`1[double] (FullOpts) 77 (16.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[double](System.Collections.Generic.IEqualityComparer`1[double],System.ReadOnlySpan`1[double]):System.Collections.Immutable.ImmutableHashSet`1[double] (FullOpts) 77 (14.78 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[int](System.Collections.Generic.IEqualityComparer`1[int],int[]):System.Collections.Immutable.ImmutableHashSet`1[int] (FullOpts) 77 (16.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[int](System.Collections.Generic.IEqualityComparer`1[int],System.ReadOnlySpan`1[int]):System.Collections.Immutable.ImmutableHashSet`1[int] (FullOpts) 77 (14.78 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[long](System.Collections.Generic.IEqualityComparer`1[long],long[]):System.Collections.Immutable.ImmutableHashSet`1[long] (FullOpts) 77 (16.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[long](System.Collections.Generic.IEqualityComparer`1[long],System.ReadOnlySpan`1[long]):System.Collections.Immutable.ImmutableHashSet`1[long] (FullOpts) 77 (14.78 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[short](System.Collections.Generic.IEqualityComparer`1[short],short[]):System.Collections.Immutable.ImmutableHashSet`1[short] (FullOpts) 77 (16.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[short](System.Collections.Generic.IEqualityComparer`1[short],System.ReadOnlySpan`1[short]):System.Collections.Immutable.ImmutableHashSet`1[short] (FullOpts) 77 (17.30 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[System.Numerics.Vector`1[float]](System.Collections.Generic.IEqualityComparer`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float]):System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]] (FullOpts) 77 (16.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[ubyte](System.Collections.Generic.IEqualityComparer`1[ubyte],System.ReadOnlySpan`1[ubyte]):System.Collections.Immutable.ImmutableHashSet`1[ubyte] (FullOpts) 77 (14.78 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[ubyte](System.Collections.Generic.IEqualityComparer`1[ubyte],ubyte[]):System.Collections.Immutable.ImmutableHashSet`1[ubyte] (FullOpts) 74 (36.27 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.Nullable`1[int]]],System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]],int):this (FullOpts) 74 (36.27 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.Numerics.Vector`1[float]]],System.Collections.Generic.IEqualityComparer`1[System.Numerics.Vector`1[float]],int):this (FullOpts) 73 (20.00 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:CreateRange[System.Nullable`1[int]](System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]],System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]]):System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]] (FullOpts) 73 (20.00 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:CreateRange[System.Numerics.Vector`1[float]](System.Collections.Generic.IEqualityComparer`1[System.Numerics.Vector`1[float]],System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]]):System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]] (FullOpts) 72 (13.85 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaResolver:ResolveAssembly(System.Reflection.Metadata.AssemblyReferenceHandle,System.Reflection.TypeLoading.Ecma.EcmaModule):System.Reflection.TypeLoading.RoAssembly (FullOpts) 72 (13.61 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaResolver:TryResolveAssembly(System.Reflection.Metadata.AssemblyReferenceHandle,System.Reflection.TypeLoading.Ecma.EcmaModule,byref):System.Reflection.TypeLoading.RoAssembly (FullOpts) 71 (34.80 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[double]],System.Collections.Generic.IEqualityComparer`1[double],int):this (FullOpts) 71 (34.80 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[int]],System.Collections.Generic.IEqualityComparer`1[int],int):this (FullOpts) 71 (34.80 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[long]],System.Collections.Generic.IEqualityComparer`1[long],int):this (FullOpts) 71 (34.80 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[short]],System.Collections.Generic.IEqualityComparer`1[short],int):this (FullOpts) 71 (34.80 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[ubyte]],System.Collections.Generic.IEqualityComparer`1[ubyte],int):this (FullOpts) 70 (19.28 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[int](System.Collections.Generic.IEqualityComparer`1[int],int):System.Collections.Immutable.ImmutableHashSet`1[int] (FullOpts) 70 (19.18 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[long](System.Collections.Generic.IEqualityComparer`1[long],long):System.Collections.Immutable.ImmutableHashSet`1[long] (FullOpts) 70 (19.18 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[short](System.Collections.Generic.IEqualityComparer`1[short],short):System.Collections.Immutable.ImmutableHashSet`1[short] (FullOpts) 70 (19.18 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[ubyte](System.Collections.Generic.IEqualityComparer`1[ubyte],ubyte):System.Collections.Immutable.ImmutableHashSet`1[ubyte] (FullOpts) Top method improvements (bytes): -256 (-7.45 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[double],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[double]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[double] (FullOpts) -254 (-7.46 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[short],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[short]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[short] (FullOpts) -252 (-7.41 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[ubyte]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[ubyte] (FullOpts) -251 (-7.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[long],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[long]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[long] (FullOpts) -250 (-7.36 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[int],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[int]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[int] (FullOpts) -21 (-3.95 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.AwaitTaskContinuation:System.Threading.IThreadPoolWorkItem.Execute():this (FullOpts) -18 (-1.91 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) -15 (-1.97 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[double,System.Nullable`1[int]]:b__0():this (FullOpts) -15 (-1.97 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[int,System.Nullable`1[int]]:b__0():this (FullOpts) -15 (-1.97 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[long,System.Nullable`1[int]]:b__0():this (FullOpts) -15 (-1.97 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[short,System.Nullable`1[int]]:b__0():this (FullOpts) -15 (-1.97 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[System.Nullable`1[int],System.Nullable`1[int]]:b__0():this (FullOpts) -15 (-1.97 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:b__0():this (FullOpts) -15 (-1.97 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[ubyte,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.43 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[double,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.43 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[int,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.43 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[long,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.43 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[short,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.43 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[System.Nullable`1[int],System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.43 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.43 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[ubyte,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.79 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[double,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.79 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[int,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.79 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[long,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.79 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[short,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.67 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.79 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[System.Nullable`1[int],System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.79 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.79 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[ubyte,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.41 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) -9 (-1.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[double](System.Collections.Generic.IEnumerable`1[double]):System.Collections.Immutable.ImmutableHashSet`1[double] (FullOpts) -9 (-1.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[int](System.Collections.Generic.IEnumerable`1[int]):System.Collections.Immutable.ImmutableHashSet`1[int] (FullOpts) -9 (-1.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[long](System.Collections.Generic.IEnumerable`1[long]):System.Collections.Immutable.ImmutableHashSet`1[long] (FullOpts) -9 (-1.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[short](System.Collections.Generic.IEnumerable`1[short]):System.Collections.Immutable.ImmutableHashSet`1[short] (FullOpts) -9 (-1.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[ubyte](System.Collections.Generic.IEnumerable`1[ubyte]):System.Collections.Immutable.ImmutableHashSet`1[ubyte] (FullOpts) -8 (-0.76 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock:ReceiveCoreByLinking[double](System.Threading.Tasks.Dataflow.ISourceBlock`1[double],int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[double] (FullOpts) -8 (-0.76 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock:ReceiveCoreByLinking[int](System.Threading.Tasks.Dataflow.ISourceBlock`1[int],int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int] (FullOpts) -8 (-0.76 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock:ReceiveCoreByLinking[long](System.Threading.Tasks.Dataflow.ISourceBlock`1[long],int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[long] (FullOpts) -8 (-0.76 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock:ReceiveCoreByLinking[short](System.Threading.Tasks.Dataflow.ISourceBlock`1[short],int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[short] (FullOpts) -8 (-0.70 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock:ReceiveCoreByLinking[System.__Canon](System.Threading.Tasks.Dataflow.ISourceBlock`1[System.__Canon],int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.__Canon] (FullOpts) -8 (-0.76 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock:ReceiveCoreByLinking[System.Nullable`1[int]](System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Nullable`1[int]],int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Nullable`1[int]] (FullOpts) -8 (-0.76 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock:ReceiveCoreByLinking[System.Numerics.Vector`1[float]](System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Numerics.Vector`1[float]],int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Numerics.Vector`1[float]] (FullOpts) -8 (-0.76 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock:ReceiveCoreByLinking[ubyte](System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte],int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[ubyte] (FullOpts) -6 (-1.17 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[System.Nullable`1[int]](System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]]):System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]] (FullOpts) -6 (-1.17 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[System.Numerics.Vector`1[float]](System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]]):System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]] (FullOpts) -6 (-1.45 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[double]:.ctor(System.Threading.Tasks.Dataflow.ITargetBlock`1[double],double,System.Threading.CancellationToken):this (FullOpts) -6 (-1.46 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[System.Numerics.Vector`1[float]]:.ctor(System.Threading.Tasks.Dataflow.ITargetBlock`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float],System.Threading.CancellationToken):this (FullOpts) -4 (-1.07 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.QueryTask:RunAsynchronously(System.Threading.Tasks.TaskScheduler):System.Threading.Tasks.Task:this (FullOpts) -4 (-1.07 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.QueryTask:RunSynchronously(System.Threading.Tasks.TaskScheduler):System.Threading.Tasks.Task:this (FullOpts) -3 (-0.42 % of base) : System.Net.NetworkInformation.dasm - System.Net.NetworkInformation.NetworkChange:add_NetworkAvailabilityChanged(System.Net.NetworkInformation.NetworkAvailabilityChangedEventHandler) (FullOpts) -3 (-0.74 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[int]:.ctor(System.Threading.Tasks.Dataflow.ITargetBlock`1[int],int,System.Threading.CancellationToken):this (FullOpts) -3 (-0.74 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[long]:.ctor(System.Threading.Tasks.Dataflow.ITargetBlock`1[long],long,System.Threading.CancellationToken):this (FullOpts) -3 (-0.74 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[short]:.ctor(System.Threading.Tasks.Dataflow.ITargetBlock`1[short],short,System.Threading.CancellationToken):this (FullOpts) -3 (-0.74 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[System.Nullable`1[int]]:.ctor(System.Threading.Tasks.Dataflow.ITargetBlock`1[System.Nullable`1[int]],System.Nullable`1[int],System.Threading.CancellationToken):this (FullOpts) -3 (-0.74 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[ubyte]:.ctor(System.Threading.Tasks.Dataflow.ITargetBlock`1[ubyte],ubyte,System.Threading.CancellationToken):this (FullOpts) Top method regressions (percentages): 234 (615.79 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoModule:GetUniqueConstructedGenericType(System.Reflection.TypeLoading.RoDefinitionType,System.Reflection.TypeLoading.RoType[]):System.Reflection.TypeLoading.RoConstructedGenericType:this (FullOpts) 266 (173.86 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoModule:GetUniqueByRefType(System.Reflection.TypeLoading.RoType):System.Reflection.TypeLoading.RoByRefType:this (FullOpts) 285 (171.69 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoModule:GetUniqueArrayType(System.Reflection.TypeLoading.RoType):System.Reflection.TypeLoading.RoArrayType:this (FullOpts) 208 (141.50 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoModule:GetUniqueArrayType(System.Reflection.TypeLoading.RoType,int):System.Reflection.TypeLoading.RoArrayType:this (FullOpts) 233 (134.68 % of base) : System.Data.Common.dasm - System.Data.Common.DataStorage:ImplementsInterfaces(int,System.Type,byref,byref,byref,byref,byref) (FullOpts) 219 (128.07 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaModule:GetGenericInstantiation(System.Reflection.TypeLoading.RoType,System.Collections.Immutable.ImmutableArray`1[System.Reflection.TypeLoading.RoType]):System.Reflection.TypeLoading.RoType:this (FullOpts) 369 (64.17 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaResolver:ResolveAndSpecializeType(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.TypeLoading.Ecma.EcmaModule,byref):System.Reflection.TypeLoading.RoInstantiationProviderType (FullOpts) 249 (43.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[ubyte,System.Nullable`1[int]](byref,ubyte,System.Nullable`1[int],System.Func`3[ubyte,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 249 (43.30 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[short,System.Nullable`1[int]](byref,short,System.Nullable`1[int],System.Func`3[short,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 242 (42.53 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[long,System.Nullable`1[int]](byref,long,System.Nullable`1[int],System.Func`3[long,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 200 (41.84 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:GetOrAdd[double,System.Nullable`1[int]](byref,double,System.Nullable`1[int]):System.Nullable`1[int] (FullOpts) 200 (41.41 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:GetOrAdd[long,System.Nullable`1[int]](byref,long,System.Nullable`1[int]):System.Nullable`1[int] (FullOpts) 231 (40.88 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[int,System.Nullable`1[int]](byref,int,System.Nullable`1[int],System.Func`3[int,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 252 (39.94 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[ubyte,System.Nullable`1[int]](byref,ubyte,System.Func`2[ubyte,System.Nullable`1[int]],System.Func`3[ubyte,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 252 (39.87 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[short,System.Nullable`1[int]](byref,short,System.Func`2[short,System.Nullable`1[int]],System.Func`3[short,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 231 (39.42 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryRemove[System.Numerics.Vector`1[float],System.Nullable`1[int]](byref,System.Numerics.Vector`1[float],byref):ubyte (FullOpts) 66 (39.29 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]):this (FullOpts) 66 (39.29 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]]:.ctor(System.Collections.Generic.IEqualityComparer`1[System.Numerics.Vector`1[float]]):this (FullOpts) 185 (39.11 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryAdd[double,System.Nullable`1[int]](byref,double,System.Nullable`1[int]):ubyte (FullOpts) 197 (39.01 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryUpdate[double,System.Nullable`1[int]](byref,double,System.Nullable`1[int],System.Nullable`1[int]):ubyte (FullOpts) 185 (38.70 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryAdd[long,System.Nullable`1[int]](byref,long,System.Nullable`1[int]):ubyte (FullOpts) 242 (38.66 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[long,System.Nullable`1[int]](byref,long,System.Func`2[long,System.Nullable`1[int]],System.Func`3[long,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 197 (38.48 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryUpdate[long,System.Nullable`1[int]](byref,long,System.Nullable`1[int],System.Nullable`1[int]):ubyte (FullOpts) 200 (38.24 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:GetOrAdd[System.Nullable`1[int],System.Nullable`1[int]](byref,System.Nullable`1[int],System.Nullable`1[int]):System.Nullable`1[int] (FullOpts) 183 (38.12 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:GetOrAdd[int,System.Nullable`1[int]](byref,int,System.Nullable`1[int]):System.Nullable`1[int] (FullOpts) 148 (37.95 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaModule:GetModuleType():System.Reflection.TypeLoading.Ecma.EcmaDefinitionType:this (FullOpts) 192 (37.72 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryUpdate[int,System.Nullable`1[int]](byref,int,System.Nullable`1[int],System.Nullable`1[int]):ubyte (FullOpts) 183 (37.65 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:GetOrAdd[short,System.Nullable`1[int]](byref,short,System.Nullable`1[int]):System.Nullable`1[int] (FullOpts) 183 (37.65 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:GetOrAdd[ubyte,System.Nullable`1[int]](byref,ubyte,System.Nullable`1[int]):System.Nullable`1[int] (FullOpts) 217 (37.61 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[double,System.Nullable`1[int]](byref,double,System.Nullable`1[int],System.Func`3[double,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 63 (37.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:.ctor(System.Collections.Generic.IEqualityComparer`1[double]):this (FullOpts) 63 (37.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:.ctor(System.Collections.Generic.IEqualityComparer`1[int]):this (FullOpts) 63 (37.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:.ctor(System.Collections.Generic.IEqualityComparer`1[long]):this (FullOpts) 63 (37.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:.ctor(System.Collections.Generic.IEqualityComparer`1[short]):this (FullOpts) 63 (37.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:.ctor(System.Collections.Generic.IEqualityComparer`1[ubyte]):this (FullOpts) 192 (37.28 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryUpdate[short,System.Nullable`1[int]](byref,short,System.Nullable`1[int],System.Nullable`1[int]):ubyte (FullOpts) 192 (37.28 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryUpdate[ubyte,System.Nullable`1[int]](byref,ubyte,System.Nullable`1[int],System.Nullable`1[int]):ubyte (FullOpts) 177 (37.26 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryAdd[int,System.Nullable`1[int]](byref,int,System.Nullable`1[int]):ubyte (FullOpts) 231 (37.20 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[int,System.Nullable`1[int]](byref,int,System.Func`2[int,System.Nullable`1[int]],System.Func`3[int,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 177 (36.80 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryAdd[short,System.Nullable`1[int]](byref,short,System.Nullable`1[int]):ubyte (FullOpts) 177 (36.80 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryAdd[ubyte,System.Nullable`1[int]](byref,ubyte,System.Nullable`1[int]):ubyte (FullOpts) 74 (36.27 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.Nullable`1[int]]],System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]],int):this (FullOpts) 74 (36.27 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[System.Numerics.Vector`1[float]]],System.Collections.Generic.IEqualityComparer`1[System.Numerics.Vector`1[float]],int):this (FullOpts) 185 (35.71 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryAdd[System.Nullable`1[int],System.Nullable`1[int]](byref,System.Nullable`1[int],System.Nullable`1[int]):ubyte (FullOpts) 197 (35.69 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryUpdate[System.Nullable`1[int],System.Nullable`1[int]](byref,System.Nullable`1[int],System.Nullable`1[int],System.Nullable`1[int]):ubyte (FullOpts) 185 (35.44 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryRemove[System.Nullable`1[int],System.Nullable`1[int]](byref,System.Nullable`1[int],byref):ubyte (FullOpts) 217 (35.00 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[System.Nullable`1[int],System.Nullable`1[int]](byref,System.Nullable`1[int],System.Nullable`1[int],System.Func`3[System.Nullable`1[int],System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 71 (34.80 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[double]],System.Collections.Generic.IEqualityComparer`1[double],int):this (FullOpts) 71 (34.80 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[int]],System.Collections.Generic.IEqualityComparer`1[int],int):this (FullOpts) 71 (34.80 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[long]],System.Collections.Generic.IEqualityComparer`1[long],int):this (FullOpts) 71 (34.80 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[short]],System.Collections.Generic.IEqualityComparer`1[short],int):this (FullOpts) 71 (34.80 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableHashSet`1+HashBucket[ubyte]],System.Collections.Generic.IEqualityComparer`1[ubyte],int):this (FullOpts) 217 (34.17 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[double,System.Nullable`1[int]](byref,double,System.Func`2[double,System.Nullable`1[int]],System.Func`3[double,System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 174 (32.89 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaModule:GetMethodImpl(System.String,int,System.Reflection.Binder,int,System.Type[],System.Reflection.ParameterModifier[]):System.Reflection.MethodInfo:this (FullOpts) 180 (32.73 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaModule:EnsureTypeDefTableFullyFilled():this (FullOpts) 143 (32.43 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaResolver:ResolveTypeDef(System.Reflection.Metadata.TypeDefinitionHandle,System.Reflection.TypeLoading.Ecma.EcmaModule):System.Reflection.TypeLoading.Ecma.EcmaDefinitionType (FullOpts) 113 (32.10 % of base) : System.Net.HttpListener.dasm - System.Net.ListenerAsyncResult:Complete(System.Exception):this (FullOpts) 217 (32.10 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[System.Nullable`1[int],System.Nullable`1[int]](byref,System.Nullable`1[int],System.Func`2[System.Nullable`1[int],System.Nullable`1[int]],System.Func`3[System.Nullable`1[int],System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 60 (30.61 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[double,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[double,System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Comparers[double,System.Nullable`1[int]],int):this (FullOpts) 60 (30.61 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[int,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[int,System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Comparers[int,System.Nullable`1[int]],int):this (FullOpts) 60 (30.61 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[long,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[long,System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Comparers[long,System.Nullable`1[int]],int):this (FullOpts) 60 (30.61 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[short,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[short,System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Comparers[short,System.Nullable`1[int]],int):this (FullOpts) 60 (30.61 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.Nullable`1[int],System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.Nullable`1[int],System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Comparers[System.Nullable`1[int],System.Nullable`1[int]],int):this (FullOpts) 60 (30.61 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[System.Numerics.Vector`1[float],System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Comparers[System.Numerics.Vector`1[float],System.Nullable`1[int]],int):this (FullOpts) 60 (30.61 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableDictionary`2[ubyte,System.Nullable`1[int]]:.ctor(System.Collections.Immutable.SortedInt32KeyNode`1[System.Collections.Immutable.ImmutableDictionary`2+HashBucket[ubyte,System.Nullable`1[int]]],System.Collections.Immutable.ImmutableDictionary`2+Comparers[ubyte,System.Nullable`1[int]],int):this (FullOpts) 469 (29.57 % of base) : System.Net.Requests.dasm - System.Net.FtpControlStream:QueueOrCreateDataConection(System.Net.CommandStream+PipelineEntry,System.Net.ResponseDescription,byref):int:this (FullOpts) 143 (22.31 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaGenericTypeParameterType:ComputeDeclaringType():System.Reflection.TypeLoading.RoType:this (FullOpts) 204 (21.63 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryAdd[System.Numerics.Vector`1[float],System.Nullable`1[int]](byref,System.Numerics.Vector`1[float],System.Nullable`1[int]):ubyte (FullOpts) 204 (21.50 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:GetOrAdd[System.Numerics.Vector`1[float],System.Nullable`1[int]](byref,System.Numerics.Vector`1[float],System.Nullable`1[int]):System.Nullable`1[int] (FullOpts) 139 (20.62 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[System.Nullable`1[int]](System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]],System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]):System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]] (FullOpts) 139 (20.62 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[System.Numerics.Vector`1[float]](System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]],System.Collections.Generic.IEqualityComparer`1[System.Numerics.Vector`1[float]]):System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]] (FullOpts) 158 (20.47 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.Ecma.EcmaModule:GetField(System.String,int):System.Reflection.FieldInfo:this (FullOpts) 69 (20.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]]:WithComparer(System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]):System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]]:this (FullOpts) 69 (20.35 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]]:WithComparer(System.Collections.Generic.IEqualityComparer`1[System.Numerics.Vector`1[float]]):System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]]:this (FullOpts) 73 (20.00 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:CreateRange[System.Nullable`1[int]](System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]],System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]]):System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]] (FullOpts) 73 (20.00 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:CreateRange[System.Numerics.Vector`1[float]](System.Collections.Generic.IEqualityComparer`1[System.Numerics.Vector`1[float]],System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]]):System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]] (FullOpts) 67 (19.88 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[System.Nullable`1[int]](System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]):System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]] (FullOpts) 67 (19.88 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[System.Numerics.Vector`1[float]](System.Collections.Generic.IEqualityComparer`1[System.Numerics.Vector`1[float]]):System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]] (FullOpts) 133 (19.73 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[double](System.Collections.Generic.IEnumerable`1[double],System.Collections.Generic.IEqualityComparer`1[double]):System.Collections.Immutable.ImmutableHashSet`1[double] (FullOpts) 133 (19.73 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[int](System.Collections.Generic.IEnumerable`1[int],System.Collections.Generic.IEqualityComparer`1[int]):System.Collections.Immutable.ImmutableHashSet`1[int] (FullOpts) 133 (19.73 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[long](System.Collections.Generic.IEnumerable`1[long],System.Collections.Generic.IEqualityComparer`1[long]):System.Collections.Immutable.ImmutableHashSet`1[long] (FullOpts) 133 (19.73 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[short](System.Collections.Generic.IEnumerable`1[short],System.Collections.Generic.IEqualityComparer`1[short]):System.Collections.Immutable.ImmutableHashSet`1[short] (FullOpts) 133 (19.73 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[ubyte](System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Generic.IEqualityComparer`1[ubyte]):System.Collections.Immutable.ImmutableHashSet`1[ubyte] (FullOpts) 194 (19.60 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:TryUpdate[System.Numerics.Vector`1[float],System.Nullable`1[int]](byref,System.Numerics.Vector`1[float],System.Nullable`1[int],System.Nullable`1[int]):ubyte (FullOpts) 66 (19.47 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:WithComparer(System.Collections.Generic.IEqualityComparer`1[double]):System.Collections.Immutable.ImmutableHashSet`1[double]:this (FullOpts) 66 (19.47 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:WithComparer(System.Collections.Generic.IEqualityComparer`1[int]):System.Collections.Immutable.ImmutableHashSet`1[int]:this (FullOpts) 66 (19.47 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:WithComparer(System.Collections.Generic.IEqualityComparer`1[long]):System.Collections.Immutable.ImmutableHashSet`1[long]:this (FullOpts) 66 (19.47 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:WithComparer(System.Collections.Generic.IEqualityComparer`1[short]):System.Collections.Immutable.ImmutableHashSet`1[short]:this (FullOpts) 66 (19.47 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:WithComparer(System.Collections.Generic.IEqualityComparer`1[ubyte]):System.Collections.Immutable.ImmutableHashSet`1[ubyte]:this (FullOpts) 214 (19.33 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableInterlocked:AddOrUpdate[System.Numerics.Vector`1[float],System.Nullable`1[int]](byref,System.Numerics.Vector`1[float],System.Nullable`1[int],System.Func`3[System.Numerics.Vector`1[float],System.Nullable`1[int],System.Nullable`1[int]]):System.Nullable`1[int] (FullOpts) 70 (19.28 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[int](System.Collections.Generic.IEqualityComparer`1[int],int):System.Collections.Immutable.ImmutableHashSet`1[int] (FullOpts) 70 (19.18 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[long](System.Collections.Generic.IEqualityComparer`1[long],long):System.Collections.Immutable.ImmutableHashSet`1[long] (FullOpts) 70 (19.18 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[short](System.Collections.Generic.IEqualityComparer`1[short],short):System.Collections.Immutable.ImmutableHashSet`1[short] (FullOpts) 70 (19.18 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:Create[ubyte](System.Collections.Generic.IEqualityComparer`1[ubyte],ubyte):System.Collections.Immutable.ImmutableHashSet`1[ubyte] (FullOpts) 70 (19.18 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:CreateRange[double](System.Collections.Generic.IEqualityComparer`1[double],System.Collections.Generic.IEnumerable`1[double]):System.Collections.Immutable.ImmutableHashSet`1[double] (FullOpts) 70 (19.18 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:CreateRange[int](System.Collections.Generic.IEqualityComparer`1[int],System.Collections.Generic.IEnumerable`1[int]):System.Collections.Immutable.ImmutableHashSet`1[int] (FullOpts) 70 (19.18 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:CreateRange[long](System.Collections.Generic.IEqualityComparer`1[long],System.Collections.Generic.IEnumerable`1[long]):System.Collections.Immutable.ImmutableHashSet`1[long] (FullOpts) 70 (19.18 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:CreateRange[short](System.Collections.Generic.IEqualityComparer`1[short],System.Collections.Generic.IEnumerable`1[short]):System.Collections.Immutable.ImmutableHashSet`1[short] (FullOpts) 70 (19.18 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:CreateRange[ubyte](System.Collections.Generic.IEqualityComparer`1[ubyte],System.Collections.Generic.IEnumerable`1[ubyte]):System.Collections.Immutable.ImmutableHashSet`1[ubyte] (FullOpts) 69 (19.17 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]]:Clear():System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]]:this (FullOpts) Top method improvements (percentages): -254 (-7.46 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[short]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[short],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[short]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[short] (FullOpts) -256 (-7.45 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[double]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[double],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[double]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[double] (FullOpts) -252 (-7.41 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[ubyte]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[ubyte],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[ubyte]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[ubyte] (FullOpts) -251 (-7.38 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[long]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[long],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[long]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[long] (FullOpts) -250 (-7.36 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet`1[int]:SymmetricExcept(System.Collections.Generic.IEnumerable`1[int],System.Collections.Immutable.ImmutableHashSet`1+MutationInput[int]):System.Collections.Immutable.ImmutableHashSet`1+MutationResult[int] (FullOpts) -21 (-3.95 % of base) : System.Private.CoreLib.dasm - System.Threading.Tasks.AwaitTaskContinuation:System.Threading.IThreadPoolWorkItem.Execute():this (FullOpts) -15 (-1.97 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[double,System.Nullable`1[int]]:b__0():this (FullOpts) -15 (-1.97 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[int,System.Nullable`1[int]]:b__0():this (FullOpts) -15 (-1.97 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[long,System.Nullable`1[int]]:b__0():this (FullOpts) -15 (-1.97 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[short,System.Nullable`1[int]]:b__0():this (FullOpts) -15 (-1.97 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[System.Nullable`1[int],System.Nullable`1[int]]:b__0():this (FullOpts) -15 (-1.97 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:b__0():this (FullOpts) -15 (-1.97 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[ubyte,System.Nullable`1[int]]:b__0():this (FullOpts) -18 (-1.91 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.79 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[double,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.79 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[int,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.79 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[long,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.79 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[short,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.79 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[System.Nullable`1[int],System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.79 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.79 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[ubyte,System.Nullable`1[int]]:b__0():this (FullOpts) -9 (-1.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[double](System.Collections.Generic.IEnumerable`1[double]):System.Collections.Immutable.ImmutableHashSet`1[double] (FullOpts) -9 (-1.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[int](System.Collections.Generic.IEnumerable`1[int]):System.Collections.Immutable.ImmutableHashSet`1[int] (FullOpts) -9 (-1.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[long](System.Collections.Generic.IEnumerable`1[long]):System.Collections.Immutable.ImmutableHashSet`1[long] (FullOpts) -9 (-1.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[short](System.Collections.Generic.IEnumerable`1[short]):System.Collections.Immutable.ImmutableHashSet`1[short] (FullOpts) -9 (-1.75 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[ubyte](System.Collections.Generic.IEnumerable`1[ubyte]):System.Collections.Immutable.ImmutableHashSet`1[ubyte] (FullOpts) -12 (-1.67 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass1_0`2[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) -6 (-1.46 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[System.Numerics.Vector`1[float]]:.ctor(System.Threading.Tasks.Dataflow.ITargetBlock`1[System.Numerics.Vector`1[float]],System.Numerics.Vector`1[float],System.Threading.CancellationToken):this (FullOpts) -6 (-1.45 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[double]:.ctor(System.Threading.Tasks.Dataflow.ITargetBlock`1[double],double,System.Threading.CancellationToken):this (FullOpts) -12 (-1.43 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[double,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.43 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[int,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.43 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[long,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.43 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[short,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.43 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[System.Nullable`1[int],System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.43 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[System.Numerics.Vector`1[float],System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.43 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[ubyte,System.Nullable`1[int]]:b__0():this (FullOpts) -12 (-1.41 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) -6 (-1.17 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[System.Nullable`1[int]](System.Collections.Generic.IEnumerable`1[System.Nullable`1[int]]):System.Collections.Immutable.ImmutableHashSet`1[System.Nullable`1[int]] (FullOpts) -6 (-1.17 % of base) : System.Collections.Immutable.dasm - System.Collections.Immutable.ImmutableHashSet:ToImmutableHashSet[System.Numerics.Vector`1[float]](System.Collections.Generic.IEnumerable`1[System.Numerics.Vector`1[float]]):System.Collections.Immutable.ImmutableHashSet`1[System.Numerics.Vector`1[float]] (FullOpts) -4 (-1.07 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.QueryTask:RunAsynchronously(System.Threading.Tasks.TaskScheduler):System.Threading.Tasks.Task:this (FullOpts) -4 (-1.07 % of base) : System.Linq.Parallel.dasm - System.Linq.Parallel.QueryTask:RunSynchronously(System.Threading.Tasks.TaskScheduler):System.Threading.Tasks.Task:this (FullOpts) -8 (-0.76 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock:ReceiveCoreByLinking[double](System.Threading.Tasks.Dataflow.ISourceBlock`1[double],int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[double] (FullOpts) -8 (-0.76 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock:ReceiveCoreByLinking[int](System.Threading.Tasks.Dataflow.ISourceBlock`1[int],int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[int] (FullOpts) -8 (-0.76 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock:ReceiveCoreByLinking[long](System.Threading.Tasks.Dataflow.ISourceBlock`1[long],int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[long] (FullOpts) -8 (-0.76 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock:ReceiveCoreByLinking[short](System.Threading.Tasks.Dataflow.ISourceBlock`1[short],int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[short] (FullOpts) -8 (-0.76 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock:ReceiveCoreByLinking[System.Nullable`1[int]](System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Nullable`1[int]],int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Nullable`1[int]] (FullOpts) -8 (-0.76 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock:ReceiveCoreByLinking[System.Numerics.Vector`1[float]](System.Threading.Tasks.Dataflow.ISourceBlock`1[System.Numerics.Vector`1[float]],int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.Numerics.Vector`1[float]] (FullOpts) -8 (-0.76 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock:ReceiveCoreByLinking[ubyte](System.Threading.Tasks.Dataflow.ISourceBlock`1[ubyte],int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[ubyte] (FullOpts) -3 (-0.74 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[int]:.ctor(System.Threading.Tasks.Dataflow.ITargetBlock`1[int],int,System.Threading.CancellationToken):this (FullOpts) -3 (-0.74 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[long]:.ctor(System.Threading.Tasks.Dataflow.ITargetBlock`1[long],long,System.Threading.CancellationToken):this (FullOpts) -3 (-0.74 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[System.Nullable`1[int]]:.ctor(System.Threading.Tasks.Dataflow.ITargetBlock`1[System.Nullable`1[int]],System.Nullable`1[int],System.Threading.CancellationToken):this (FullOpts) -3 (-0.74 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[ubyte]:.ctor(System.Threading.Tasks.Dataflow.ITargetBlock`1[ubyte],ubyte,System.Threading.CancellationToken):this (FullOpts) -3 (-0.74 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock+SendAsyncSource`1[short]:.ctor(System.Threading.Tasks.Dataflow.ITargetBlock`1[short],short,System.Threading.CancellationToken):this (FullOpts) -8 (-0.70 % of base) : System.Threading.Tasks.Dataflow.dasm - System.Threading.Tasks.Dataflow.DataflowBlock:ReceiveCoreByLinking[System.__Canon](System.Threading.Tasks.Dataflow.ISourceBlock`1[System.__Canon],int,System.Threading.CancellationToken):System.Threading.Tasks.Task`1[System.__Canon] (FullOpts) -3 (-0.42 % of base) : System.Net.NetworkInformation.dasm - System.Net.NetworkInformation.NetworkChange:add_NetworkAvailabilityChanged(System.Net.NetworkInformation.NetworkAvailabilityChangedEventHandler) (FullOpts) 228 total methods with Code Size differences (55 improved, 173 regressed), 232594 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 2 weeks ago

Top method regressions

469 (29.57 % of base) - System.Net.FtpControlStream:QueueOrCreateDataConection(System.Net.CommandStream+PipelineEntry,System.Net.ResponseDescription,byref):int:this ```diff ; Assembly listing for method System.Net.FtpControlStream:QueueOrCreateDataConection(System.Net.CommandStream+PipelineEntry,System.Net.ResponseDescription,byref):int:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data -; 0 inlinees with PGO data; 18 single block inlinees; 10 inlinees without PGO data +; 0 inlinees with PGO data; 34 single block inlinees; 20 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T00] ( 28, 15 ) ref -> rbx this class-hnd single-def -; V01 arg1 [V01,T03] ( 3, 2.50) ref -> rsi class-hnd single-def -; V02 arg2 [V02,T01] ( 6, 4 ) ref -> r15 class-hnd single-def -; V03 arg3 [V03,T02] ( 5, 4 ) byref -> r14 single-def -;* V04 loc0 [V04,T44] ( 0, 0 ) ubyte -> zero-ref -; V05 loc1 [V05,T24] ( 3, 1.50) int -> r13 -; V06 loc2 [V06,T25] ( 4, 2 ) int -> r14 +; V01 arg1 [V01,T07] ( 3, 2.50) ref -> rsi class-hnd single-def +; V02 arg2 [V02,T03] ( 6, 4 ) ref -> r15 class-hnd single-def +; V03 arg3 [V03,T04] ( 5, 4 ) byref -> r14 single-def +;* V04 loc0 [V04,T52] ( 0, 0 ) ubyte -> zero-ref +; V05 loc1 [V05,T32] ( 3, 1.50) int -> r13 +; V06 loc2 [V06,T33] ( 4, 2 ) int -> r14 ;* V07 loc3 [V07 ] ( 0, 0 ) ref -> zero-ref class-hnd exact -; V08 loc4 [V08,T36] ( 3, 1.50) ref -> r15 class-hnd single-def -; V09 loc5 [V09,T43] ( 3, 0.50) ref -> [rbp-0x30] class-hnd EH-live single-def +; V08 loc4 [V08,T42] ( 3, 1.50) ref -> r15 class-hnd single-def +; V09 loc5 [V09,T51] ( 3, 0.50) ref -> [rbp-0x30] class-hnd EH-live single-def ;# V10 OutArgs [V10 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V11 tmp1 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd "non-inline candidate call" -; V12 tmp2 [V12,T46] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" -; V13 tmp3 [V13,T04] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" -; V14 tmp4 [V14,T10] ( 3, 3 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" +; V12 tmp2 [V12,T54] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" +; V13 tmp3 [V13,T08] ( 4, 4 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" +; V14 tmp4 [V14,T18] ( 3, 3 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" ;* V15 tmp5 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" -; V16 tmp6 [V16,T11] ( 3, 3 ) ref -> r14 class-hnd exact single-def "Single-def Box Helper" -; V17 tmp7 [V17,T26] ( 2, 2 ) ref -> rdi class-hnd exact single-def "impImportAndPushBox" +; V16 tmp6 [V16,T19] ( 3, 3 ) ref -> r14 class-hnd exact single-def "Single-def Box Helper" +; V17 tmp7 [V17,T34] ( 2, 2 ) ref -> rdi class-hnd exact single-def "impImportAndPushBox" ;* V18 tmp8 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V19 tmp9 [V19,T08] ( 5, 3 ) ref -> rax single-def "spilling varStr" +; V19 tmp9 [V19,T16] ( 5, 3 ) ref -> rax single-def "spilling varStr" ;* V20 tmp10 [V20 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark" ;* V21 tmp11 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V22 tmp12 [V22,T09] ( 5, 3 ) ref -> rax single-def "spilling varStr" +; V22 tmp12 [V22,T17] ( 5, 3 ) ref -> rax single-def "spilling varStr" ;* V23 tmp13 [V23 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark" -;* V24 tmp14 [V24,T45] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +;* V24 tmp14 [V24,T53] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V25 tmp15 [V25 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V26 tmp16 [V26,T20] ( 4, 2.75) ref -> rdi single-def "spilling varStr" +; V26 tmp16 [V26,T28] ( 4, 2.75) ref -> rdi single-def "spilling varStr" ;* V27 tmp17 [V27 ] ( 0, 0 ) int -> zero-ref "spilling unroll qmark" ;* V28 tmp18 [V28 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* V29 tmp19 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" -; V30 tmp20 [V30,T27] ( 2, 2 ) ref -> r15 class-hnd single-def "Inlining Arg" -; V31 tmp21 [V31,T12] ( 3, 3 ) ref -> rsi class-hnd single-def "Inlining Arg" +; V30 tmp20 [V30,T35] ( 2, 2 ) ref -> r15 class-hnd single-def "Inlining Arg" +; V31 tmp21 [V31,T20] ( 3, 3 ) ref -> rsi class-hnd single-def "Inlining Arg" ;* V32 tmp22 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "NewObj constructor temp" ;* V33 tmp23 [V33 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V34 tmp24 [V34 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V35 tmp25 [V35,T13] ( 3, 3 ) ref -> r14 class-hnd exact single-def "impAppendStmt" -; V36 tmp26 [V36,T28] ( 2, 2 ) ref -> r13 class-hnd exact single-def "non-inline candidate call" +; V35 tmp25 [V35,T21] ( 3, 3 ) ref -> r14 class-hnd exact single-def "impAppendStmt" +; V36 tmp26 [V36,T36] ( 2, 2 ) ref -> r13 class-hnd exact single-def "non-inline candidate call" ;* V37 tmp27 [V37 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" ;* V38 tmp28 [V38 ] ( 0, 0 ) ref -> zero-ref single-def ;* V39 tmp29 [V39 ] ( 0, 0 ) int -> zero-ref ;* V40 tmp30 [V40 ] ( 0, 0 ) ref -> zero-ref single-def ;* V41 tmp31 [V41 ] ( 0, 0 ) ref -> zero-ref single-def -; V42 tmp32 [V42,T29] ( 2, 2 ) ref -> r8 class-hnd exact single-def "Inlining Arg" -; V43 tmp33 [V43,T14] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" -;* V44 tmp34 [V44 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V45 tmp35 [V45,T15] ( 3, 3 ) ref -> r14 class-hnd single-def "Inlining Arg" -;* V46 tmp36 [V46 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V47 tmp37 [V47,T30] ( 2, 2 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" -;* V48 tmp38 [V48 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V49 tmp39 [V49,T16] ( 3, 3 ) ref -> r13 class-hnd exact single-def "impAppendStmt" -; V50 tmp40 [V50,T31] ( 2, 2 ) ref -> r15 class-hnd exact single-def "non-inline candidate call" -;* V51 tmp41 [V51 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" +; V42 tmp32 [V42,T37] ( 2, 2 ) ref -> r8 class-hnd exact single-def "Inlining Arg" +; V43 tmp33 [V43,T22] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" +; V44 tmp34 [V44,T09] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" +; V45 tmp35 [V45,T01] ( 8, 8 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" +;* V46 tmp36 [V46 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "Inline stloc first use temp" +;* V47 tmp37 [V47 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" +; V48 tmp38 [V48,T05] ( 5, 5 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" +;* V49 tmp39 [V49 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" +; V50 tmp40 [V50,T10] ( 4, 4 ) ref -> rbx class-hnd single-def "Inlining Arg" +;* V51 tmp41 [V51 ] ( 0, 0 ) ref -> zero-ref ;* V52 tmp42 [V52 ] ( 0, 0 ) ref -> zero-ref single-def ;* V53 tmp43 [V53 ] ( 0, 0 ) int -> zero-ref -;* V54 tmp44 [V54 ] ( 0, 0 ) ref -> zero-ref single-def -;* V55 tmp45 [V55 ] ( 0, 0 ) ref -> zero-ref single-def -; V56 tmp46 [V56,T32] ( 2, 2 ) ref -> r8 class-hnd exact single-def "Inlining Arg" -; V57 tmp47 [V57,T17] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" -;* V58 tmp48 [V58 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V59 tmp49 [V59,T18] ( 3, 3 ) ref -> r14 class-hnd single-def "Inlining Arg" -;* V60 tmp50 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V61 tmp51 [V61,T33] ( 2, 2 ) ref -> rdi class-hnd exact single-def "NewObj constructor temp" -;* V62 tmp52 [V62 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" -; V63 tmp53 [V63,T21] ( 3, 2.25) ref -> rax single-def "argument with side effect" -; V64 tmp54 [V64,T34] ( 2, 2 ) ref -> rsi single-def "argument with side effect" -; V65 tmp55 [V65,T22] ( 3, 2.25) ref -> rax single-def "argument with side effect" -; V66 tmp56 [V66,T19] ( 3, 3 ) ref -> r15 single-def "argument with side effect" -; V67 tmp57 [V67,T35] ( 2, 2 ) ref -> rsi single-def "argument with side effect" -; V68 tmp58 [V68,T47] ( 2, 0 ) ref -> rsi single-def "argument with side effect" -; V69 PSPSym [V69,T41] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym" -; V70 cse0 [V70,T07] ( 6, 3 ) ref -> r13 multi-def "CSE #17: moderate" -; V71 cse1 [V71,T42] ( 5, 0.62) long -> rax multi-def "CSE #06: conservative" -; V72 cse2 [V72,T23] ( 4, 2 ) ref -> rdi "CSE #01: moderate" -; V73 cse3 [V73,T38] ( 3, 1.50) int -> rcx "CSE #07: conservative" -; V74 cse4 [V74,T37] ( 3, 1.50) ref -> r15 "CSE #12: conservative" -; V75 rat0 [V75,T05] ( 5, 3.75) ref -> r15 "replacement local" -; V76 rat1 [V76,T39] ( 3, 1.25) long -> rdi "CSE for expectedClsNode" -; V77 rat2 [V77,T06] ( 5, 3.75) ref -> rcx "replacement local" -; V78 rat3 [V78,T40] ( 3, 1.25) long -> rdi "CSE for expectedClsNode" +;* V54 tmp44 [V54 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" +;* V55 tmp45 [V55 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" +; V56 tmp46 [V56,T23] ( 3, 3 ) ref -> r15 class-hnd "Inlining Arg" +;* V57 tmp47 [V57 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" +;* V58 tmp48 [V58,T47] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V59 tmp49 [V59 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" +;* V60 tmp50 [V60 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" +; V61 tmp51 [V61,T24] ( 3, 3 ) ref -> r13 class-hnd exact single-def "impAppendStmt" +; V62 tmp52 [V62,T38] ( 2, 2 ) ref -> r15 class-hnd exact single-def "non-inline candidate call" +;* V63 tmp53 [V63 ] ( 0, 0 ) ref -> zero-ref class-hnd exact single-def "dup spill" +;* V64 tmp54 [V64 ] ( 0, 0 ) ref -> zero-ref single-def +;* V65 tmp55 [V65 ] ( 0, 0 ) int -> zero-ref +;* V66 tmp56 [V66 ] ( 0, 0 ) ref -> zero-ref single-def +;* V67 tmp57 [V67 ] ( 0, 0 ) ref -> zero-ref single-def +; V68 tmp58 [V68,T39] ( 2, 2 ) ref -> r8 class-hnd exact single-def "Inlining Arg" +; V69 tmp59 [V69,T25] ( 3, 3 ) ref -> rdi class-hnd single-def "Inlining Arg" +; V70 tmp60 [V70,T11] ( 4, 4 ) ref -> r14 class-hnd single-def "Inlining Arg" +; V71 tmp61 [V71,T02] ( 8, 8 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" +;* V72 tmp62 [V72 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "Inline stloc first use temp" +;* V73 tmp63 [V73 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inline stloc first use temp" +; V74 tmp64 [V74,T06] ( 5, 5 ) ref -> r14 class-hnd exact single-def "NewObj constructor temp" +;* V75 tmp65 [V75 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" +; V76 tmp66 [V76,T12] ( 4, 4 ) ref -> rbx class-hnd single-def "Inlining Arg" +;* V77 tmp67 [V77 ] ( 0, 0 ) ref -> zero-ref +;* V78 tmp68 [V78 ] ( 0, 0 ) ref -> zero-ref single-def +;* V79 tmp69 [V79 ] ( 0, 0 ) int -> zero-ref +;* V80 tmp70 [V80 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[S] ld-addr-op "NewObj constructor temp" +;* V81 tmp71 [V81 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "NewObj constructor temp" +; V82 tmp72 [V82,T26] ( 3, 3 ) ref -> r15 class-hnd "Inlining Arg" +;* V83 tmp73 [V83 ] ( 0, 0 ) ref -> zero-ref class-hnd single-def "Inlining Arg" +;* V84 tmp74 [V84,T48] ( 0, 0 ) ubyte -> zero-ref "Inlining Arg" +;* V85 tmp75 [V85 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" +;* V86 tmp76 [V86 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" +;* V87 tmp77 [V87 ] ( 0, 0 ) ref -> zero-ref single-def "field V47.m_task (fldOffset=0x0)" P-INDEP +;* V88 tmp78 [V88 ] ( 0, 0 ) int -> zero-ref "field V47.m_options (fldOffset=0x8)" P-INDEP +;* V89 tmp79 [V89 ] ( 0, 0 ) ref -> zero-ref single-def "field V55.m_task (fldOffset=0x0)" P-INDEP +;* V90 tmp80 [V90 ] ( 0, 0 ) int -> zero-ref "field V55.m_options (fldOffset=0x8)" P-INDEP +;* V91 tmp81 [V91 ] ( 0, 0 ) ref -> zero-ref single-def "field V73.m_task (fldOffset=0x0)" P-INDEP +;* V92 tmp82 [V92 ] ( 0, 0 ) int -> zero-ref "field V73.m_options (fldOffset=0x8)" P-INDEP +;* V93 tmp83 [V93 ] ( 0, 0 ) ref -> zero-ref single-def "field V81.m_task (fldOffset=0x0)" P-INDEP +;* V94 tmp84 [V94 ] ( 0, 0 ) int -> zero-ref "field V81.m_options (fldOffset=0x8)" P-INDEP +; V95 tmp85 [V95,T29] ( 3, 2.25) ref -> rax single-def "argument with side effect" +; V96 tmp86 [V96,T40] ( 2, 2 ) ref -> rsi single-def "argument with side effect" +; V97 tmp87 [V97,T30] ( 3, 2.25) ref -> rax single-def "argument with side effect" +; V98 tmp88 [V98,T27] ( 3, 3 ) ref -> r15 single-def "argument with side effect" +; V99 tmp89 [V99,T41] ( 2, 2 ) ref -> rsi single-def "argument with side effect" +; V100 tmp90 [V100,T55] ( 2, 0 ) ref -> rsi single-def "argument with side effect" +; V101 PSPSym [V101,T49] ( 1, 1 ) long -> [rbp-0x40] do-not-enreg[V] "PSPSym" +; V102 cse0 [V102,T15] ( 6, 3 ) ref -> r13 multi-def "CSE #17: moderate" +; V103 cse1 [V103,T50] ( 5, 0.62) long -> rax multi-def "CSE #06: conservative" +; V104 cse2 [V104,T31] ( 4, 2 ) ref -> rdi "CSE #01: conservative" +; V105 cse3 [V105,T44] ( 3, 1.50) int -> rcx "CSE #07: conservative" +; V106 cse4 [V106,T43] ( 3, 1.50) ref -> r15 "CSE #12: conservative" +; V107 rat0 [V107,T13] ( 5, 3.75) ref -> r15 "replacement local" +; V108 rat1 [V108,T45] ( 3, 1.25) long -> rdi "CSE for expectedClsNode" +; V109 rat2 [V109,T14] ( 5, 3.75) ref -> rcx "replacement local" +; V110 rat3 [V110,T46] ( 3, 1.25) long -> rdi "CSE for expectedClsNode" ; ; Lcl frame size = 24 G_M46174_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 24 lea rbp, [rsp+0x40] mov qword ptr [rbp-0x40], rsp mov rbx, rdi mov r15, rdx mov r14, rcx ;; size=32 bbWeight=1 PerfScore 8.50 G_M46174_IG02: mov byte ptr [r14], 0 cmp byte ptr [rbx+0x61], 0 - jne G_M46174_IG30 + jne G_M46174_IG38 ;; size=14 bbWeight=1 PerfScore 5.00 G_M46174_IG03: mov byte ptr [rbx+0x61], 1 mov rdi, gword ptr [rsi+0x08] mov rax, rdi test rax, rax je SHORT G_M46174_IG06 ;; size=16 bbWeight=0.50 PerfScore 2.25 G_M46174_IG04: cmp dword ptr [rax+0x08], 6 jne SHORT G_M46174_IG06 ;; size=6 bbWeight=0.25 PerfScore 1.00 G_M46174_IG05: mov rcx, 0xD1FFAB1E xor rcx, qword ptr [rax+0x0C] mov eax, dword ptr [rax+0x14] xor eax, 0xD1FFAB1E or rcx, rax je SHORT G_M46174_IG09 ;; size=27 bbWeight=0.12 PerfScore 0.84 G_M46174_IG06: mov rax, rdi test rax, rax je G_M46174_IG19 ;; size=12 bbWeight=0.50 PerfScore 0.75 G_M46174_IG07: cmp dword ptr [rax+0x08], 6 jne G_M46174_IG19 ;; size=10 bbWeight=0.25 PerfScore 1.00 G_M46174_IG08: mov rcx, 0xD1FFAB1E xor rcx, qword ptr [rax+0x0C] mov eax, dword ptr [rax+0x14] xor eax, 0xD1FFAB1E or rcx, rax jne G_M46174_IG19 ;; size=31 bbWeight=0.12 PerfScore 0.84 G_M46174_IG09: mov ecx, dword ptr [r15+0x20] cmp ecx, 200 - jl G_M46174_IG28 + jl G_M46174_IG36 cmp ecx, 299 - jg G_M46174_IG28 + jg G_M46174_IG36 test rdi, rdi je SHORT G_M46174_IG12 ;; size=33 bbWeight=0.50 PerfScore 2.88 G_M46174_IG10: cmp dword ptr [rdi+0x08], 6 jne SHORT G_M46174_IG12 ;; size=6 bbWeight=0.25 PerfScore 1.00 G_M46174_IG11: mov rcx, 0xD1FFAB1E xor rcx, qword ptr [rdi+0x0C] or rax, rcx je SHORT G_M46174_IG13 ;; size=19 bbWeight=0.12 PerfScore 0.56 G_M46174_IG12: mov rdi, gword ptr [r15+0x08] mov rax, 0xD1FFAB1E ; code for System.Net.FtpControlStream:GetPortV6(System.String):int call [rax]System.Net.FtpControlStream:GetPortV6(System.String):int mov r13d, eax jmp SHORT G_M46174_IG14 ;; size=21 bbWeight=0.50 PerfScore 3.75 G_M46174_IG13: mov rdi, gword ptr [r15+0x08] mov rax, 0xD1FFAB1E ; code for System.Net.FtpControlStream:GetPortV4(System.String):int call [rax]System.Net.FtpControlStream:GetPortV4(System.String):int mov r13d, eax ;; size=19 bbWeight=0.50 PerfScore 2.75 G_M46174_IG14: mov rdi, gword ptr [rbx+0x10] mov rdi, gword ptr [rdi+0x10] mov rax, 0xD1FFAB1E ; code for System.Net.FtpControlStream:CreateFtpDataSocket(System.Net.Sockets.Socket):System.Net.Sockets.Socket call [rax]System.Net.FtpControlStream:CreateFtpDataSocket(System.Net.Sockets.Socket):System.Net.Sockets.Socket lea rdi, bword ptr [rbx+0x68] mov rsi, rax call CORINFO_HELP_ASSIGN_REF nop ;; size=33 bbWeight=0.50 PerfScore 4.62 G_M46174_IG15: mov rdi, gword ptr [rbx+0x10] mov rdi, gword ptr [rdi+0x10] mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:get_LocalEndPoint():System.Net.EndPoint:this cmp dword ptr [rdi], edi call [rax]System.Net.Sockets.Socket:get_LocalEndPoint():System.Net.EndPoint:this mov r15, rax test r15, r15 je SHORT G_M46174_IG18 ;; size=30 bbWeight=0.50 PerfScore 5.88 G_M46174_IG16: mov rdi, 0xD1FFAB1E ; System.Net.IPEndPoint cmp qword ptr [r15], rdi je SHORT G_M46174_IG18 ;; size=15 bbWeight=0.25 PerfScore 1.06 G_M46174_IG17: mov rsi, rax mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL mov r15, rax ;; size=18 bbWeight=0.12 PerfScore 0.47 G_M46174_IG18: mov rdi, 0xD1FFAB1E ; System.Net.IPEndPoint call CORINFO_HELP_NEWSFAST mov r12, rax mov rsi, gword ptr [r15+0x08] test rsi, rsi - je G_M46174_IG43 + je G_M46174_IG53 xor edi, edi mov dword ptr [r12+0x10], edi lea rdi, bword ptr [r12+0x08] call CORINFO_HELP_ASSIGN_REF mov rdi, gword ptr [rbx+0x68] mov rsi, r12 mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Bind(System.Net.EndPoint):this cmp dword ptr [rdi], edi call [rax]System.Net.Sockets.Socket:Bind(System.Net.EndPoint):this mov rdi, 0xD1FFAB1E ; System.Net.IPEndPoint call CORINFO_HELP_NEWSFAST mov r15, rax mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Net.NetworkStreamWrapper:get_ServerAddress():System.Net.IPAddress:this call [rax]System.Net.NetworkStreamWrapper:get_ServerAddress():System.Net.IPAddress:this mov rsi, rax mov rdi, r15 mov edx, r13d mov rax, 0xD1FFAB1E ; code for System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this call [rax]System.Net.IPEndPoint:.ctor(System.Net.IPAddress,int):this lea rdi, bword ptr [rbx+0x78] mov rsi, r15 call CORINFO_HELP_ASSIGN_REF ;; size=135 bbWeight=0.50 PerfScore 13.38 G_M46174_IG19: mov r15, gword ptr [rbx+0x78] test r15, r15 - jne G_M46174_IG22 + jne G_M46174_IG26 mov rdi, 0xD1FFAB1E ; global ptr test byte ptr [rdi], 1 - je G_M46174_IG40 + je G_M46174_IG48 ;; size=32 bbWeight=0.50 PerfScore 3.75 G_M46174_IG20: mov rdi, 0xD1FFAB1E ; data for System.Net.NetEventSource:Log mov r13, gword ptr [rdi] cmp byte ptr [r13+0x9D], 0 je SHORT G_M46174_IG21 mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String mov r15, rax mov rdi, 0xD1FFAB1E ; 'starting Accept()' mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.Object):System.String call [rax]System.Net.NetEventSource:Format(System.Object):System.String mov r8, rax cmp byte ptr [r13], r13b mov rdi, r13 mov rdx, r15 mov esi, 1 mov rcx, 0xD1FFAB1E ; 'QueueOrCreateDataConection' mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this ;; size=103 bbWeight=0.50 PerfScore 10.50 G_M46174_IG21: cmp byte ptr [rbx+0x5D], 0 - je G_M46174_IG38 + je G_M46174_IG46 mov rdi, gword ptr [rbx+0x68] cmp byte ptr [rdi], dil mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:AcceptAsync():System.Threading.Tasks.Task`1[System.Net.Sockets.Socket]:this call [rax]System.Net.Sockets.Socket:AcceptAsync():System.Threading.Tasks.Task`1[System.Net.Sockets.Socket]:this mov r14, rax test r14, r14 - je G_M46174_IG42 + je G_M46174_IG52 mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.TaskToAsyncResult+TaskAsyncResult call CORINFO_HELP_NEWSFAST - mov rdi, rax - mov rcx, 0xD1FFAB1E ; const ptr - mov rcx, gword ptr [rcx] + mov r15, rax + lea rdi, bword ptr [r15+0x08] mov rsi, r14 - mov rdx, rbx - mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.TaskToAsyncResult+TaskAsyncResult:.ctor(System.Threading.Tasks.Task,System.Object,System.AsyncCallback):this - call [rax]System.Threading.Tasks.TaskToAsyncResult+TaskAsyncResult:.ctor(System.Threading.Tasks.Task,System.Object,System.AsyncCallback):this - jmp G_M46174_IG25 - ;; size=95 bbWeight=0.50 PerfScore 11.62 + call CORINFO_HELP_ASSIGN_REF + lea rdi, bword ptr [r15+0x18] + mov rsi, rbx + call CORINFO_HELP_ASSIGN_REF + test dword ptr [r14+0x34], 0xD1FFAB1E + jne G_M46174_IG25 + mov rdi, 0xD1FFAB1E ; const ptr + mov rsi, gword ptr [rdi] + lea rdi, bword ptr [r15+0x10] + call CORINFO_HELP_ASSIGN_REF + mov rbx, gword ptr [r15+0x08] + cmp byte ptr [rbx], bl + mov rdi, 0xD1FFAB1E ; System.Action + call CORINFO_HELP_NEWSFAST + mov r14, rax + lea rdi, bword ptr [r14+0x08] + mov rsi, r15 + call CORINFO_HELP_ASSIGN_REF + mov rdi, 0xD1FFAB1E ; code for System.Threading.Tasks.TaskToAsyncResult+TaskAsyncResult:<.ctor>b__2_0():this + mov qword ptr [r14+0x18], rdi + mov r15, r14 + mov rdi, 0xD1FFAB1E ; global ptr + test byte ptr [rdi], 1 + je G_M46174_IG49 + ;; size=191 bbWeight=0.50 PerfScore 20.25 G_M46174_IG22: + mov rdi, 0xD1FFAB1E ; data for System.Threading.Tasks.TplEventSource:Log + mov rdi, gword ptr [rdi] + cmp byte ptr [rdi+0x9D], 0 + jne SHORT G_M46174_IG23 + mov rdi, 0xD1FFAB1E ; data for System.Threading.Tasks.Task:s_asyncDebuggingEnabled + cmp byte ptr [rdi], 0 + je SHORT G_M46174_IG24 + ;; size=37 bbWeight=0.50 PerfScore 5.25 +G_M46174_IG23: + mov rdi, rbx + mov rsi, r14 + mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.TaskAwaiter:OutputWaitEtwEvents(System.Threading.Tasks.Task,System.Action):System.Action + call [rax]System.Runtime.CompilerServices.TaskAwaiter:OutputWaitEtwEvents(System.Threading.Tasks.Task,System.Action):System.Action + mov r15, rax + ;; size=21 bbWeight=0.50 PerfScore 2.00 +G_M46174_IG24: + mov rdi, rbx + mov rsi, r15 + xor edx, edx + mov ecx, 1 + mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:SetContinuationForAwait(System.Action,ubyte,ubyte):this + call [rax]System.Threading.Tasks.Task:SetContinuationForAwait(System.Action,ubyte,ubyte):this + jmp G_M46174_IG33 + ;; size=30 bbWeight=0.50 PerfScore 3.12 +G_M46174_IG25: + mov byte ptr [r15+0x20], 1 + mov rdi, r15 + mov rax, 0xD1FFAB1E ; code for System.Net.FtpControlStream:AcceptCallback(System.IAsyncResult) + call [rax]System.Net.FtpControlStream:AcceptCallback(System.IAsyncResult) + jmp G_M46174_IG33 + ;; size=25 bbWeight=0.50 PerfScore 3.25 +G_M46174_IG26: xor rdi, rdi mov gword ptr [rbx+0x78], rdi mov rdi, 0xD1FFAB1E ; global ptr test byte ptr [rdi], 1 - je G_M46174_IG41 + je G_M46174_IG50 ;; size=25 bbWeight=0.50 PerfScore 2.75 -G_M46174_IG23: +G_M46174_IG27: mov rdi, 0xD1FFAB1E ; data for System.Net.NetEventSource:Log mov r13, gword ptr [rdi] cmp byte ptr [r13+0x9D], 0 - je SHORT G_M46174_IG24 + je SHORT G_M46174_IG28 mov r14, r13 mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:IdOf(System.Object):System.String call [rax]System.Net.NetEventSource:IdOf(System.Object):System.String mov r13, rax mov rdi, 0xD1FFAB1E ; 'starting Connect()' mov rax, 0xD1FFAB1E ; code for System.Net.NetEventSource:Format(System.Object):System.String call [rax]System.Net.NetEventSource:Format(System.Object):System.String mov r8, rax cmp byte ptr [r14], r14b mov rdi, r14 mov rdx, r13 mov esi, 1 mov rcx, 0xD1FFAB1E ; 'QueueOrCreateDataConection' mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this call [rax]System.Diagnostics.Tracing.EventSource:WriteEvent(int,System.String,System.String,System.String):this ;; size=105 bbWeight=0.50 PerfScore 10.62 -G_M46174_IG24: +G_M46174_IG28: cmp byte ptr [rbx+0x5D], 0 - je G_M46174_IG39 + je G_M46174_IG47 mov rdi, gword ptr [rbx+0x68] cmp byte ptr [rdi], dil mov rsi, r15 mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:ConnectAsync(System.Net.EndPoint):System.Threading.Tasks.Task:this call [rax]System.Net.Sockets.Socket:ConnectAsync(System.Net.EndPoint):System.Threading.Tasks.Task:this mov r14, rax test r14, r14 - je G_M46174_IG42 + je G_M46174_IG52 mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.TaskToAsyncResult+TaskAsyncResult call CORINFO_HELP_NEWSFAST - mov rdi, rax - mov rcx, 0xD1FFAB1E ; const ptr - mov rcx, gword ptr [rcx] + mov r15, rax + lea rdi, bword ptr [r15+0x08] mov rsi, r14 - mov rdx, rbx - mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.TaskToAsyncResult+TaskAsyncResult:.ctor(System.Threading.Tasks.Task,System.Object,System.AsyncCallback):this - call [rax]System.Threading.Tasks.TaskToAsyncResult+TaskAsyncResult:.ctor(System.Threading.Tasks.Task,System.Object,System.AsyncCallback):this - ;; size=93 bbWeight=0.50 PerfScore 10.75 -G_M46174_IG25: + call CORINFO_HELP_ASSIGN_REF + lea rdi, bword ptr [r15+0x18] + mov rsi, rbx + call CORINFO_HELP_ASSIGN_REF + test dword ptr [r14+0x34], 0xD1FFAB1E + jne G_M46174_IG32 + mov rdi, 0xD1FFAB1E ; const ptr + mov rsi, gword ptr [rdi] + lea rdi, bword ptr [r15+0x10] + call CORINFO_HELP_ASSIGN_REF + mov rbx, gword ptr [r15+0x08] + cmp byte ptr [rbx], bl + mov rdi, 0xD1FFAB1E ; System.Action + call CORINFO_HELP_NEWSFAST + mov r14, rax + lea rdi, bword ptr [r14+0x08] + mov rsi, r15 + call CORINFO_HELP_ASSIGN_REF + mov rdi, 0xD1FFAB1E ; code for System.Threading.Tasks.TaskToAsyncResult+TaskAsyncResult:<.ctor>b__2_0():this + mov qword ptr [r14+0x18], rdi + mov r15, r14 + mov rdi, 0xD1FFAB1E ; global ptr + test byte ptr [rdi], 1 + je G_M46174_IG51 + ;; size=194 bbWeight=0.50 PerfScore 20.38 +G_M46174_IG29: + mov rdi, 0xD1FFAB1E ; data for System.Threading.Tasks.TplEventSource:Log + mov rdi, gword ptr [rdi] + cmp byte ptr [rdi+0x9D], 0 + jne SHORT G_M46174_IG30 + mov rdi, 0xD1FFAB1E ; data for System.Threading.Tasks.Task:s_asyncDebuggingEnabled + cmp byte ptr [rdi], 0 + je SHORT G_M46174_IG31 + ;; size=37 bbWeight=0.50 PerfScore 5.25 +G_M46174_IG30: + mov rdi, rbx + mov rsi, r14 + mov rax, 0xD1FFAB1E ; code for System.Runtime.CompilerServices.TaskAwaiter:OutputWaitEtwEvents(System.Threading.Tasks.Task,System.Action):System.Action + call [rax]System.Runtime.CompilerServices.TaskAwaiter:OutputWaitEtwEvents(System.Threading.Tasks.Task,System.Action):System.Action + mov r15, rax + ;; size=21 bbWeight=0.50 PerfScore 2.00 +G_M46174_IG31: + mov rdi, rbx + mov rsi, r15 + xor edx, edx + mov ecx, 1 + mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:SetContinuationForAwait(System.Action,ubyte,ubyte):this + call [rax]System.Threading.Tasks.Task:SetContinuationForAwait(System.Action,ubyte,ubyte):this + jmp SHORT G_M46174_IG33 + ;; size=27 bbWeight=0.50 PerfScore 3.12 +G_M46174_IG32: + mov byte ptr [r15+0x20], 1 + mov rdi, r15 + mov rax, 0xD1FFAB1E ; code for System.Net.FtpControlStream:ConnectCallback(System.IAsyncResult) + call [rax]System.Net.FtpControlStream:ConnectCallback(System.IAsyncResult) + ;; size=20 bbWeight=0.50 PerfScore 2.25 +G_M46174_IG33: mov r14d, 2 ;; size=6 bbWeight=0.50 PerfScore 0.12 -G_M46174_IG26: +G_M46174_IG34: mov eax, r14d ;; size=3 bbWeight=0.50 PerfScore 0.12 -G_M46174_IG27: +G_M46174_IG35: add rsp, 24 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 -G_M46174_IG28: +G_M46174_IG36: mov rdi, 0xD1FFAB1E ; System.Int32 call CORINFO_HELP_NEWSFAST mov r14, rax mov rdi, 0xD1FFAB1E ; 'net_ftp_server_failed_passive' mov rax, 0xD1FFAB1E ; code for System.SR:GetResourceString(System.String):System.String call [rax]System.SR:GetResourceString(System.String):System.String mov rdi, rax mov esi, dword ptr [r15+0x20] mov dword ptr [r14+0x08], esi mov rsi, r14 mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object):System.String call [rax]System.SR:Format(System.String,System.Object):System.String lea rdi, bword ptr [rbx+0x38] mov rsi, rax call CORINFO_HELP_ASSIGN_REF xor eax, eax ;; size=80 bbWeight=0.50 PerfScore 6.88 -G_M46174_IG29: +G_M46174_IG37: add rsp, 24 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 -G_M46174_IG30: +G_M46174_IG38: mov byte ptr [r14], 1 mov eax, 2 ;; size=9 bbWeight=0.50 PerfScore 0.62 -G_M46174_IG31: +G_M46174_IG39: add rsp, 24 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0.50 PerfScore 2.12 -G_M46174_IG32: +G_M46174_IG40: mov rdi, gword ptr [rbx+0x68] mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Accept():System.Net.Sockets.Socket:this cmp dword ptr [rdi], edi call [rax]System.Net.Sockets.Socket:Accept():System.Net.Sockets.Socket:this lea rdi, bword ptr [rbx+0x68] mov rsi, rax call CORINFO_HELP_ASSIGN_REF mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Net.NetworkStreamWrapper:get_ServerAddress():System.Net.IPAddress:this call [rax]System.Net.NetworkStreamWrapper:get_ServerAddress():System.Net.IPAddress:this mov r15, rax mov rdi, gword ptr [rbx+0x68] mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:get_RemoteEndPoint():System.Net.EndPoint:this cmp dword ptr [rdi], edi call [rax]System.Net.Sockets.Socket:get_RemoteEndPoint():System.Net.EndPoint:this mov rcx, rax test rcx, rcx - je SHORT G_M46174_IG35 + je SHORT G_M46174_IG43 ;; size=74 bbWeight=0.50 PerfScore 11.75 -G_M46174_IG33: +G_M46174_IG41: mov rdi, 0xD1FFAB1E ; System.Net.IPEndPoint cmp qword ptr [rcx], rdi - je SHORT G_M46174_IG35 + je SHORT G_M46174_IG43 ;; size=15 bbWeight=0.25 PerfScore 1.06 -G_M46174_IG34: +G_M46174_IG42: mov rsi, rax mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_CHKCASTCLASS_SPECIAL call [rax]CORINFO_HELP_CHKCASTCLASS_SPECIAL mov rcx, rax ;; size=18 bbWeight=0.12 PerfScore 0.47 -G_M46174_IG35: +G_M46174_IG43: mov rsi, gword ptr [rcx+0x08] mov rdi, r15 mov rax, qword ptr [r15] mov rax, qword ptr [rax+0x40] call [rax+0x10]System.Object:Equals(System.Object):ubyte:this test eax, eax - je SHORT G_M46174_IG36 + je SHORT G_M46174_IG44 mov byte ptr [r14], 1 mov r14d, 2 - jmp SHORT G_M46174_IG37 + jmp SHORT G_M46174_IG45 ;; size=33 bbWeight=0.50 PerfScore 6.88 -G_M46174_IG36: +G_M46174_IG44: mov rdi, gword ptr [rbx+0x68] mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Close():this cmp dword ptr [rdi], edi call [rax]System.Net.Sockets.Socket:Close():this mov rdi, 0xD1FFAB1E ; System.Net.WebException call CORINFO_HELP_NEWSFAST mov rbx, rax mov rax, 0xD1FFAB1E ; code for System.SR:get_net_ftp_active_address_different():System.String call [rax]System.SR:get_net_ftp_active_address_different():System.String mov rsi, rax mov rdi, rbx mov edx, 7 mov rax, 0xD1FFAB1E ; code for System.Net.WebException:.ctor(System.String,int):this call [rax]System.Net.WebException:.ctor(System.String,int):this mov rdi, rbx call CORINFO_HELP_THROW int3 ;; size=80 bbWeight=0 PerfScore 0.00 -G_M46174_IG37: +G_M46174_IG45: mov rdi, gword ptr [rbp-0x30] mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Close():this cmp dword ptr [rdi], edi call [rax]System.Net.Sockets.Socket:Close():this - jmp G_M46174_IG26 + jmp G_M46174_IG34 ;; size=23 bbWeight=0.50 PerfScore 4.62 -G_M46174_IG38: +G_M46174_IG46: mov rdi, gword ptr [rbx+0x68] mov gword ptr [rbp-0x30], rdi - jmp G_M46174_IG32 + jmp G_M46174_IG40 ;; size=13 bbWeight=0.50 PerfScore 2.50 -G_M46174_IG39: +G_M46174_IG47: mov rdi, gword ptr [rbx+0x68] mov rsi, r15 mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Connect(System.Net.EndPoint):this cmp dword ptr [rdi], edi call [rax]System.Net.Sockets.Socket:Connect(System.Net.EndPoint):this mov r14d, 1 - jmp G_M46174_IG26 + jmp G_M46174_IG34 ;; size=32 bbWeight=0.50 PerfScore 5.38 -G_M46174_IG40: +G_M46174_IG48: mov rdi, 0xD1FFAB1E ; System.Net.NetEventSource mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GET_GCSTATIC_BASE call [rax]CORINFO_HELP_GET_GCSTATIC_BASE jmp G_M46174_IG20 ;; size=27 bbWeight=0 PerfScore 0.00 -G_M46174_IG41: +G_M46174_IG49: + mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.TplEventSource + mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GET_GCSTATIC_BASE + call [rax]CORINFO_HELP_GET_GCSTATIC_BASE + jmp G_M46174_IG22 + ;; size=27 bbWeight=0 PerfScore 0.00 +G_M46174_IG50: mov rdi, 0xD1FFAB1E ; System.Net.NetEventSource mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GET_GCSTATIC_BASE call [rax]CORINFO_HELP_GET_GCSTATIC_BASE - jmp G_M46174_IG23 + jmp G_M46174_IG27 ;; size=27 bbWeight=0 PerfScore 0.00 -G_M46174_IG42: +G_M46174_IG51: + mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.TplEventSource + mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GET_GCSTATIC_BASE + call [rax]CORINFO_HELP_GET_GCSTATIC_BASE + jmp G_M46174_IG29 + ;; size=27 bbWeight=0 PerfScore 0.00 +G_M46174_IG52: mov edi, 0x134C6 mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS mov rdi, rax mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String) call [rax]System.ArgumentNullException:Throw(System.String) int3 ;; size=36 bbWeight=0 PerfScore 0.00 -G_M46174_IG43: +G_M46174_IG53: mov edi, 0xC23 mov rsi, 0xD1FFAB1E call CORINFO_HELP_STRCNS mov rdi, rax mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:Throw(System.String) call [rax]System.ArgumentNullException:Throw(System.String) int3 ;; size=36 bbWeight=0 PerfScore 0.00 -G_M46174_IG44: +G_M46174_IG54: push rbp push r15 push r14 push r13 push r12 push rbx push rax mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x40] ;; size=22 bbWeight=0 PerfScore 0.00 -G_M46174_IG45: +G_M46174_IG55: mov rax, 0xD1FFAB1E ; code for System.Net.ExceptionHelper:get_RequestAbortedException():System.Net.WebException call [rax]System.Net.ExceptionHelper:get_RequestAbortedException():System.Net.WebException mov rdi, rax call CORINFO_HELP_THROW int3 ;; size=21 bbWeight=0 PerfScore 0.00 -G_M46174_IG46: +G_M46174_IG56: push rbp push r15 push r14 push r13 push r12 push rbx push rax mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x40] ;; size=22 bbWeight=0 PerfScore 0.00 -G_M46174_IG47: +G_M46174_IG57: mov rdi, gword ptr [rbp-0x30] mov rax, 0xD1FFAB1E ; code for System.Net.Sockets.Socket:Close():this cmp dword ptr [rdi], edi call [rax]System.Net.Sockets.Socket:Close():this nop ;; size=19 bbWeight=0 PerfScore 0.00 -G_M46174_IG48: +G_M46174_IG58: add rsp, 8 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0 PerfScore 0.00 -; Total bytes of code 1586, prolog size 32, PerfScore 153.31, instruction count 372, allocated bytes for code 1586 (MethodHash=8e804ba1) for method System.Net.FtpControlStream:QueueOrCreateDataConection(System.Net.CommandStream+PipelineEntry,System.Net.ResponseDescription,byref):int:this (FullOpts) +; Total bytes of code 2055, prolog size 32, PerfScore 197.81, instruction count 466, allocated bytes for code 2055 (MethodHash=8e804ba1) for method System.Net.FtpControlStream:QueueOrCreateDataConection(System.Net.CommandStream+PipelineEntry,System.Net.ResponseDescription,byref):int:this (FullOpts) ; ============================================================ ```
285 (171.69 % of base) - System.Reflection.TypeLoading.RoModule:GetUniqueArrayType(System.Reflection.TypeLoading.RoType):System.Reflection.TypeLoading.RoArrayType:this ```diff ; Assembly listing for method System.Reflection.TypeLoading.RoModule:GetUniqueArrayType(System.Reflection.TypeLoading.RoType):System.Reflection.TypeLoading.RoArrayType:this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code -; rsp based frame -; fully interruptible +; rbp based frame +; partially interruptible ; No PGO data -; 0 inlinees with PGO data; 9 single block inlinees; 0 inlinees without PGO data +; 0 inlinees with PGO data; 20 single block inlinees; 2 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T02] ( 3, 2.50) ref -> r15 this class-hnd single-def -; V01 arg1 [V01,T01] ( 5, 4 ) ref -> rbx class-hnd single-def -;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V03 tmp1 [V03,T00] ( 7, 7 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" +; V00 this [V00,T04] ( 3, 2.50) ref -> r15 this class-hnd single-def +; V01 arg1 [V01,T00] ( 11, 7 ) ref -> rbx class-hnd single-def +; V02 OutArgs [V02 ] ( 1, 1 ) struct (16) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" +; V03 tmp1 [V03,T08] ( 2, 1 ) ref -> rax class-hnd exact single-def "Inline return value spill temp" +; V04 tmp2 [V04,T03] ( 5, 5 ) ref -> r15 class-hnd single-def "Inlining Arg" +; V05 tmp3 [V05,T06] ( 4, 2 ) ref -> r14 class-hnd single-def "Inline stloc first use temp" +; V06 tmp4 [V06,T09] ( 2, 1 ) ref -> rdi class-hnd single-def "Inline stloc first use temp" +;* V07 tmp5 [V07 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp" +; V08 tmp6 [V08 ] ( 3, 1.50) ref -> [rbp-0x30] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline ldloca(s) first use temp" +;* V09 tmp7 [V09 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" +;* V10 tmp8 [V10 ] ( 0, 0 ) struct ( 8) zero-ref "impAppendStmt" +; V11 tmp9 [V11,T07] ( 4, 2 ) int -> r13 "Inline return value spill temp" +;* V12 tmp10 [V12 ] ( 0, 0 ) ref -> zero-ref ld-addr-op class-hnd single-def "Inlining Arg" +; V13 tmp11 [V13,T01] ( 7, 7 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" +; V14 tmp12 [V14,T02] ( 7, 7 ) ref -> r15 class-hnd exact single-def "NewObj constructor temp" +;* V15 tmp13 [V15,T11] ( 0, 0 ) ubyte -> zero-ref "field V09.hasValue (fldOffset=0x0)" P-INDEP +; V16 tmp14 [V16,T10] ( 2, 1 ) int -> r13 "field V09.value (fldOffset=0x4)" P-INDEP +;* V17 tmp15 [V17 ] ( 0, 0 ) ubyte -> zero-ref "field V10.hasValue (fldOffset=0x0)" P-INDEP +;* V18 tmp16 [V18 ] ( 0, 0 ) int -> zero-ref "field V10.value (fldOffset=0x4)" P-INDEP +; V19 tmp17 [V19,T05] ( 3, 3 ) struct ( 8) [rbp-0x38] do-not-enreg[SF] "by-value struct argument" ; -; Lcl frame size = 8 +; Lcl frame size = 40 G_M23311_IG01: + push rbp push r15 + push r14 + push r13 + push r12 push rbx - push rax + sub rsp, 40 + lea rbp, [rsp+0x50] + xor eax, eax + mov qword ptr [rbp-0x30], rax mov r15, rdi mov rbx, rsi - ;; size=10 bbWeight=1 PerfScore 3.50 + ;; size=31 bbWeight=1 PerfScore 8.50 G_M23311_IG02: mov rsi, rbx mov rdi, 0xD1FFAB1E ; System.Reflection.RoModifiedType mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_ISINSTANCEOFCLASS call [rax]CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax je SHORT G_M23311_IG05 ;; size=30 bbWeight=1 PerfScore 5.00 G_M23311_IG03: mov rdi, 0xD1FFAB1E ; System.Reflection.TypeLoading.RoArrayType call CORINFO_HELP_NEWSFAST mov r15, rax mov rdi, 0xD1FFAB1E ; const ptr mov rsi, gword ptr [rdi] lea rdi, bword ptr [r15+0x38] call CORINFO_HELP_ASSIGN_REF mov dword ptr [r15+0x50], -1 lea rdi, bword ptr [r15+0x60] mov rsi, rbx call CORINFO_HELP_ASSIGN_REF mov byte ptr [r15+0x6C], 0 mov dword ptr [r15+0x68], 1 mov rax, r15 ;; size=76 bbWeight=0.50 PerfScore 5.12 G_M23311_IG04: - add rsp, 8 + add rsp, 40 pop rbx + pop r12 + pop r13 + pop r14 pop r15 + pop rbp ret - ;; size=8 bbWeight=0.50 PerfScore 1.12 + ;; size=15 bbWeight=0.50 PerfScore 2.12 G_M23311_IG05: - mov rdi, gword ptr [r15+0x18] - mov rdx, 0xD1FFAB1E ; const ptr - mov rdx, gword ptr [rdx] - mov rsi, rbx - mov rax, 0xD1FFAB1E ; code for System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:GetOrAdd(System.__Canon,System.Func`2[System.__Canon,System.__Canon]):System.__Canon:this - cmp dword ptr [rdi], edi - ;; size=32 bbWeight=0.50 PerfScore 3.88 + mov r15, gword ptr [r15+0x18] + cmp byte ptr [r15], r15b + test rbx, rbx + je G_M23311_IG10 + mov r14, gword ptr [r15+0x08] + mov rdi, gword ptr [r14+0x08] + cmp byte ptr [r15+0x19], 0 + je SHORT G_M23311_IG06 + mov rdi, rbx + mov rax, qword ptr [rbx] + mov rax, qword ptr [rax+0x40] + call [rax+0x18]System.Object:GetHashCode():int:this + mov r13d, eax + jmp SHORT G_M23311_IG07 + ;; size=49 bbWeight=0.50 PerfScore 11.88 G_M23311_IG06: - add rsp, 8 + mov rsi, rbx + mov r11, 0xD1FFAB1E ; code for System.Collections.Generic.IEqualityComparer`1[System.__Canon]:GetHashCode(System.__Canon):int:this + call [r11]System.Collections.Generic.IEqualityComparer`1[System.__Canon]:GetHashCode(System.__Canon):int:this + mov r13d, eax + ;; size=19 bbWeight=0.50 PerfScore 1.88 +G_M23311_IG07: + lea r8, [rbp-0x30] + mov rsi, r14 + mov rdx, rbx + mov ecx, r13d + mov rdi, 0xD1FFAB1E ; System.Collections.Concurrent.ConcurrentDictionary`2[System.Reflection.TypeLoading.RoType,System.Reflection.TypeLoading.RoArrayType] + mov rax, 0xD1FFAB1E ; code for System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:TryGetValueInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.__Canon,System.__Canon],System.__Canon,int,byref):ubyte + call [rax]System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:TryGetValueInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.__Canon,System.__Canon],System.__Canon,int,byref):ubyte + test eax, eax + jne G_M23311_IG08 + mov rdi, 0xD1FFAB1E ; System.Reflection.TypeLoading.RoArrayType + call CORINFO_HELP_NEWSFAST + mov r12, rax + mov rdi, 0xD1FFAB1E ; const ptr + mov rsi, gword ptr [rdi] + lea rdi, bword ptr [r12+0x38] + call CORINFO_HELP_ASSIGN_REF + mov dword ptr [r12+0x50], -1 + lea rdi, bword ptr [r12+0x60] + mov rsi, rbx + call CORINFO_HELP_ASSIGN_REF + mov byte ptr [r12+0x6C], 0 + mov dword ptr [r12+0x68], 1 + mov byte ptr [rbp-0x38], 1 + mov dword ptr [rbp-0x34], r13d + mov dword ptr [rsp], 1 + lea rcx, [rbp-0x30] + mov qword ptr [rsp+0x08], rcx + mov rcx, qword ptr [rbp-0x38] + mov rsi, r14 + mov rdx, rbx + mov rdi, r15 + mov r8, r12 + xor r9d, r9d + mov rax, 0xD1FFAB1E ; code for System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:TryAddInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.__Canon,System.__Canon],System.__Canon,System.Nullable`1[int],System.__Canon,ubyte,ubyte,byref):ubyte:this + call [rax]System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:TryAddInternal(System.Collections.Concurrent.ConcurrentDictionary`2+Tables[System.__Canon,System.__Canon],System.__Canon,System.Nullable`1[int],System.__Canon,ubyte,ubyte,byref):ubyte:this + ;; size=176 bbWeight=0.50 PerfScore 13.00 +G_M23311_IG08: + mov rax, gword ptr [rbp-0x30] + ;; size=4 bbWeight=0.50 PerfScore 0.50 +G_M23311_IG09: + add rsp, 40 pop rbx + pop r12 + pop r13 + pop r14 pop r15 - tail.jmp [rax]System.Collections.Concurrent.ConcurrentDictionary`2[System.__Canon,System.__Canon]:GetOrAdd(System.__Canon,System.Func`2[System.__Canon,System.__Canon]):System.__Canon:this - ;; size=10 bbWeight=0.50 PerfScore 1.62 + pop rbp + ret + ;; size=15 bbWeight=0.50 PerfScore 2.12 +G_M23311_IG10: + mov edi, 1 + mov rsi, 0xD1FFAB1E + call CORINFO_HELP_STRCNS + mov rdi, rax + mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(System.String) + call [rax]System.ThrowHelper:ThrowArgumentNullException(System.String) + int3 + ;; size=36 bbWeight=0 PerfScore 0.00 -; Total bytes of code 166, prolog size 10, PerfScore 20.25, instruction count 39, allocated bytes for code 166 (MethodHash=7ce8a4f0) for method System.Reflection.TypeLoading.RoModule:GetUniqueArrayType(System.Reflection.TypeLoading.RoType):System.Reflection.TypeLoading.RoArrayType:this (FullOpts) +; Total bytes of code 451, prolog size 25, PerfScore 50.12, instruction count 109, allocated bytes for code 451 (MethodHash=7ce8a4f0) for method System.Reflection.TypeLoading.RoModule:GetUniqueArrayType(System.Reflection.TypeLoading.RoType):System.Reflection.TypeLoading.RoArrayType:this (FullOpts) ; ============================================================ ```

Larger list of diffs: https://gist.github.com/MihuBot/621c8e652d062c0453b36e6bb6fca5d7

MihuBot commented 2 weeks ago

Top method improvements

-21 (-3.95 % of base) - System.Threading.Tasks.AwaitTaskContinuation:System.Threading.IThreadPoolWorkItem.Execute():this ```diff ; Assembly listing for method System.Threading.Tasks.AwaitTaskContinuation:System.Threading.IThreadPoolWorkItem.Execute():this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; fully interruptible ; No PGO data -; 0 inlinees with PGO data; 5 single block inlinees; 2 inlinees without PGO data +; 0 inlinees with PGO data; 6 single block inlinees; 2 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T00] ( 9, 5.50) ref -> [rbp-0x38] this class-hnd EH-live single-def ; V01 loc0 [V01,T08] ( 7, 2.50) ref -> [rbp-0x40] class-hnd exact EH-live single-def ; V02 loc1 [V02,T01] ( 7, 4 ) ref -> rbx class-hnd exact single-def ; V03 loc2 [V03 ] ( 6, 2 ) struct (16) [rbp-0x20] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op ;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V05 tmp1 [V05,T06] ( 3, 3 ) struct (16) [rbp-0x30] do-not-enreg[SAR] multireg-arg multireg-ret "spilled call-like call argument" -;* V06 tmp2 [V06 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V07 tmp3 [V07,T12] ( 2, 2 ) byref -> r15 single-def "Inlining Arg" -; V08 tmp4 [V08,T13] ( 2, 2 ) ref -> rax class-hnd exact single-def "dup spill" -; V09 tmp5 [V09,T10] ( 4, 2 ) ref -> rax +; V06 tmp2 [V06,T12] ( 2, 2 ) byref -> r15 single-def "Inlining Arg" +; V07 tmp3 [V07,T13] ( 2, 2 ) ref -> rax class-hnd exact single-def "dup spill" +; V08 tmp4 [V08,T10] ( 4, 2 ) ref -> rax +;* V09 tmp5 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ; V10 PSPSym [V10,T15] ( 1, 1 ) long -> [rbp-0x50] do-not-enreg[V] "PSPSym" ; V11 cse0 [V11,T09] ( 3, 2.50) int -> rcx "CSE #01: aggressive" ; V12 cse1 [V12,T14] ( 3, 1.50) int -> rcx "CSE #02: moderate" ; V13 rat0 [V13,T11] ( 3, 2 ) byref -> rax "TLS field access" ; V14 rat1 [V14,T07] ( 3, 3 ) long -> rax "TLS access" ; V15 rat2 [V15,T02] ( 3, 3 ) byref -> rax "ThreadStaticBlockBase access" ; V16 rat3 [V16,T03] ( 3, 3 ) ref -> rax "delegate invoke call" ; V17 rat4 [V17,T04] ( 3, 3 ) ref -> rcx "delegate invoke call" ; V18 rat5 [V18,T05] ( 3, 3 ) ref -> rax "delegate invoke call" ; ; Lcl frame size = 64 G_M26221_IG01: push rbp push r15 push rbx sub rsp, 64 lea rbp, [rsp+0x50] mov qword ptr [rbp-0x50], rsp mov gword ptr [rbp-0x38], rdi ;; size=21 bbWeight=1 PerfScore 5.75 G_M26221_IG02: mov rdi, 0xD1FFAB1E ; global ptr test byte ptr [rdi], 1 je G_M26221_IG15 ;; size=19 bbWeight=1 PerfScore 4.25 G_M26221_IG03: mov rdi, 0xD1FFAB1E ; data for System.Threading.Tasks.TplEventSource:Log mov rdi, gword ptr [rdi] mov gword ptr [rbp-0x40], rdi mov rdi, gword ptr [rbp-0x38] mov rbx, gword ptr [rdi+0x08] mov rax, gword ptr [rbp-0x40] movzx rcx, byte ptr [rax+0x9D] test ecx, ecx jne SHORT G_M26221_IG05 ;; size=40 bbWeight=1 PerfScore 10.50 G_M26221_IG04: test rbx, rbx jne SHORT G_M26221_IG05 mov rax, gword ptr [rdi+0x10] mov rdi, gword ptr [rax+0x08] call [rax+0x18]System.Action:Invoke():this jmp G_M26221_IG13 ;; size=21 bbWeight=0.50 PerfScore 5.12 G_M26221_IG05: vxorps xmm0, xmm0, xmm0 vmovups xmmword ptr [rbp-0x20], xmm0 test ecx, ecx je SHORT G_M26221_IG06 cmp byte ptr [rax+0xB0], 0 je SHORT G_M26221_IG06 mov ecx, dword ptr [rdi+0x18] test ecx, ecx je SHORT G_M26221_IG06 mov edi, ecx mov rcx, 0xD1FFAB1E ; code for System.Threading.Tasks.TplEventSource:CreateGuidForTaskID(int):System.Guid call [rcx]System.Threading.Tasks.TplEventSource:CreateGuidForTaskID(int):System.Guid mov qword ptr [rbp-0x30], rax mov qword ptr [rbp-0x28], rdx mov rdi, qword ptr [rbp-0x30] mov rsi, qword ptr [rbp-0x28] lea rdx, [rbp-0x20] mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:SetCurrentThreadActivityId(System.Guid,byref) call [rax]System.Diagnostics.Tracing.EventSource:SetCurrentThreadActivityId(System.Guid,byref) nop ;; size=76 bbWeight=0.50 PerfScore 10.67 G_M26221_IG06: mov rdi, gword ptr [rbp-0x38] mov rax, gword ptr [rbp-0x40] test rbx, rbx - je G_M26221_IG10 + je SHORT G_M26221_IG10 cmp byte ptr [rbx+0x19], 0 - jne G_M26221_IG10 + jne SHORT G_M26221_IG10 lea r15, bword ptr [rdi+0x10] mov rdi, 0xD1FFAB1E mov rcx, 0xD1FFAB1E ; function address call rcx cmp dword ptr [rax], 3 jle SHORT G_M26221_IG11 mov rdi, gword ptr [rax+0x08] mov rax, bword ptr [rdi+0x18] test rax, rax je SHORT G_M26221_IG11 - ;; size=71 bbWeight=0.50 PerfScore 10.25 + ;; size=63 bbWeight=0.50 PerfScore 10.25 G_M26221_IG07: mov rax, gword ptr [rax+0x10] test rax, rax jne SHORT G_M26221_IG08 mov rax, 0xD1FFAB1E ; code for System.Threading.Thread:InitializeCurrentThread():System.Threading.Thread call [rax]System.Threading.Thread:InitializeCurrentThread():System.Threading.Thread ;; size=21 bbWeight=0.50 PerfScore 3.25 G_M26221_IG08: lea rdi, bword ptr [rax+0x08] mov rsi, rbx call CORINFO_HELP_ASSIGN_REF cmp gword ptr [rbx+0x10], 0 je SHORT G_M26221_IG09 mov rsi, rbx xor rdi, rdi mov rax, 0xD1FFAB1E ; code for System.Threading.ExecutionContext:OnValuesChanged(System.Threading.ExecutionContext,System.Threading.ExecutionContext) call [rax]System.Threading.ExecutionContext:OnValuesChanged(System.Threading.ExecutionContext,System.Threading.ExecutionContext) ;; size=36 bbWeight=0.50 PerfScore 4.75 G_M26221_IG09: - mov rsi, gword ptr [r15] - mov rdi, 0xD1FFAB1E ; const ptr - mov rax, gword ptr [rdi] + mov rax, gword ptr [r15] mov rdi, gword ptr [rax+0x08] - call [rax+0x18]System.Action`1[System.__Canon]:Invoke(System.__Canon):this + call [rax+0x18]System.Action:Invoke():this jmp SHORT G_M26221_IG12 - ;; size=25 bbWeight=0.50 PerfScore 5.62 + ;; size=12 bbWeight=0.50 PerfScore 4.50 G_M26221_IG10: mov rcx, gword ptr [rdi+0x10] mov rdi, gword ptr [rcx+0x08] call [rcx+0x18]System.Action:Invoke():this jmp SHORT G_M26221_IG12 ;; size=13 bbWeight=0.50 PerfScore 4.50 G_M26221_IG11: mov edi, 3 mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED call [rax]CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED jmp SHORT G_M26221_IG07 ;; size=19 bbWeight=0 PerfScore 0.00 G_M26221_IG12: mov rax, gword ptr [rbp-0x40] cmp byte ptr [rax+0x9D], 0 je SHORT G_M26221_IG13 cmp byte ptr [rax+0xB0], 0 je SHORT G_M26221_IG13 mov rdi, gword ptr [rbp-0x38] cmp dword ptr [rdi+0x18], 0 je SHORT G_M26221_IG13 mov rdi, qword ptr [rbp-0x20] mov rsi, qword ptr [rbp-0x18] mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:SetCurrentThreadActivityId(System.Guid) call [rax]System.Diagnostics.Tracing.EventSource:SetCurrentThreadActivityId(System.Guid) ;; size=52 bbWeight=0.50 PerfScore 9.62 G_M26221_IG13: nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M26221_IG14: add rsp, 64 pop rbx pop r15 pop rbp ret ;; size=9 bbWeight=1 PerfScore 2.75 G_M26221_IG15: mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.TplEventSource mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GET_GCSTATIC_BASE call [rax]CORINFO_HELP_GET_GCSTATIC_BASE jmp G_M26221_IG03 ;; size=27 bbWeight=0 PerfScore 0.00 G_M26221_IG16: push rbp push r15 push rbx sub rsp, 16 mov rbp, qword ptr [rdi] mov qword ptr [rsp], rbp lea rbp, [rbp+0x50] ;; size=19 bbWeight=0 PerfScore 0.00 G_M26221_IG17: mov rax, gword ptr [rbp-0x40] cmp byte ptr [rax+0x9D], 0 je SHORT G_M26221_IG18 cmp byte ptr [rax+0xB0], 0 je SHORT G_M26221_IG18 mov rdi, gword ptr [rbp-0x38] cmp dword ptr [rdi+0x18], 0 je SHORT G_M26221_IG18 mov rdi, qword ptr [rbp-0x20] mov rsi, qword ptr [rbp-0x18] mov rax, 0xD1FFAB1E ; code for System.Diagnostics.Tracing.EventSource:SetCurrentThreadActivityId(System.Guid) call [rax]System.Diagnostics.Tracing.EventSource:SetCurrentThreadActivityId(System.Guid) ;; size=52 bbWeight=0 PerfScore 0.00 G_M26221_IG18: nop ;; size=1 bbWeight=0 PerfScore 0.00 G_M26221_IG19: add rsp, 16 pop rbx pop r15 pop rbp ret ;; size=9 bbWeight=0 PerfScore 0.00 -; Total bytes of code 532, prolog size 21, PerfScore 77.29, instruction count 136, allocated bytes for code 532 (MethodHash=510e9992) for method System.Threading.Tasks.AwaitTaskContinuation:System.Threading.IThreadPoolWorkItem.Execute():this (FullOpts) +; Total bytes of code 511, prolog size 21, PerfScore 76.17, instruction count 134, allocated bytes for code 511 (MethodHash=510e9992) for method System.Threading.Tasks.AwaitTaskContinuation:System.Threading.IThreadPoolWorkItem.Execute():this (FullOpts) ; ============================================================ ```
-18 (-1.91 % of base) - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[System.__Canon,System.Nullable`1[int]]:b__0():this ```diff ; Assembly listing for method System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 21 single block inlinees; 6 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T03] ( 13, 28 ) ref -> rbx this class-hnd single-def c__DisplayClass0_0`2[System.__Canon,System.Nullable`1[int]]> -; V01 loc0 [V01,T19] ( 8, 11 ) int -> r15 -;* V02 loc1 [V02,T40] ( 0, 0 ) int -> zero-ref +; V01 loc0 [V01,T18] ( 8, 11 ) int -> r15 +;* V02 loc1 [V02,T39] ( 0, 0 ) int -> zero-ref ; V03 OutArgs [V03 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04,T13] ( 2, 16 ) ref -> r12 class-hnd exact "impAppendStmt" ; V05 tmp2 [V05,T01] ( 6, 48 ) ref -> [rbp-0x38] class-hnd exact spill-single-def "NewObj constructor temp" ;* V06 tmp3 [V06 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" -; V07 tmp4 [V07,T32] ( 2, 4 ) ref -> r14 class-hnd exact single-def "impAppendStmt" -; V08 tmp5 [V08,T18] ( 6, 12 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" +; V07 tmp4 [V07,T31] ( 2, 4 ) ref -> r14 class-hnd exact single-def "impAppendStmt" +; V08 tmp5 [V08,T17] ( 6, 12 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" ;* V09 tmp6 [V09 ] ( 0, 0 ) long -> zero-ref "spilling helperCall" ;* V10 tmp7 [V10 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ; V11 tmp8 [V11,T14] ( 2, 16 ) ref -> [rbp-0x40] class-hnd spill-single-def "Inlining Arg" ; V12 tmp9 [V12,T15] ( 2, 16 ) ref -> [rbp-0x48] class-hnd spill-single-def "Inlining Arg" ; V13 tmp10 [V13,T16] ( 2, 16 ) ref -> [rbp-0x50] class-hnd spill-single-def "Inlining Arg" -;* V14 tmp11 [V14,T25] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" +;* V14 tmp11 [V14,T24] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" ; V15 tmp12 [V15,T05] ( 3, 24 ) ref -> [rbp-0x58] class-hnd spill-single-def "Inlining Arg" ;* V16 tmp13 [V16 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" ;* V17 tmp14 [V17 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" -;* V18 tmp15 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V19 tmp16 [V19,T20] ( 3, 10 ) ref -> [rbp-0x60] class-hnd spill-single-def "Inline return value spill temp" -;* V20 tmp17 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V21 tmp18 [V21,T00] ( 9, 48 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "NewObj constructor temp" -; V22 tmp19 [V22,T17] ( 2, 16 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "Inlining Arg" -;* V23 tmp20 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" -; V24 tmp21 [V24,T23] ( 2, 8 ) ref -> rsi class-hnd exact "dup spill" -; V25 tmp22 [V25,T21] ( 4, 8 ) ref -> rsi -; V26 tmp23 [V26,T10] ( 4, 16 ) ref -> [rbp-0x78] class-hnd exact spill-single-def "NewObj constructor temp" -;* V27 tmp24 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" -; V28 tmp25 [V28,T04] ( 4, 24 ) ref -> r12 class-hnd exact "Inlining Arg" -;* V29 tmp26 [V29 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" -; V30 tmp27 [V30,T24] ( 2, 8 ) ref -> rcx class-hnd exact "dup spill" -; V31 tmp28 [V31,T22] ( 4, 8 ) ref -> rcx -; V32 tmp29 [V32,T11] ( 4, 16 ) ref -> [rbp-0x80] class-hnd exact spill-single-def "NewObj constructor temp" -;* V33 tmp30 [V33 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" -; V34 tmp31 [V34,T33] ( 2, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" -; V35 tmp32 [V35,T34] ( 2, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" -; V36 tmp33 [V36,T35] ( 2, 4 ) ref -> [rbp-0x88] class-hnd spill-single-def "Inlining Arg" -;* V37 tmp34 [V37,T36] ( 0, 0 ) ref -> zero-ref "field V16._source (fldOffset=0x0)" P-INDEP -;* V38 tmp35 [V38 ] ( 0, 0 ) ref -> zero-ref "field V17._source (fldOffset=0x0)" P-INDEP -; V39 tmp36 [V39,T06] ( 3, 24 ) ref -> rdi "arr expr" -; V40 tmp37 [V40,T07] ( 3, 24 ) ref -> rdi "arr expr" -; V41 tmp38 [V41,T26] ( 3, 6 ) ref -> rdi single-def "arr expr" -; V42 tmp39 [V42,T27] ( 3, 6 ) ref -> rdi single-def "arr expr" -; V43 cse0 [V43,T30] ( 2, 4.25) byref -> r13 hoist "CSE #02: moderate" -; V44 rat0 [V44,T02] ( 9, 33 ) long -> r14 "Widened IV V02" -; V45 rat1 [V45,T09] ( 3, 17.60) long -> rdi "Spilling to split statement for tree" -; V46 rat2 [V46,T12] ( 3, 16 ) long -> rsi "runtime lookup" -; V47 rat3 [V47,T08] ( 3, 22.40) long -> rsi "fgMakeTemp is creating a new local variable" -; V48 rat4 [V48,T29] ( 3, 4.40) long -> rdi "Spilling to split statement for tree" -; V49 rat5 [V49,T31] ( 3, 4 ) long -> rsi "runtime lookup" -; V50 rat6 [V50,T28] ( 3, 5.60) long -> rsi "fgMakeTemp is creating a new local variable" -; V51 rat7 [V51,T39] ( 3, 1 ) byref -> r13 "TLS field access" -; V52 rat8 [V52,T38] ( 3, 1.50) long -> rax "TLS access" -; V53 rat9 [V53,T37] ( 3, 1.50) byref -> r13 "ThreadStaticBlockBase access" +; V18 tmp15 [V18,T19] ( 3, 10 ) ref -> [rbp-0x60] class-hnd spill-single-def "Inline return value spill temp" +; V19 tmp16 [V19,T00] ( 9, 48 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "NewObj constructor temp" +;* V20 tmp17 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" +; V21 tmp18 [V21,T22] ( 2, 8 ) ref -> rdx class-hnd exact "dup spill" +; V22 tmp19 [V22,T20] ( 4, 8 ) ref -> rdx +; V23 tmp20 [V23,T10] ( 4, 16 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "NewObj constructor temp" +;* V24 tmp21 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" +; V25 tmp22 [V25,T04] ( 4, 24 ) ref -> r12 class-hnd exact "Inlining Arg" +;* V26 tmp23 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" +; V27 tmp24 [V27,T23] ( 2, 8 ) ref -> rcx class-hnd exact "dup spill" +; V28 tmp25 [V28,T21] ( 4, 8 ) ref -> rcx +; V29 tmp26 [V29,T11] ( 4, 16 ) ref -> [rbp-0x78] class-hnd exact spill-single-def "NewObj constructor temp" +;* V30 tmp27 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" +; V31 tmp28 [V31,T32] ( 2, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" +; V32 tmp29 [V32,T33] ( 2, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" +; V33 tmp30 [V33,T34] ( 2, 4 ) ref -> [rbp-0x80] class-hnd spill-single-def "Inlining Arg" +;* V34 tmp31 [V34,T35] ( 0, 0 ) ref -> zero-ref "field V16._source (fldOffset=0x0)" P-INDEP +;* V35 tmp32 [V35 ] ( 0, 0 ) ref -> zero-ref "field V17._source (fldOffset=0x0)" P-INDEP +; V36 tmp33 [V36,T06] ( 3, 24 ) ref -> rdi "arr expr" +; V37 tmp34 [V37,T07] ( 3, 24 ) ref -> rdi "arr expr" +; V38 tmp35 [V38,T25] ( 3, 6 ) ref -> rdi single-def "arr expr" +; V39 tmp36 [V39,T26] ( 3, 6 ) ref -> rdi single-def "arr expr" +; V40 cse0 [V40,T29] ( 2, 4.25) byref -> r13 hoist "CSE #02: moderate" +; V41 rat0 [V41,T02] ( 9, 33 ) long -> r14 "Widened IV V02" +; V42 rat1 [V42,T09] ( 3, 17.60) long -> rdi "Spilling to split statement for tree" +; V43 rat2 [V43,T12] ( 3, 16 ) long -> rsi "runtime lookup" +; V44 rat3 [V44,T08] ( 3, 22.40) long -> rsi "fgMakeTemp is creating a new local variable" +; V45 rat4 [V45,T28] ( 3, 4.40) long -> rdi "Spilling to split statement for tree" +; V46 rat5 [V46,T30] ( 3, 4 ) long -> rsi "runtime lookup" +; V47 rat6 [V47,T27] ( 3, 5.60) long -> rsi "fgMakeTemp is creating a new local variable" +; V48 rat7 [V48,T38] ( 3, 1 ) byref -> r13 "TLS field access" +; V49 rat8 [V49,T37] ( 3, 1.50) long -> rax "TLS access" +; V50 rat9 [V50,T36] ( 3, 1.50) byref -> r13 "ThreadStaticBlockBase access" ; ; Lcl frame size = 104 G_M19968_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 104 lea rbp, [rsp+0x90] mov qword ptr [rbp-0x30], rdi mov rbx, rdi ;; size=29 bbWeight=1 PerfScore 8.00 G_M19968_IG02: mov rdi, gword ptr [rbx+0x08] mov rdi, gword ptr [rdi+0x08] mov r15d, dword ptr [rdi+0x08] dec r15d xor r14d, r14d test r15d, r15d jle G_M19968_IG15 ;; size=27 bbWeight=1 PerfScore 7.75 G_M19968_IG03: mov rdi, 0xD1FFAB1E mov rax, 0xD1FFAB1E ; function address call rax cmp dword ptr [rax], 9 jle G_M19968_IG20 mov rdi, gword ptr [rax+0x08] mov r13, bword ptr [rdi+0x48] test r13, r13 je G_M19968_IG20 ;; size=48 bbWeight=0.25 PerfScore 3.19 G_M19968_IG04: mov r12, gword ptr [rbx+0x10] mov rax, gword ptr [rbx+0x08] mov gword ptr [rbp-0x40], rax mov rdi, qword ptr [rbx] mov rsi, qword ptr [rdi+0x30] mov rsi, qword ptr [rsi] mov rsi, qword ptr [rsi+0x18] test rsi, rsi je G_M19968_IG19 ;; size=35 bbWeight=4 PerfScore 57.00 G_M19968_IG05: mov rdi, rsi call CORINFO_HELP_NEWSFAST mov gword ptr [rbp-0x38], rax mov rdi, gword ptr [rbp-0x40] mov rdi, gword ptr [rdi+0x08] cmp r14d, dword ptr [rdi+0x08] jae G_M19968_IG23 mov rcx, gword ptr [rdi+8*r14+0x10] mov gword ptr [rbp-0x48], rcx mov rdi, gword ptr [rbx+0x18] cmp r14d, dword ptr [rdi+0x08] jae G_M19968_IG23 mov rdx, gword ptr [rdi+8*r14+0x10] mov gword ptr [rbp-0x50], rdx mov dword ptr [rax+0x10], r14d lea rdi, bword ptr [rax+0x08] mov rsi, r12 call CORINFO_HELP_ASSIGN_REF mov r12, gword ptr [rbp-0x38] lea rdi, bword ptr [r12+0x18] mov rsi, gword ptr [rbp-0x48] call CORINFO_HELP_ASSIGN_REF lea rdi, bword ptr [r12+0x20] mov rsi, gword ptr [rbp-0x50] call CORINFO_HELP_ASSIGN_REF mov rax, gword ptr [rbx+0x20] mov gword ptr [rbp-0x58], rax mov rcx, gword ptr [r13+0x10] mov gword ptr [rbp-0x60], rcx test rax, rax je G_M19968_IG22 mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task call CORINFO_HELP_NEWSFAST mov gword ptr [rbp-0x68], rax - mov rdi, 0xD1FFAB1E ; const ptr - mov rcx, gword ptr [rdi] - mov gword ptr [rbp-0x70], rcx cmp gword ptr [rbp-0x60], 0 - mov rcx, gword ptr [rbp-0x70] je SHORT G_M19968_IG08 - ;; size=182 bbWeight=4 PerfScore 187.00 + ;; size=161 bbWeight=4 PerfScore 170.00 G_M19968_IG06: - mov rdx, gword ptr [rbp-0x60] - mov rsi, gword ptr [rax+0x28] - test rsi, rsi + mov rcx, gword ptr [rbp-0x60] + mov rdx, gword ptr [rax+0x28] + test rdx, rdx jne SHORT G_M19968_IG07 mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task+ContingentProperties call CORINFO_HELP_NEWSFAST - mov rsi, rax - mov gword ptr [rbp-0x78], rsi - mov dword ptr [rsi+0x3C], 1 + mov rdx, rax + mov gword ptr [rbp-0x70], rdx + mov dword ptr [rdx+0x3C], 1 mov rax, gword ptr [rbp-0x68] lea rdi, bword ptr [rax+0x28] - call CORINFO_HELP_ASSIGN_REF - mov rsi, gword ptr [rbp-0x78] - mov rdx, gword ptr [rbp-0x60] - ;; size=63 bbWeight=2 PerfScore 24.50 -G_M19968_IG07: - lea rdi, bword ptr [rsi+0x30] mov rsi, rdx call CORINFO_HELP_ASSIGN_REF - mov rax, gword ptr [rbp-0x68] - mov rcx, gword ptr [rbp-0x70] - ;; size=20 bbWeight=2 PerfScore 7.50 -G_M19968_IG08: - mov rdi, gword ptr [rbp-0x58] - mov gword ptr [rsp], rdi - mov rdi, rax + mov rdx, gword ptr [rbp-0x70] + mov rcx, gword ptr [rbp-0x60] + ;; size=66 bbWeight=2 PerfScore 25.00 +G_M19968_IG07: + lea rdi, bword ptr [rdx+0x30] mov rsi, rcx + call CORINFO_HELP_ASSIGN_REF + mov rax, gword ptr [rbp-0x68] + ;; size=16 bbWeight=2 PerfScore 5.50 +G_M19968_IG08: + mov rsi, gword ptr [rbp-0x58] + mov gword ptr [rsp], rsi + mov rsi, 0xD1FFAB1E ; const ptr + mov rsi, gword ptr [rsi] + mov rdi, rax mov rdx, r12 xor rcx, rcx mov r8d, 5 mov r9d, 0x2000 mov r10, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this call [r10]System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this mov rax, 0xD1FFAB1E ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext call [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext mov r12, rax test r12, r12 je SHORT G_M19968_IG13 - ;; size=64 bbWeight=4 PerfScore 46.00 + ;; size=74 bbWeight=4 PerfScore 54.00 G_M19968_IG09: mov rdi, 0xD1FFAB1E ; global ptr test byte ptr [rdi], 1 je G_M19968_IG21 ;; size=19 bbWeight=2 PerfScore 8.50 G_M19968_IG10: mov rdi, 0xD1FFAB1E ; data for System.Threading.ExecutionContext:Default cmp r12, gword ptr [rdi] je SHORT G_M19968_IG12 mov rax, gword ptr [rbp-0x68] mov rcx, gword ptr [rax+0x28] test rcx, rcx jne SHORT G_M19968_IG11 mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task+ContingentProperties call CORINFO_HELP_NEWSFAST mov rcx, rax - mov gword ptr [rbp-0x80], rcx + mov gword ptr [rbp-0x78], rcx mov dword ptr [rcx+0x3C], 1 mov rax, gword ptr [rbp-0x68] lea rdi, bword ptr [rax+0x28] mov rsi, rcx call CORINFO_HELP_ASSIGN_REF - mov rcx, gword ptr [rbp-0x80] + mov rcx, gword ptr [rbp-0x78] ;; size=77 bbWeight=2 PerfScore 31.50 G_M19968_IG11: lea rdi, bword ptr [rcx+0x08] mov rsi, r12 call CORINFO_HELP_ASSIGN_REF mov r12, gword ptr [rbp-0x68] jmp SHORT G_M19968_IG14 ;; size=18 bbWeight=2 PerfScore 9.50 G_M19968_IG12: mov r12, gword ptr [rbp-0x68] jmp SHORT G_M19968_IG14 ;; size=6 bbWeight=1 PerfScore 3.00 G_M19968_IG13: mov r12, gword ptr [rbp-0x68] or dword ptr [r12+0x34], 0xD1FFAB1E ;; size=13 bbWeight=2 PerfScore 8.00 G_M19968_IG14: mov rdi, r12 xor esi, esi mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this call [rax]System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this inc r14d cmp r14d, r15d jl G_M19968_IG04 ;; size=29 bbWeight=4 PerfScore 21.00 G_M19968_IG15: mov r14, gword ptr [rbx+0x10] mov r13, gword ptr [rbx+0x08] mov rdi, qword ptr [rbx] mov rsi, qword ptr [rdi+0x30] mov rsi, qword ptr [rsi] mov rsi, qword ptr [rsi+0x18] test rsi, rsi je G_M19968_IG18 ;; size=31 bbWeight=1 PerfScore 13.25 G_M19968_IG16: mov rdi, rsi call CORINFO_HELP_NEWSFAST mov r12, rax mov rdi, gword ptr [r13+0x08] cmp r15d, dword ptr [rdi+0x08] jae G_M19968_IG23 mov esi, r15d mov r13, gword ptr [rdi+8*rsi+0x10] mov rdi, gword ptr [rbx+0x18] cmp r15d, dword ptr [rdi+0x08] jae G_M19968_IG23 mov esi, r15d mov rax, gword ptr [rdi+8*rsi+0x10] - mov gword ptr [rbp-0x88], rax + mov gword ptr [rbp-0x80], rax mov dword ptr [r12+0x10], r15d lea rdi, bword ptr [r12+0x08] mov rsi, r14 call CORINFO_HELP_ASSIGN_REF lea rdi, bword ptr [r12+0x18] mov rsi, r13 call CORINFO_HELP_ASSIGN_REF lea rdi, bword ptr [r12+0x20] - mov rsi, gword ptr [rbp-0x88] + mov rsi, gword ptr [rbp-0x80] call CORINFO_HELP_ASSIGN_REF mov rsi, gword ptr [rbx+0x20] mov rdi, r12 mov rax, 0xD1FFAB1E ; code for System.Linq.Parallel.QueryTask:RunSynchronously(System.Threading.Tasks.TaskScheduler):System.Threading.Tasks.Task:this call [rax]System.Linq.Parallel.QueryTask:RunSynchronously(System.Threading.Tasks.TaskScheduler):System.Threading.Tasks.Task:this nop - ;; size=130 bbWeight=1 PerfScore 31.75 + ;; size=124 bbWeight=1 PerfScore 31.75 G_M19968_IG17: add rsp, 104 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 G_M19968_IG18: mov rsi, 0xD1FFAB1E ; global ptr mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS call [rax]CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rsi, rax jmp G_M19968_IG16 ;; size=30 bbWeight=0.20 PerfScore 1.15 G_M19968_IG19: mov rsi, 0xD1FFAB1E ; global ptr mov rcx, 0xD1FFAB1E ; code for CORINFO_HELP_RUNTIMEHANDLE_CLASS call [rcx]CORINFO_HELP_RUNTIMEHANDLE_CLASS mov rsi, rax jmp G_M19968_IG05 ;; size=30 bbWeight=0.80 PerfScore 4.60 G_M19968_IG20: mov edi, 9 mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED call [rax]CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED mov r13, rax jmp G_M19968_IG04 ;; size=25 bbWeight=0 PerfScore 0.00 G_M19968_IG21: mov rdi, 0xD1FFAB1E ; System.Threading.ExecutionContext mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GET_GCSTATIC_BASE call [rax]CORINFO_HELP_GET_GCSTATIC_BASE jmp G_M19968_IG10 ;; size=27 bbWeight=0 PerfScore 0.00 G_M19968_IG22: mov edi, 47 mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int) call [rax]System.ThrowHelper:ThrowArgumentNullException(int) int3 ;; size=18 bbWeight=0 PerfScore 0.00 G_M19968_IG23: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 942, prolog size 26, PerfScore 477.44, instruction count 215, allocated bytes for code 942 (MethodHash=98a6b1ff) for method System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) +; Total bytes of code 924, prolog size 26, PerfScore 466.94, instruction count 212, allocated bytes for code 924 (MethodHash=98a6b1ff) for method System.Linq.Parallel.SpoolingTask+<>c__DisplayClass0_0`2[System.__Canon,System.Nullable`1[int]]:b__0():this (FullOpts) ; ============================================================ ```
-15 (-1.97 % of base) - System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[double,System.Nullable`1[int]]:b__0():this ```diff ; Assembly listing for method System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[double,System.Nullable`1[int]]:b__0():this (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code ; rbp based frame ; partially interruptible ; No PGO data ; 0 inlinees with PGO data; 21 single block inlinees; 6 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T06] ( 9, 18 ) ref -> rbx this class-hnd single-def c__DisplayClass2_0`2[double,System.Nullable`1[int]]> -; V01 loc0 [V01,T15] ( 6, 9 ) int -> r15 -;* V02 loc1 [V02,T30] ( 0, 0 ) int -> zero-ref +; V01 loc0 [V01,T14] ( 6, 9 ) int -> r15 +;* V02 loc1 [V02,T29] ( 0, 0 ) int -> zero-ref ; V03 OutArgs [V03 ] ( 1, 1 ) struct ( 8) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V04 tmp1 [V04,T09] ( 2, 16 ) ref -> r12 class-hnd exact "impAppendStmt" ; V05 tmp2 [V05,T01] ( 5, 40 ) ref -> [rbp-0x30] class-hnd exact spill-single-def "NewObj constructor temp" -; V06 tmp3 [V06,T23] ( 2, 4 ) ref -> r14 class-hnd exact single-def "impAppendStmt" -; V07 tmp4 [V07,T13] ( 5, 10 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" +; V06 tmp3 [V06,T22] ( 2, 4 ) ref -> r14 class-hnd exact single-def "impAppendStmt" +; V07 tmp4 [V07,T12] ( 5, 10 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" ;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ; V09 tmp6 [V09,T10] ( 2, 16 ) ref -> [rbp-0x38] class-hnd spill-single-def "Inlining Arg" ; V10 tmp7 [V10,T11] ( 2, 16 ) ref -> [rbp-0x40] class-hnd spill-single-def "Inlining Arg" -;* V11 tmp8 [V11,T20] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" +;* V11 tmp8 [V11,T19] ( 0, 0 ) ref -> zero-ref class-hnd exact "impAppendStmt" ; V12 tmp9 [V12,T04] ( 3, 24 ) ref -> [rbp-0x48] class-hnd spill-single-def "Inlining Arg" ;* V13 tmp10 [V13 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" ;* V14 tmp11 [V14 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" -;* V15 tmp12 [V15 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V16 tmp13 [V16,T14] ( 3, 10 ) ref -> [rbp-0x50] class-hnd spill-single-def "Inline return value spill temp" -;* V17 tmp14 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V18 tmp15 [V18,T00] ( 9, 48 ) ref -> [rbp-0x58] class-hnd exact spill-single-def "NewObj constructor temp" -; V19 tmp16 [V19,T12] ( 2, 16 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "Inlining Arg" -;* V20 tmp17 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" -; V21 tmp18 [V21,T18] ( 2, 8 ) ref -> rsi class-hnd exact "dup spill" -; V22 tmp19 [V22,T16] ( 4, 8 ) ref -> rsi -; V23 tmp20 [V23,T07] ( 4, 16 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "NewObj constructor temp" -;* V24 tmp21 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" -; V25 tmp22 [V25,T03] ( 4, 24 ) ref -> r12 class-hnd exact "Inlining Arg" -;* V26 tmp23 [V26 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" -; V27 tmp24 [V27,T19] ( 2, 8 ) ref -> rcx class-hnd exact "dup spill" -; V28 tmp25 [V28,T17] ( 4, 8 ) ref -> rcx -; V29 tmp26 [V29,T08] ( 4, 16 ) ref -> [rbp-0x70] class-hnd exact spill-single-def "NewObj constructor temp" -;* V30 tmp27 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" -; V31 tmp28 [V31,T24] ( 2, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" -; V32 tmp29 [V32,T25] ( 2, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" -;* V33 tmp30 [V33,T26] ( 0, 0 ) ref -> zero-ref "field V13._source (fldOffset=0x0)" P-INDEP -;* V34 tmp31 [V34 ] ( 0, 0 ) ref -> zero-ref "field V14._source (fldOffset=0x0)" P-INDEP -; V35 tmp32 [V35,T05] ( 3, 24 ) ref -> rdi "arr expr" -; V36 tmp33 [V36,T21] ( 3, 6 ) ref -> rdi single-def "arr expr" -; V37 cse0 [V37,T22] ( 2, 4.25) byref -> r13 hoist "CSE #01: moderate" -; V38 rat0 [V38,T02] ( 7, 25 ) long -> r14 "Widened IV V02" -; V39 rat1 [V39,T29] ( 3, 1 ) byref -> r13 "TLS field access" -; V40 rat2 [V40,T28] ( 3, 1.50) long -> rax "TLS access" -; V41 rat3 [V41,T27] ( 3, 1.50) byref -> r13 "ThreadStaticBlockBase access" +; V15 tmp12 [V15,T13] ( 3, 10 ) ref -> [rbp-0x50] class-hnd spill-single-def "Inline return value spill temp" +; V16 tmp13 [V16,T00] ( 9, 48 ) ref -> [rbp-0x58] class-hnd exact spill-single-def "NewObj constructor temp" +;* V17 tmp14 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" +; V18 tmp15 [V18,T17] ( 2, 8 ) ref -> rdx class-hnd exact "dup spill" +; V19 tmp16 [V19,T15] ( 4, 8 ) ref -> rdx +; V20 tmp17 [V20,T07] ( 4, 16 ) ref -> [rbp-0x60] class-hnd exact spill-single-def "NewObj constructor temp" +;* V21 tmp18 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" +; V22 tmp19 [V22,T03] ( 4, 24 ) ref -> r12 class-hnd exact "Inlining Arg" +;* V23 tmp20 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inline return value spill temp" +; V24 tmp21 [V24,T18] ( 2, 8 ) ref -> rcx class-hnd exact "dup spill" +; V25 tmp22 [V25,T16] ( 4, 8 ) ref -> rcx +; V26 tmp23 [V26,T08] ( 4, 16 ) ref -> [rbp-0x68] class-hnd exact spill-single-def "NewObj constructor temp" +;* V27 tmp24 [V27 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inline stloc first use temp" +; V28 tmp25 [V28,T23] ( 2, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" +; V29 tmp26 [V29,T24] ( 2, 4 ) ref -> r13 class-hnd single-def "Inlining Arg" +;* V30 tmp27 [V30,T25] ( 0, 0 ) ref -> zero-ref "field V13._source (fldOffset=0x0)" P-INDEP +;* V31 tmp28 [V31 ] ( 0, 0 ) ref -> zero-ref "field V14._source (fldOffset=0x0)" P-INDEP +; V32 tmp29 [V32,T05] ( 3, 24 ) ref -> rdi "arr expr" +; V33 tmp30 [V33,T20] ( 3, 6 ) ref -> rdi single-def "arr expr" +; V34 cse0 [V34,T21] ( 2, 4.25) byref -> r13 hoist "CSE #01: moderate" +; V35 rat0 [V35,T02] ( 7, 25 ) long -> r14 "Widened IV V02" +; V36 rat1 [V36,T28] ( 3, 1 ) byref -> r13 "TLS field access" +; V37 rat2 [V37,T27] ( 3, 1.50) long -> rax "TLS access" +; V38 rat3 [V38,T26] ( 3, 1.50) byref -> r13 "ThreadStaticBlockBase access" ; -; Lcl frame size = 88 +; Lcl frame size = 72 G_M29136_IG01: push rbp push r15 push r14 push r13 push r12 push rbx - sub rsp, 88 - lea rbp, [rsp+0x80] + sub rsp, 72 + lea rbp, [rsp+0x70] mov rbx, rdi - ;; size=25 bbWeight=1 PerfScore 7.00 + ;; size=22 bbWeight=1 PerfScore 7.00 G_M29136_IG02: mov rdi, gword ptr [rbx+0x08] mov rdi, gword ptr [rdi+0x08] mov r15d, dword ptr [rdi+0x08] dec r15d xor r14d, r14d test r15d, r15d jle G_M29136_IG14 ;; size=27 bbWeight=1 PerfScore 7.75 G_M29136_IG03: mov rdi, 0xD1FFAB1E mov rax, 0xD1FFAB1E ; function address call rax cmp dword ptr [rax], 9 jle G_M29136_IG16 mov rdi, gword ptr [rax+0x08] mov r13, bword ptr [rdi+0x48] test r13, r13 je G_M29136_IG16 ;; size=48 bbWeight=0.25 PerfScore 3.19 G_M29136_IG04: mov r12, gword ptr [rbx+0x10] mov rax, gword ptr [rbx+0x08] mov gword ptr [rbp-0x38], rax mov rdi, 0xD1FFAB1E ; System.Linq.Parallel.ForAllSpoolingTask`2[double,System.Nullable`1[int]] call CORINFO_HELP_NEWSFAST mov gword ptr [rbp-0x30], rax mov rdi, gword ptr [rbp-0x38] mov rdi, gword ptr [rdi+0x08] cmp r14d, dword ptr [rdi+0x08] jae G_M29136_IG19 mov rcx, gword ptr [rdi+8*r14+0x10] mov gword ptr [rbp-0x40], rcx mov dword ptr [rax+0x10], r14d lea rdi, bword ptr [rax+0x08] mov rsi, r12 call CORINFO_HELP_ASSIGN_REF mov r12, gword ptr [rbp-0x30] lea rdi, bword ptr [r12+0x18] mov rsi, gword ptr [rbp-0x40] call CORINFO_HELP_ASSIGN_REF mov rax, gword ptr [rbx+0x18] mov gword ptr [rbp-0x48], rax mov rcx, gword ptr [r13+0x10] mov gword ptr [rbp-0x50], rcx test rax, rax je G_M29136_IG18 mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task call CORINFO_HELP_NEWSFAST mov gword ptr [rbp-0x58], rax - mov rdi, 0xD1FFAB1E ; const ptr - mov rcx, gword ptr [rdi] - mov gword ptr [rbp-0x60], rcx cmp gword ptr [rbp-0x50], 0 - mov rcx, gword ptr [rbp-0x60] je SHORT G_M29136_IG07 - ;; size=164 bbWeight=4 PerfScore 161.00 + ;; size=143 bbWeight=4 PerfScore 144.00 G_M29136_IG05: - mov rdx, gword ptr [rbp-0x50] - mov rsi, gword ptr [rax+0x28] - test rsi, rsi + mov rcx, gword ptr [rbp-0x50] + mov rdx, gword ptr [rax+0x28] + test rdx, rdx jne SHORT G_M29136_IG06 mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task+ContingentProperties call CORINFO_HELP_NEWSFAST - mov rsi, rax - mov gword ptr [rbp-0x68], rsi - mov dword ptr [rsi+0x3C], 1 + mov rdx, rax + mov gword ptr [rbp-0x60], rdx + mov dword ptr [rdx+0x3C], 1 mov rax, gword ptr [rbp-0x58] lea rdi, bword ptr [rax+0x28] - call CORINFO_HELP_ASSIGN_REF - mov rsi, gword ptr [rbp-0x68] - mov rdx, gword ptr [rbp-0x50] - ;; size=63 bbWeight=2 PerfScore 24.50 -G_M29136_IG06: - lea rdi, bword ptr [rsi+0x30] mov rsi, rdx call CORINFO_HELP_ASSIGN_REF - mov rax, gword ptr [rbp-0x58] - mov rcx, gword ptr [rbp-0x60] - ;; size=20 bbWeight=2 PerfScore 7.50 -G_M29136_IG07: - mov rdi, gword ptr [rbp-0x48] - mov gword ptr [rsp], rdi - mov rdi, rax + mov rdx, gword ptr [rbp-0x60] + mov rcx, gword ptr [rbp-0x50] + ;; size=66 bbWeight=2 PerfScore 25.00 +G_M29136_IG06: + lea rdi, bword ptr [rdx+0x30] mov rsi, rcx + call CORINFO_HELP_ASSIGN_REF + mov rax, gword ptr [rbp-0x58] + ;; size=16 bbWeight=2 PerfScore 5.50 +G_M29136_IG07: + mov rsi, gword ptr [rbp-0x48] + mov gword ptr [rsp], rsi + mov rsi, 0xD1FFAB1E ; const ptr + mov rsi, gword ptr [rsi] + mov rdi, rax mov rdx, r12 xor rcx, rcx mov r8d, 5 mov r9d, 0x2000 mov r10, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this call [r10]System.Threading.Tasks.Task:TaskConstructorCore(System.Delegate,System.Object,System.Threading.CancellationToken,int,int,System.Threading.Tasks.TaskScheduler):this mov rax, 0xD1FFAB1E ; code for System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext call [rax]System.Threading.ExecutionContext:Capture():System.Threading.ExecutionContext mov r12, rax test r12, r12 je SHORT G_M29136_IG12 - ;; size=64 bbWeight=4 PerfScore 46.00 + ;; size=74 bbWeight=4 PerfScore 54.00 G_M29136_IG08: mov rdi, 0xD1FFAB1E ; global ptr test byte ptr [rdi], 1 je G_M29136_IG17 ;; size=19 bbWeight=2 PerfScore 8.50 G_M29136_IG09: mov rdi, 0xD1FFAB1E ; data for System.Threading.ExecutionContext:Default cmp r12, gword ptr [rdi] je SHORT G_M29136_IG11 mov rax, gword ptr [rbp-0x58] mov rcx, gword ptr [rax+0x28] test rcx, rcx jne SHORT G_M29136_IG10 mov rdi, 0xD1FFAB1E ; System.Threading.Tasks.Task+ContingentProperties call CORINFO_HELP_NEWSFAST mov rcx, rax - mov gword ptr [rbp-0x70], rcx + mov gword ptr [rbp-0x68], rcx mov dword ptr [rcx+0x3C], 1 mov rax, gword ptr [rbp-0x58] lea rdi, bword ptr [rax+0x28] mov rsi, rcx call CORINFO_HELP_ASSIGN_REF - mov rcx, gword ptr [rbp-0x70] + mov rcx, gword ptr [rbp-0x68] ;; size=77 bbWeight=2 PerfScore 31.50 G_M29136_IG10: lea rdi, bword ptr [rcx+0x08] mov rsi, r12 call CORINFO_HELP_ASSIGN_REF mov r12, gword ptr [rbp-0x58] jmp SHORT G_M29136_IG13 ;; size=18 bbWeight=2 PerfScore 9.50 G_M29136_IG11: mov r12, gword ptr [rbp-0x58] jmp SHORT G_M29136_IG13 ;; size=6 bbWeight=1 PerfScore 3.00 G_M29136_IG12: mov r12, gword ptr [rbp-0x58] or dword ptr [r12+0x34], 0xD1FFAB1E ;; size=13 bbWeight=2 PerfScore 8.00 G_M29136_IG13: mov rdi, r12 xor esi, esi mov rax, 0xD1FFAB1E ; code for System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this call [rax]System.Threading.Tasks.Task:ScheduleAndStart(ubyte):this inc r14d cmp r14d, r15d jl G_M29136_IG04 ;; size=29 bbWeight=4 PerfScore 21.00 G_M29136_IG14: mov r14, gword ptr [rbx+0x10] mov r13, gword ptr [rbx+0x08] mov rdi, 0xD1FFAB1E ; System.Linq.Parallel.ForAllSpoolingTask`2[double,System.Nullable`1[int]] call CORINFO_HELP_NEWSFAST mov r12, rax mov rdi, gword ptr [r13+0x08] cmp r15d, dword ptr [rdi+0x08] jae G_M29136_IG19 mov esi, r15d mov r13, gword ptr [rdi+8*rsi+0x10] mov dword ptr [r12+0x10], r15d lea rdi, bword ptr [r12+0x08] mov rsi, r14 call CORINFO_HELP_ASSIGN_REF lea rdi, bword ptr [r12+0x18] mov rsi, r13 call CORINFO_HELP_ASSIGN_REF mov rsi, gword ptr [rbx+0x18] mov rdi, r12 mov rax, 0xD1FFAB1E ; code for System.Linq.Parallel.QueryTask:RunSynchronously(System.Threading.Tasks.TaskScheduler):System.Threading.Tasks.Task:this call [rax]System.Linq.Parallel.QueryTask:RunSynchronously(System.Threading.Tasks.TaskScheduler):System.Threading.Tasks.Task:this nop ;; size=99 bbWeight=1 PerfScore 24.00 G_M29136_IG15: - add rsp, 88 + add rsp, 72 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 G_M29136_IG16: mov edi, 9 mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED call [rax]CORINFO_HELP_GETDYNAMIC_GCTHREADSTATIC_BASE_NOCTOR_OPTIMIZED mov r13, rax jmp G_M29136_IG04 ;; size=25 bbWeight=0 PerfScore 0.00 G_M29136_IG17: mov rdi, 0xD1FFAB1E ; System.Threading.ExecutionContext mov rax, 0xD1FFAB1E ; code for CORINFO_HELP_GET_GCSTATIC_BASE call [rax]CORINFO_HELP_GET_GCSTATIC_BASE jmp G_M29136_IG09 ;; size=27 bbWeight=0 PerfScore 0.00 G_M29136_IG18: mov edi, 47 mov rax, 0xD1FFAB1E ; code for System.ThrowHelper:ThrowArgumentNullException(int) call [rax]System.ThrowHelper:ThrowArgumentNullException(int) int3 ;; size=18 bbWeight=0 PerfScore 0.00 G_M29136_IG19: call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00 -; Total bytes of code 763, prolog size 22, PerfScore 366.69, instruction count 175, allocated bytes for code 763 (MethodHash=12228e2f) for method System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[double,System.Nullable`1[int]]:b__0():this (FullOpts) +; Total bytes of code 748, prolog size 19, PerfScore 356.19, instruction count 172, allocated bytes for code 748 (MethodHash=12228e2f) for method System.Linq.Parallel.SpoolingTask+<>c__DisplayClass2_0`2[double,System.Nullable`1[int]]:b__0():this (FullOpts) ; ============================================================ ```

Note: some changes were skipped as they were too large to fit into a comment.

Larger list of diffs: https://gist.github.com/MihuBot/68306e19133d7088a6ebc870e23e2979

MihuBot commented 2 weeks ago

@MichalPetryka