MihuBot / runtime-utils

0 stars 0 forks source link

[X64] [MichalPetryka] Optimize equality operators #241

Open MihuBot opened 7 months ago

MihuBot commented 7 months ago

Build completed in 2 hours 8 minutes. https://github.com/dotnet/runtime/pull/98196

CoreLib diffs

Found 2 files with textual diffs.

Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 6824581
Total bytes of diff: 6824222
Total bytes of delta: -359 (-0.01 % of base)
Total relative delta: -0.04
    diff is an improvement.
    relative diff is an improvement.

Top file improvements (bytes):
        -359 : System.Private.CoreLib.dasm (-0.01 % of base)

1 total files with Code Size differences (1 improved, 0 regressed), 0 unchanged.

Top method regressions (bytes):
          21 (77.78 % of base) : System.Private.CoreLib.dasm - System.Runtime.Versioning.FrameworkName:op_Equality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName):ubyte (FullOpts)
          16 (0.36 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:InvokeMember(System.String,int,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]):System.Object:this (FullOpts)
          15 (29.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Versioning.FrameworkName:op_Inequality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName):ubyte (FullOpts)
          13 (2.50 % of base) : System.Private.CoreLib.dasm - System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:ClearCache(System.Type[]) (FullOpts)
          12 (8.33 % of base) : System.Private.CoreLib.dasm - System.Attribute:GetParentDefinition(System.Reflection.EventInfo):System.Reflection.EventInfo (FullOpts)
          12 (33.33 % of base) : System.Private.CoreLib.dasm - System.Globalization.SortVersion:op_Equality(System.Globalization.SortVersion,System.Globalization.SortVersion):ubyte (FullOpts)
          10 (1.61 % of base) : System.Private.CoreLib.dasm - System.Resources.ManifestBasedResourceGroveler:GrovelForResourceSet(System.Globalization.CultureInfo,System.Collections.Generic.Dictionary`2[System.String,System.Resources.ResourceSet],ubyte,ubyte):System.Resources.ResourceSet:this (FullOpts)
           9 (0.49 % of base) : System.Private.CoreLib.dasm - System.RuntimeType+RuntimeTypeCache:GetGenericMethodInfo(long):System.Reflection.MethodInfo:this (FullOpts)
           8 (32.00 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.StackFrameExtensions:HasMethod(System.Diagnostics.StackFrame):ubyte (FullOpts)
           8 (0.38 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (FullOpts)
           8 (72.73 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimePropertyInfo:get_CanRead():ubyte:this (FullOpts)
           8 (72.73 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimePropertyInfo:get_CanWrite():ubyte:this (FullOpts)
           8 (12.12 % of base) : System.Private.CoreLib.dasm - System.Type:get_IsGenericMethodParameter():ubyte:this (FullOpts)
           8 (15.69 % of base) : System.Private.CoreLib.dasm - System.Version:TryParse(System.ReadOnlySpan`1[ushort],byref):ubyte (FullOpts)
           8 (9.64 % of base) : System.Private.CoreLib.dasm - System.Version:TryParse(System.String,byref):ubyte (FullOpts)
           6 (10.00 % of base) : System.Private.CoreLib.dasm - System.Globalization.SortVersion:op_Inequality(System.Globalization.SortVersion,System.Globalization.SortVersion):ubyte (FullOpts)
           5 (45.45 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimePropertyBuilder:get_CanRead():ubyte:this (FullOpts)
           5 (45.45 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimePropertyBuilder:get_CanWrite():ubyte:this (FullOpts)
           4 (3.88 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimePropertyInfo:GetValue(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts)
           4 (1.53 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:EnterContextualReflection(System.Reflection.Assembly):System.Runtime.Loader.AssemblyLoadContext+ContextualReflectionScope (FullOpts)
           4 (0.45 % of base) : System.Private.CoreLib.dasm - System.StartupHookProvider:CallStartupHook(System.StartupHookProvider+StartupHookNameOrPath) (FullOpts)
           3 (4.17 % of base) : System.Private.CoreLib.dasm - System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:SkipAssembly(System.Reflection.Assembly):ubyte (FullOpts)
           3 (0.42 % of base) : System.Private.CoreLib.dasm - System.Resources.ManifestBasedResourceGroveler:GetNeutralResourcesLanguage(System.Reflection.Assembly,byref):System.Globalization.CultureInfo (FullOpts)
           2 (1.35 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimeParameterInfo:GetRuntimeModule():System.Reflection.RuntimeModule:this (FullOpts)
           1 (0.15 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.Reflection.RuntimeMethodInfo,System.RuntimeType,ubyte):System.Object[] (FullOpts)

Top method improvements (bytes):
         -39 (-1.78 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (FullOpts)
         -37 (-10.85 % of base) : System.Private.CoreLib.dasm - System.Resources.ManifestBasedResourceGroveler:HandleResourceStreamMissing(System.String):this (FullOpts)
         -29 (-6.95 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Contracts.Contract:AssertMustUseRewriter(int,System.String) (FullOpts)
         -20 (-1.94 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.LocalBuilder):this (FullOpts)
         -18 (-9.28 % of base) : System.Private.CoreLib.dasm - System.Attribute:GetParentDefinition(System.Reflection.ParameterInfo):System.Reflection.ParameterInfo (FullOpts)
         -18 (-3.51 % of base) : System.Private.CoreLib.dasm - System.Reflection.TypeNameParser:GetTypeFromDefaultAssemblies(System.String,System.ReadOnlySpan`1[System.String]):System.Type:this (FullOpts)
         -15 (-9.68 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeNamedArgument:Equals(System.Object):ubyte:this (FullOpts)
         -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[double]:Equals(System.Object):ubyte:this (FullOpts)
         -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[int]:Equals(System.Object):ubyte:this (FullOpts)
         -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[long]:Equals(System.Object):ubyte:this (FullOpts)
         -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[short]:Equals(System.Object):ubyte:this (FullOpts)
         -13 (-8.61 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[System.__Canon]:Equals(System.Object):ubyte:this (FullOpts)
         -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[System.Nullable`1[int]]:Equals(System.Object):ubyte:this (FullOpts)
         -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[System.Numerics.Vector`1[float]]:Equals(System.Object):ubyte:this (FullOpts)
         -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[ubyte]:Equals(System.Object):ubyte:this (FullOpts)
         -12 (-12.00 % of base) : System.Private.CoreLib.dasm - System.Delegate:RemoveAll(System.Delegate,System.Delegate):System.Delegate (FullOpts)
         -12 (-10.62 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeNamedArgument:Equals(System.Reflection.CustomAttributeNamedArgument):ubyte:this (FullOpts)
         -12 (-12.37 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeNamedArgument:op_Equality(System.Reflection.CustomAttributeNamedArgument,System.Reflection.CustomAttributeNamedArgument):ubyte (FullOpts)
         -12 (-11.43 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeNamedArgument:op_Inequality(System.Reflection.CustomAttributeNamedArgument,System.Reflection.CustomAttributeNamedArgument):ubyte (FullOpts)
         -10 (-17.54 % of base) : System.Private.CoreLib.dasm - System.Delegate:op_Inequality(System.Delegate,System.Delegate):ubyte (FullOpts)
         -10 (-4.65 % of base) : System.Private.CoreLib.dasm - System.Globalization.CompareInfo:GetCompareInfo(int,System.Reflection.Assembly):System.Globalization.CompareInfo (FullOpts)
         -10 (-4.17 % of base) : System.Private.CoreLib.dasm - System.Globalization.CompareInfo:GetCompareInfo(System.String,System.Reflection.Assembly):System.Globalization.CompareInfo (FullOpts)
         -10 (-12.50 % of base) : System.Private.CoreLib.dasm - System.ModuleHandle:Equals(System.Object):ubyte:this (FullOpts)
          -8 (-17.02 % of base) : System.Private.CoreLib.dasm - System.ModuleHandle:Equals(System.ModuleHandle):ubyte:this (FullOpts)
          -8 (-12.90 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:GetRuntimeAssembly(System.Reflection.Assembly):System.Reflection.RuntimeAssembly (FullOpts)
          -7 (-16.67 % of base) : System.Private.CoreLib.dasm - System.ModuleHandle:op_Equality(System.ModuleHandle,System.ModuleHandle):ubyte (FullOpts)
          -7 (-14.00 % of base) : System.Private.CoreLib.dasm - System.ModuleHandle:op_Inequality(System.ModuleHandle,System.ModuleHandle):ubyte (FullOpts)
          -7 (-3.59 % of base) : System.Private.CoreLib.dasm - System.Runtime.Versioning.FrameworkName:Equals(System.Runtime.Versioning.FrameworkName):ubyte:this (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Delegate:op_Equality(System.Delegate,System.Delegate):ubyte (FullOpts)
          -6 (-0.52 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.StackFrameHelper:InitializeSourceInfo(int,ubyte,System.Exception):this (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.Assembly:op_Equality(System.Reflection.Assembly,System.Reflection.Assembly):ubyte (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.Assembly:op_Inequality(System.Reflection.Assembly,System.Reflection.Assembly):ubyte (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.ConstructorInfo:op_Equality(System.Reflection.ConstructorInfo,System.Reflection.ConstructorInfo):ubyte (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.ConstructorInfo:op_Inequality(System.Reflection.ConstructorInfo,System.Reflection.ConstructorInfo):ubyte (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.EventInfo:op_Equality(System.Reflection.EventInfo,System.Reflection.EventInfo):ubyte (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.EventInfo:op_Inequality(System.Reflection.EventInfo,System.Reflection.EventInfo):ubyte (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.FieldInfo:op_Equality(System.Reflection.FieldInfo,System.Reflection.FieldInfo):ubyte (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.FieldInfo:op_Inequality(System.Reflection.FieldInfo,System.Reflection.FieldInfo):ubyte (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.MemberInfo:op_Equality(System.Reflection.MemberInfo,System.Reflection.MemberInfo):ubyte (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.MemberInfo:op_Inequality(System.Reflection.MemberInfo,System.Reflection.MemberInfo):ubyte (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.MethodBase:op_Equality(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.MethodBase:op_Inequality(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.MethodInfo:op_Equality(System.Reflection.MethodInfo,System.Reflection.MethodInfo):ubyte (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.MethodInfo:op_Inequality(System.Reflection.MethodInfo,System.Reflection.MethodInfo):ubyte (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.Module:op_Equality(System.Reflection.Module,System.Reflection.Module):ubyte (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.Module:op_Inequality(System.Reflection.Module,System.Reflection.Module):ubyte (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.PropertyInfo:op_Equality(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo):ubyte (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.PropertyInfo:op_Inequality(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo):ubyte (FullOpts)
          -6 (-11.11 % of base) : System.Private.CoreLib.dasm - System.Version:op_Equality(System.Version,System.Version):ubyte (FullOpts)
          -6 (-8.33 % of base) : System.Private.CoreLib.dasm - System.Version:op_Inequality(System.Version,System.Version):ubyte (FullOpts)
          -4 (-0.61 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimeAssembly:InternalGetSatelliteAssembly(System.Globalization.CultureInfo,System.Version,ubyte):System.Reflection.Assembly:this (FullOpts)
          -4 (-0.45 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:InvokeResolveEvent(System.ResolveEventHandler,System.Reflection.RuntimeAssembly,System.String):System.Reflection.RuntimeAssembly (FullOpts)
          -3 (-1.76 % of base) : System.Private.CoreLib.dasm - System.Attribute:InternalIsDefined(System.Reflection.EventInfo,System.Type,ubyte):ubyte (FullOpts)
          -3 (-1.55 % of base) : System.Private.CoreLib.dasm - System.Attribute:InternalIsDefined(System.Reflection.PropertyInfo,System.Type,ubyte):ubyte (FullOpts)
          -3 (-0.20 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (FullOpts)
          -2 (-0.23 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (FullOpts)
          -2 (-0.63 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.DynamicMethod:GetDynamicMethodsModule():System.Reflection.Module (FullOpts)
          -2 (-0.31 % of base) : System.Private.CoreLib.dasm - System.Reflection.NullabilityInfoContext:GetNullableContext(System.Reflection.MemberInfo):System.Nullable`1[int]:this (FullOpts)

Top method regressions (percentages):
          21 (77.78 % of base) : System.Private.CoreLib.dasm - System.Runtime.Versioning.FrameworkName:op_Equality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName):ubyte (FullOpts)
           8 (72.73 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimePropertyInfo:get_CanRead():ubyte:this (FullOpts)
           8 (72.73 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimePropertyInfo:get_CanWrite():ubyte:this (FullOpts)
           5 (45.45 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimePropertyBuilder:get_CanRead():ubyte:this (FullOpts)
           5 (45.45 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimePropertyBuilder:get_CanWrite():ubyte:this (FullOpts)
          12 (33.33 % of base) : System.Private.CoreLib.dasm - System.Globalization.SortVersion:op_Equality(System.Globalization.SortVersion,System.Globalization.SortVersion):ubyte (FullOpts)
           8 (32.00 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.StackFrameExtensions:HasMethod(System.Diagnostics.StackFrame):ubyte (FullOpts)
          15 (29.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Versioning.FrameworkName:op_Inequality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName):ubyte (FullOpts)
           8 (15.69 % of base) : System.Private.CoreLib.dasm - System.Version:TryParse(System.ReadOnlySpan`1[ushort],byref):ubyte (FullOpts)
           8 (12.12 % of base) : System.Private.CoreLib.dasm - System.Type:get_IsGenericMethodParameter():ubyte:this (FullOpts)
           6 (10.00 % of base) : System.Private.CoreLib.dasm - System.Globalization.SortVersion:op_Inequality(System.Globalization.SortVersion,System.Globalization.SortVersion):ubyte (FullOpts)
           8 (9.64 % of base) : System.Private.CoreLib.dasm - System.Version:TryParse(System.String,byref):ubyte (FullOpts)
          12 (8.33 % of base) : System.Private.CoreLib.dasm - System.Attribute:GetParentDefinition(System.Reflection.EventInfo):System.Reflection.EventInfo (FullOpts)
           3 (4.17 % of base) : System.Private.CoreLib.dasm - System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:SkipAssembly(System.Reflection.Assembly):ubyte (FullOpts)
           4 (3.88 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimePropertyInfo:GetValue(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts)
          13 (2.50 % of base) : System.Private.CoreLib.dasm - System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:ClearCache(System.Type[]) (FullOpts)
          10 (1.61 % of base) : System.Private.CoreLib.dasm - System.Resources.ManifestBasedResourceGroveler:GrovelForResourceSet(System.Globalization.CultureInfo,System.Collections.Generic.Dictionary`2[System.String,System.Resources.ResourceSet],ubyte,ubyte):System.Resources.ResourceSet:this (FullOpts)
           4 (1.53 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:EnterContextualReflection(System.Reflection.Assembly):System.Runtime.Loader.AssemblyLoadContext+ContextualReflectionScope (FullOpts)
           2 (1.35 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimeParameterInfo:GetRuntimeModule():System.Reflection.RuntimeModule:this (FullOpts)
           9 (0.49 % of base) : System.Private.CoreLib.dasm - System.RuntimeType+RuntimeTypeCache:GetGenericMethodInfo(long):System.Reflection.MethodInfo:this (FullOpts)
           4 (0.45 % of base) : System.Private.CoreLib.dasm - System.StartupHookProvider:CallStartupHook(System.StartupHookProvider+StartupHookNameOrPath) (FullOpts)
           3 (0.42 % of base) : System.Private.CoreLib.dasm - System.Resources.ManifestBasedResourceGroveler:GetNeutralResourcesLanguage(System.Reflection.Assembly,byref):System.Globalization.CultureInfo (FullOpts)
           8 (0.38 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (FullOpts)
          16 (0.36 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:InvokeMember(System.String,int,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]):System.Object:this (FullOpts)
           1 (0.15 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.Reflection.RuntimeMethodInfo,System.RuntimeType,ubyte):System.Object[] (FullOpts)

Top method improvements (percentages):
         -10 (-17.54 % of base) : System.Private.CoreLib.dasm - System.Delegate:op_Inequality(System.Delegate,System.Delegate):ubyte (FullOpts)
          -8 (-17.02 % of base) : System.Private.CoreLib.dasm - System.ModuleHandle:Equals(System.ModuleHandle):ubyte:this (FullOpts)
          -7 (-16.67 % of base) : System.Private.CoreLib.dasm - System.ModuleHandle:op_Equality(System.ModuleHandle,System.ModuleHandle):ubyte (FullOpts)
          -7 (-14.00 % of base) : System.Private.CoreLib.dasm - System.ModuleHandle:op_Inequality(System.ModuleHandle,System.ModuleHandle):ubyte (FullOpts)
          -8 (-12.90 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:GetRuntimeAssembly(System.Reflection.Assembly):System.Reflection.RuntimeAssembly (FullOpts)
         -10 (-12.50 % of base) : System.Private.CoreLib.dasm - System.ModuleHandle:Equals(System.Object):ubyte:this (FullOpts)
         -12 (-12.37 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeNamedArgument:op_Equality(System.Reflection.CustomAttributeNamedArgument,System.Reflection.CustomAttributeNamedArgument):ubyte (FullOpts)
         -12 (-12.00 % of base) : System.Private.CoreLib.dasm - System.Delegate:RemoveAll(System.Delegate,System.Delegate):System.Delegate (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Delegate:op_Equality(System.Delegate,System.Delegate):ubyte (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.Assembly:op_Equality(System.Reflection.Assembly,System.Reflection.Assembly):ubyte (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.ConstructorInfo:op_Equality(System.Reflection.ConstructorInfo,System.Reflection.ConstructorInfo):ubyte (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.EventInfo:op_Equality(System.Reflection.EventInfo,System.Reflection.EventInfo):ubyte (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.FieldInfo:op_Equality(System.Reflection.FieldInfo,System.Reflection.FieldInfo):ubyte (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.MemberInfo:op_Equality(System.Reflection.MemberInfo,System.Reflection.MemberInfo):ubyte (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.MethodBase:op_Equality(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.MethodInfo:op_Equality(System.Reflection.MethodInfo,System.Reflection.MethodInfo):ubyte (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.Module:op_Equality(System.Reflection.Module,System.Reflection.Module):ubyte (FullOpts)
          -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.PropertyInfo:op_Equality(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo):ubyte (FullOpts)
         -12 (-11.43 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeNamedArgument:op_Inequality(System.Reflection.CustomAttributeNamedArgument,System.Reflection.CustomAttributeNamedArgument):ubyte (FullOpts)
          -6 (-11.11 % of base) : System.Private.CoreLib.dasm - System.Version:op_Equality(System.Version,System.Version):ubyte (FullOpts)
         -37 (-10.85 % of base) : System.Private.CoreLib.dasm - System.Resources.ManifestBasedResourceGroveler:HandleResourceStreamMissing(System.String):this (FullOpts)
         -12 (-10.62 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeNamedArgument:Equals(System.Reflection.CustomAttributeNamedArgument):ubyte:this (FullOpts)
         -15 (-9.68 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeNamedArgument:Equals(System.Object):ubyte:this (FullOpts)
         -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[double]:Equals(System.Object):ubyte:this (FullOpts)
         -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[int]:Equals(System.Object):ubyte:this (FullOpts)
         -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[long]:Equals(System.Object):ubyte:this (FullOpts)
         -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[short]:Equals(System.Object):ubyte:this (FullOpts)
         -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[System.Nullable`1[int]]:Equals(System.Object):ubyte:this (FullOpts)
         -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[System.Numerics.Vector`1[float]]:Equals(System.Object):ubyte:this (FullOpts)
         -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[ubyte]:Equals(System.Object):ubyte:this (FullOpts)
         -18 (-9.28 % of base) : System.Private.CoreLib.dasm - System.Attribute:GetParentDefinition(System.Reflection.ParameterInfo):System.Reflection.ParameterInfo (FullOpts)
         -13 (-8.61 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[System.__Canon]:Equals(System.Object):ubyte:this (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.Assembly:op_Inequality(System.Reflection.Assembly,System.Reflection.Assembly):ubyte (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.ConstructorInfo:op_Inequality(System.Reflection.ConstructorInfo,System.Reflection.ConstructorInfo):ubyte (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.EventInfo:op_Inequality(System.Reflection.EventInfo,System.Reflection.EventInfo):ubyte (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.FieldInfo:op_Inequality(System.Reflection.FieldInfo,System.Reflection.FieldInfo):ubyte (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.MemberInfo:op_Inequality(System.Reflection.MemberInfo,System.Reflection.MemberInfo):ubyte (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.MethodBase:op_Inequality(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.MethodInfo:op_Inequality(System.Reflection.MethodInfo,System.Reflection.MethodInfo):ubyte (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.Module:op_Inequality(System.Reflection.Module,System.Reflection.Module):ubyte (FullOpts)
          -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.PropertyInfo:op_Inequality(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo):ubyte (FullOpts)
          -6 (-8.33 % of base) : System.Private.CoreLib.dasm - System.Version:op_Inequality(System.Version,System.Version):ubyte (FullOpts)
         -29 (-6.95 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Contracts.Contract:AssertMustUseRewriter(int,System.String) (FullOpts)
         -10 (-4.65 % of base) : System.Private.CoreLib.dasm - System.Globalization.CompareInfo:GetCompareInfo(int,System.Reflection.Assembly):System.Globalization.CompareInfo (FullOpts)
         -10 (-4.17 % of base) : System.Private.CoreLib.dasm - System.Globalization.CompareInfo:GetCompareInfo(System.String,System.Reflection.Assembly):System.Globalization.CompareInfo (FullOpts)
          -7 (-3.59 % of base) : System.Private.CoreLib.dasm - System.Runtime.Versioning.FrameworkName:Equals(System.Runtime.Versioning.FrameworkName):ubyte:this (FullOpts)
         -18 (-3.51 % of base) : System.Private.CoreLib.dasm - System.Reflection.TypeNameParser:GetTypeFromDefaultAssemblies(System.String,System.ReadOnlySpan`1[System.String]):System.Type:this (FullOpts)
         -20 (-1.94 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.LocalBuilder):this (FullOpts)
         -39 (-1.78 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (FullOpts)
          -3 (-1.76 % of base) : System.Private.CoreLib.dasm - System.Attribute:InternalIsDefined(System.Reflection.EventInfo,System.Type,ubyte):ubyte (FullOpts)
          -3 (-1.55 % of base) : System.Private.CoreLib.dasm - System.Attribute:InternalIsDefined(System.Reflection.PropertyInfo,System.Type,ubyte):ubyte (FullOpts)
          -2 (-0.63 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.DynamicMethod:GetDynamicMethodsModule():System.Reflection.Module (FullOpts)
          -4 (-0.61 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimeAssembly:InternalGetSatelliteAssembly(System.Globalization.CultureInfo,System.Version,ubyte):System.Reflection.Assembly:this (FullOpts)
          -6 (-0.52 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.StackFrameHelper:InitializeSourceInfo(int,ubyte,System.Exception):this (FullOpts)
          -4 (-0.45 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:InvokeResolveEvent(System.ResolveEventHandler,System.Reflection.RuntimeAssembly,System.String):System.Reflection.RuntimeAssembly (FullOpts)
          -2 (-0.31 % of base) : System.Private.CoreLib.dasm - System.Reflection.NullabilityInfoContext:GetNullableContext(System.Reflection.MemberInfo):System.Nullable`1[int]:this (FullOpts)
          -2 (-0.23 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.DynamicILGenerator:GetMemberRefToken(System.Reflection.MethodInfo,System.Type[]):int:this (FullOpts)
          -3 (-0.20 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (FullOpts)

83 total methods with Code Size differences (58 improved, 25 regressed), 55715 unchanged.

--------------------------------------------------------------------------------

Frameworks diffs

Diffs ``` Found 291 files with textual diffs. Summary of Code Size diffs: (Lower is better) Total bytes of base: 38296082 Total bytes of diff: 38293184 Total bytes of delta: -2898 (-0.01 % of base) Total relative delta: -8.39 diff is an improvement. relative diff is an improvement. Top file regressions (bytes): 42 : Microsoft.Extensions.DependencyInjection.Abstractions.dasm (0.06 % of base) 30 : System.ComponentModel.Composition.dasm (0.01 % of base) 24 : System.Net.Security.dasm (0.01 % of base) 19 : System.ComponentModel.TypeConverter.dasm (0.01 % of base) Top file improvements (bytes): -1323 : System.Data.Common.dasm (-0.08 % of base) -359 : System.Private.CoreLib.dasm (-0.01 % of base) -350 : System.Composition.Convention.dasm (-0.30 % of base) -183 : System.Configuration.ConfigurationManager.dasm (-0.04 % of base) -174 : System.ComponentModel.Composition.Registration.dasm (-0.17 % of base) -151 : System.Private.DataContractSerialization.dasm (-0.02 % of base) -133 : System.Reflection.Emit.dasm (-0.13 % of base) -96 : System.Reflection.MetadataLoadContext.dasm (-0.04 % of base) -74 : System.Net.WebSockets.Client.dasm (-0.32 % of base) -48 : System.Linq.Expressions.dasm (-0.01 % of base) -35 : Microsoft.CSharp.dasm (-0.01 % of base) -18 : System.DirectoryServices.Protocols.dasm (-0.01 % of base) -16 : System.Composition.TypedParts.dasm (-0.03 % of base) -14 : System.Diagnostics.DiagnosticSource.dasm (-0.01 % of base) -10 : System.Reflection.Context.dasm (-0.02 % of base) -7 : System.Text.Json.dasm (-0.00 % of base) -6 : Microsoft.Extensions.Configuration.Binder.dasm (-0.03 % of base) -5 : System.Security.Cryptography.dasm (-0.00 % of base) -4 : tieringtest.dasm (-0.06 % of base) -4 : System.CodeDom.dasm (-0.00 % of base) -3 : System.Private.Xml.dasm (-0.00 % of base) 25 total files with Code Size differences (21 improved, 4 regressed), 231 unchanged. Top method regressions (bytes): 34 (1.74 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.EnumConverter:ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type):System.Object:this (FullOpts) 24 (1.27 % of base) : System.Net.Security.dasm - System.Net.Http.X509ResourceClient:CreateDownloadBytesFunc():System.Func`4[System.String,System.Threading.CancellationToken,ubyte,System.Threading.Tasks.Task`1[ubyte[]]] (FullOpts) 23 (8.42 % of base) : Microsoft.Extensions.DependencyInjection.Abstractions.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:TryFindPreferredConstructor(System.Type,System.Type[],byref,byref):ubyte (FullOpts) 21 (77.78 % of base) : System.Private.CoreLib.dasm - System.Runtime.Versioning.FrameworkName:op_Equality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName):ubyte (FullOpts) 20 (4.87 % of base) : System.Data.Common.dasm - System.Data.Common.DbProviderFactories:GetFactoryInstance(System.Type):System.Data.Common.DbProviderFactory (FullOpts) 19 (6.86 % of base) : Microsoft.Extensions.DependencyInjection.Abstractions.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:TryFindMatchingConstructor(System.Type,System.Type[],byref,byref):ubyte (FullOpts) 16 (0.36 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:InvokeMember(System.String,int,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]):System.Object:this (FullOpts) 15 (29.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Versioning.FrameworkName:op_Inequality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName):ubyte (FullOpts) 14 (8.70 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Expression:IsLiftingConditionalLogicalOperator(System.Type,System.Type,System.Reflection.MethodInfo,int):ubyte (FullOpts) 13 (1.88 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.SymbolTable:AddEventToSymbolTable(System.Reflection.EventInfo,Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol,Microsoft.CSharp.RuntimeBinder.Semantics.FieldSymbol) (FullOpts) 13 (2.50 % of base) : System.Private.CoreLib.dasm - System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:ClearCache(System.Type[]) (FullOpts) 12 (8.33 % of base) : System.Private.CoreLib.dasm - System.Attribute:GetParentDefinition(System.Reflection.EventInfo):System.Reflection.EventInfo (FullOpts) 12 (33.33 % of base) : System.Private.CoreLib.dasm - System.Globalization.SortVersion:op_Equality(System.Globalization.SortVersion,System.Globalization.SortVersion):ubyte (FullOpts) 12 (2.76 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Expression:ListInit(System.Linq.Expressions.NewExpression,System.Reflection.MethodInfo,System.Collections.Generic.IEnumerable`1[System.Linq.Expressions.Expression]):System.Linq.Expressions.ListInitExpression (FullOpts) 11 (0.28 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.ReflectionXmlSerializationReader:WritePrimitive(System.Xml.Serialization.TypeMapping,System.Func`2[System.Object,System.String],System.Object):System.Object:this (FullOpts) 10 (1.23 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectTypeDescriptionProvider:ReflectGetProperties(System.Type):System.ComponentModel.PropertyDescriptor[] (FullOpts) 10 (0.97 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitBranchComparison(ubyte,System.Linq.Expressions.BinaryExpression,System.Reflection.Emit.Label):this (FullOpts) 10 (0.42 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileSwitchExpression(System.Linq.Expressions.Expression):this (FullOpts) 10 (1.61 % of base) : System.Private.CoreLib.dasm - System.Resources.ManifestBasedResourceGroveler:GrovelForResourceSet(System.Globalization.CultureInfo,System.Collections.Generic.Dictionary`2[System.String,System.Resources.ResourceSet],ubyte,ubyte):System.Resources.ResourceSet:this (FullOpts) 10 (0.41 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.ReflectionAwareILGen:ILGenForCreateInstance(System.Xml.Serialization.CodeGenerator,System.Type,System.Type) (FullOpts) 9 (0.49 % of base) : System.Private.CoreLib.dasm - System.RuntimeType+RuntimeTypeCache:GetGenericMethodInfo(long):System.Reflection.MethodInfo:this (FullOpts) 8 (7.92 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.BindingList`1[double]:get_ItemTypeHasDefaultConstructor():ubyte (FullOpts) 8 (7.92 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.BindingList`1[int]:get_ItemTypeHasDefaultConstructor():ubyte (FullOpts) 8 (7.92 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.BindingList`1[long]:get_ItemTypeHasDefaultConstructor():ubyte (FullOpts) 8 (7.92 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.BindingList`1[short]:get_ItemTypeHasDefaultConstructor():ubyte (FullOpts) 8 (6.35 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.BindingList`1[System.__Canon]:get_ItemTypeHasDefaultConstructor():ubyte (FullOpts) 8 (7.92 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.BindingList`1[System.Nullable`1[int]]:get_ItemTypeHasDefaultConstructor():ubyte (FullOpts) 8 (7.92 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.BindingList`1[System.Numerics.Vector`1[float]]:get_ItemTypeHasDefaultConstructor():ubyte (FullOpts) 8 (7.92 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.BindingList`1[ubyte]:get_ItemTypeHasDefaultConstructor():ubyte (FullOpts) 8 (4.08 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ExportServices:IsDictionaryConstructorViewType(System.Type):ubyte (FullOpts) 8 (72.73 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ReflectionProperty:get_CanRead():ubyte:this (FullOpts) 8 (72.73 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ReflectionProperty:get_CanWrite():ubyte:this (FullOpts) 8 (32.00 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.StackFrameExtensions:HasMethod(System.Diagnostics.StackFrame):ubyte (FullOpts) 8 (26.67 % of base) : System.Reflection.Context.dasm - System.Reflection.Context.Virtual.VirtualPropertyBase:get_CanRead():ubyte:this (FullOpts) 8 (26.67 % of base) : System.Reflection.Context.dasm - System.Reflection.Context.Virtual.VirtualPropertyBase:get_CanWrite():ubyte:this (FullOpts) 8 (72.73 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.PropertyBuilderImpl:get_CanRead():ubyte:this (FullOpts) 8 (72.73 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.PropertyBuilderImpl:get_CanWrite():ubyte:this (FullOpts) 8 (0.38 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (FullOpts) 8 (72.73 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimePropertyInfo:get_CanRead():ubyte:this (FullOpts) 8 (72.73 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimePropertyInfo:get_CanWrite():ubyte:this (FullOpts) 8 (33.33 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoProperty:get_CanRead():ubyte:this (FullOpts) 8 (32.00 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoProperty:get_CanWrite():ubyte:this (FullOpts) 8 (1.30 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract:IsNonAttributedTypeValidForSerialization(System.Type):ubyte (FullOpts) 8 (1.02 % of base) : System.Runtime.Serialization.Formatters.dasm - System.Runtime.Serialization.ObjectManager:DoValueTypeFixup(System.Reflection.FieldInfo,System.Runtime.Serialization.ObjectHolder,System.Object):ubyte:this (FullOpts) 8 (12.12 % of base) : System.Private.CoreLib.dasm - System.Type:get_IsGenericMethodParameter():ubyte:this (FullOpts) 8 (15.69 % of base) : System.Private.CoreLib.dasm - System.Version:TryParse(System.ReadOnlySpan`1[ushort],byref):ubyte (FullOpts) 8 (9.64 % of base) : System.Private.CoreLib.dasm - System.Version:TryParse(System.String,byref):ubyte (FullOpts) 8 (0.76 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.FieldModel:.ctor(System.Reflection.MemberInfo,System.Type,System.Xml.Serialization.TypeDesc):this (FullOpts) 8 (0.65 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportSpecialMapping(System.Type,System.Xml.Serialization.TypeDesc,System.String,int):System.Xml.Serialization.SpecialMapping:this (FullOpts) 8 (0.80 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:GetXsltConvertMethod(System.Xml.Xsl.XmlQueryType,System.Xml.Xsl.XmlQueryType,byref):ubyte (FullOpts) 7 (9.72 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.SerializableMapping:.ctor(System.Reflection.MethodInfo,ubyte,System.String):this (FullOpts) 6 (10.00 % of base) : System.Private.CoreLib.dasm - System.Globalization.SortVersion:op_Inequality(System.Globalization.SortVersion,System.Globalization.SortVersion):ubyte (FullOpts) 5 (0.32 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.SymbolTable:AddAggregateToSymbolTable(Microsoft.CSharp.RuntimeBinder.Semantics.NamespaceOrAggregateSymbol,System.Type):Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol (FullOpts) 5 (0.40 % of base) : System.ComponentModel.TypeConverter.dasm - System.Drawing.RectangleConverter:ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type):System.Object:this (FullOpts) 5 (0.63 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitBinaryExpression(System.Linq.Expressions.Expression,int):this (FullOpts) 5 (45.45 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimePropertyBuilder:get_CanRead():ubyte:this (FullOpts) 5 (45.45 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimePropertyBuilder:get_CanWrite():ubyte:this (FullOpts) 4 (1.07 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.BinaryExpression:Create(int,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Type,System.Reflection.MethodInfo,System.Linq.Expressions.LambdaExpression):System.Linq.Expressions.BinaryExpression (FullOpts) 4 (1.79 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:GetTestValueType(System.Linq.Expressions.SwitchExpression):System.Type (FullOpts) 4 (1.02 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.MetadataLoadContext:TryFindAssemblyByCallingResolveHandler(System.Reflection.TypeLoading.RoAssemblyName):System.Reflection.TypeLoading.RoAssembly:this (FullOpts) 4 (3.88 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimePropertyInfo:GetValue(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts) 4 (1.39 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoAssembly:GetFile(System.String):System.IO.FileStream:this (FullOpts) 4 (1.53 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:EnterContextualReflection(System.Reflection.Assembly):System.Runtime.Loader.AssemblyLoadContext+ContextualReflectionScope (FullOpts) 4 (1.24 % of base) : System.Runtime.Serialization.Formatters.dasm - System.Runtime.Serialization.ValueTypeFixupInfo:.ctor(long,System.Reflection.FieldInfo,int[]):this (FullOpts) 4 (0.45 % of base) : System.Private.CoreLib.dasm - System.StartupHookProvider:CallStartupHook(System.StartupHookProvider+StartupHookNameOrPath) (FullOpts) 4 (0.44 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.XmlExtensionFunction:Bind():this (FullOpts) 3 (0.20 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectPropertyDescriptor:FillAttributes(System.Collections.IList):this (FullOpts) 3 (0.16 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.BinaryExpression:ReduceIndex():System.Linq.Expressions.Expression:this (FullOpts) 3 (4.17 % of base) : System.Private.CoreLib.dasm - System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:SkipAssembly(System.Reflection.Assembly):ubyte (FullOpts) 3 (1.60 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoAssembly:GetRoModule(byref):System.Reflection.TypeLoading.RoModule:this (FullOpts) 3 (0.55 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoProperty:ComputeIndexParameters():System.Reflection.TypeLoading.RoPropertyIndexParameter[]:this (FullOpts) 3 (0.42 % of base) : System.Private.CoreLib.dasm - System.Resources.ManifestBasedResourceGroveler:GetNeutralResourcesLanguage(System.Reflection.Assembly,byref):System.Globalization.CultureInfo (FullOpts) 3 (0.39 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.TempAssembly:InvokeReader(System.Xml.Serialization.XmlMapping,System.Xml.XmlReader,System.Xml.Serialization.XmlDeserializationEvents,System.String):System.Object:this (FullOpts) 2 (0.31 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.AttributeCollection:GetDefaultAttribute(System.Type):System.Attribute:this (FullOpts) 2 (1.47 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ReflectionExtensions:CreateReflectionProperty(System.Reflection.MethodInfo,System.Reflection.MethodInfo):System.ComponentModel.Composition.ReflectionModel.ReflectionProperty (FullOpts) 2 (1.87 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ReflectionProperty:.ctor(System.Reflection.MethodInfo,System.Reflection.MethodInfo):this (FullOpts) 2 (1.44 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ReflectionProperty:get_ReturnType():System.Type:this (FullOpts) 2 (0.40 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder:BuildConstructorAttributes(System.Type,byref):ubyte:this (FullOpts) 2 (0.69 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.MemberDescriptor:FindMethod(System.Type,System.String,System.Type[],System.Type):System.Reflection.MethodInfo (FullOpts) 2 (0.18 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectEventDescriptor:FillMethods():this (FullOpts) 2 (0.22 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectPropertyDescriptor:get_GetMethodValue():System.Reflection.MethodInfo:this (FullOpts) 2 (0.45 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectPropertyDescriptor:get_ResetMethodValue():System.Reflection.MethodInfo:this (FullOpts) 2 (0.45 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectPropertyDescriptor:get_ShouldSerializeMethodValue():System.Reflection.MethodInfo:this (FullOpts) 2 (0.40 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder:BuildConstructorAttributes(System.Type,byref):ubyte:this (FullOpts) 2 (0.15 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitUnary(System.Linq.Expressions.UnaryExpression,int):this (FullOpts) 2 (0.24 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Expression:GetUserDefinedBinaryOperator(int,System.String,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte):System.Linq.Expressions.BinaryExpression (FullOpts) 2 (0.37 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Expression:GetUserDefinedUnaryOperator(int,System.String,System.Linq.Expressions.Expression):System.Linq.Expressions.UnaryExpression (FullOpts) 2 (0.87 % of base) : System.Reflection.Context.dasm - System.Reflection.Context.CustomReflectionContext+ReflectionContextProjector:ProjectMethodBase(System.Reflection.MethodBase):System.Reflection.MethodBase:this (FullOpts) 2 (1.35 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimeParameterInfo:GetRuntimeModule():System.Reflection.RuntimeModule:this (FullOpts) 2 (0.25 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.ReflectionXmlSerializationReaderHelper:GetSetMemberValueDelegateWithType[System.__Canon,System.Nullable`1[int]](System.Reflection.MemberInfo):System.Xml.Serialization.ReflectionXmlSerializationReaderHelper+SetMemberValueDelegate (FullOpts) 2 (1.21 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILModule:DefineMethodBody(System.Reflection.MethodBase):System.Reflection.Emit.ILGenerator (FullOpts) 1 (0.15 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.Reflection.RuntimeMethodInfo,System.RuntimeType,ubyte):System.Object[] (FullOpts) Top method improvements (bytes): -84 (-9.89 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationSection:SerializeSection(System.Configuration.ConfigurationElement,System.String,int):System.String:this (FullOpts) -67 (-12.88 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.ILGeneratorImpl:Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.LocalBuilder):this (FullOpts) -42 (-0.75 % of base) : System.Net.WebSockets.Client.dasm - System.Net.WebSockets.WebSocketHandle+d__22:MoveNext():this (FullOpts) -41 (-14.75 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.ModuleBuilderImpl:GetTypeFromCoreAssembly(int):System.Type:this (FullOpts) -41 (-9.72 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.ModuleBuilderImpl:GetTypeIdFromCoreTypes(System.Type):System.Nullable`1[int]:this (FullOpts) -39 (-1.78 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (FullOpts) -37 (-19.68 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.TypeDescriptionProvider:GetRuntimeType(System.Type):System.Type:this (FullOpts) -37 (-10.85 % of base) : System.Private.CoreLib.dasm - System.Resources.ManifestBasedResourceGroveler:HandleResourceStreamMissing(System.String):this (FullOpts) -36 (-3.65 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.MgmtConfigurationRecord:GetUpdatedSectionGroupDeclarationXml(System.Configuration.FactoryRecord,System.Configuration.ConfigurationSectionGroup):System.String:this (FullOpts) -29 (-6.95 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Contracts.Contract:AssertMustUseRewriter(int,System.String) (FullOpts) -29 (-0.73 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract+ClassDataContractCriticalHelper:ImportDataMembers():this (FullOpts) -27 (-3.51 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectTypeDescriptionProvider:ReflectGetEvents(System.Type):System.ComponentModel.EventDescriptor[] (FullOpts) -27 (-2.17 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.MetadataLoadContext:LoadFromStreamCore(System.IO.Stream):System.Reflection.TypeLoading.RoAssembly:this (FullOpts) -26 (-0.83 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:TryEmitHashtableSwitch(System.Linq.Expressions.SwitchExpression,int):ubyte:this (FullOpts) -25 (-5.61 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationElement:SerializeToXmlElement(System.Xml.XmlWriter,System.String):ubyte:this (FullOpts) -25 (-11.26 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.DataContracts.DataMember:RequiresMemberAccessForGet():ubyte:this (FullOpts) -25 (-11.21 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.DataContracts.DataMember:RequiresMemberAccessForSet():ubyte:this (FullOpts) -22 (-34.92 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder`1+PropertyExpressionAdapter[double]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder`1+PropertyExpressionAdapter[int]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder`1+PropertyExpressionAdapter[long]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder`1+PropertyExpressionAdapter[short]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder`1+PropertyExpressionAdapter[System.__Canon]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder`1+PropertyExpressionAdapter[System.Nullable`1[int]]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder`1+PropertyExpressionAdapter[System.Numerics.Vector`1[float]]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder`1+PropertyExpressionAdapter[ubyte]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+MethodExpressionAdapter[double]:VerifyMethodInfo(System.Reflection.MethodInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+MethodExpressionAdapter[int]:VerifyMethodInfo(System.Reflection.MethodInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+MethodExpressionAdapter[long]:VerifyMethodInfo(System.Reflection.MethodInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+MethodExpressionAdapter[short]:VerifyMethodInfo(System.Reflection.MethodInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+MethodExpressionAdapter[System.__Canon]:VerifyMethodInfo(System.Reflection.MethodInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+MethodExpressionAdapter[System.Nullable`1[int]]:VerifyMethodInfo(System.Reflection.MethodInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+MethodExpressionAdapter[System.Numerics.Vector`1[float]]:VerifyMethodInfo(System.Reflection.MethodInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+MethodExpressionAdapter[ubyte]:VerifyMethodInfo(System.Reflection.MethodInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+PropertyExpressionAdapter[double]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+PropertyExpressionAdapter[int]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+PropertyExpressionAdapter[long]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+PropertyExpressionAdapter[short]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+PropertyExpressionAdapter[System.__Canon]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+PropertyExpressionAdapter[System.Nullable`1[int]]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+PropertyExpressionAdapter[System.Numerics.Vector`1[float]]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+PropertyExpressionAdapter[ubyte]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-4.68 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:Clone():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) -22 (-4.68 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:Clone():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) -22 (-4.68 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:Clone():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) -22 (-4.68 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:Clone():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) -22 (-3.41 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.__Canon]:Clone():System.Data.SortExpressionBuilder`1[System.__Canon]:this (FullOpts) -22 (-4.68 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:Clone():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) -22 (-4.68 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:Clone():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) -22 (-4.68 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[ubyte]:Clone():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) -21 (-0.56 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Expression:ValidateNewArgs(System.Reflection.ConstructorInfo,byref,byref) (FullOpts) -20 (-0.53 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileAddress(System.Linq.Expressions.Expression,int):System.Linq.Expressions.Interpreter.ByRefUpdater:this (FullOpts) -20 (-1.94 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimeILGenerator:Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.LocalBuilder):this (FullOpts) -20 (-5.97 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoAssembly:GetTypeCore(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],ubyte,byref):System.Reflection.TypeLoading.RoDefinitionType:this (FullOpts) -20 (-2.75 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.TypeScope:ShouldBeReplaced(System.Reflection.MemberInfo,System.Type,byref):ubyte (FullOpts) -18 (-9.42 % of base) : System.DirectoryServices.Protocols.dasm - Interop+Ldap+<>c__DisplayClass0_0:<.cctor>b__0(System.Reflection.Assembly,System.String):long:this (FullOpts) -18 (-9.28 % of base) : System.Private.CoreLib.dasm - System.Attribute:GetParentDefinition(System.Reflection.ParameterInfo):System.Reflection.ParameterInfo (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) -18 (-2.33 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[System.__Canon]():System.Data.SortExpressionBuilder`1[System.__Canon]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) -18 (-2.33 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[System.__Canon]():System.Data.SortExpressionBuilder`1[System.__Canon]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) -18 (-2.33 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[System.__Canon]():System.Data.SortExpressionBuilder`1[System.__Canon]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) -18 (-2.33 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[System.__Canon]():System.Data.SortExpressionBuilder`1[System.__Canon]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) -18 (-2.24 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.__Canon]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) -18 (-2.24 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.__Canon]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) -18 (-2.24 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.__Canon]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) -18 (-2.24 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.__Canon]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) -18 (-1.94 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.__Canon]:CloneCast[System.__Canon]():System.Data.SortExpressionBuilder`1[System.__Canon]:this (FullOpts) -18 (-2.24 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.__Canon]:CloneCast[System.Nullable`1[int]]():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) -18 (-2.24 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.__Canon]:CloneCast[System.Numerics.Vector`1[float]]():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) -18 (-2.24 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.__Canon]:CloneCast[ubyte]():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[double]():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[int]():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[long]():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) -18 (-2.86 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:CloneCast[short]():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) Top method regressions (percentages): 21 (77.78 % of base) : System.Private.CoreLib.dasm - System.Runtime.Versioning.FrameworkName:op_Equality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName):ubyte (FullOpts) 8 (72.73 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ReflectionProperty:get_CanRead():ubyte:this (FullOpts) 8 (72.73 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ReflectionProperty:get_CanWrite():ubyte:this (FullOpts) 8 (72.73 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.PropertyBuilderImpl:get_CanRead():ubyte:this (FullOpts) 8 (72.73 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.PropertyBuilderImpl:get_CanWrite():ubyte:this (FullOpts) 8 (72.73 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimePropertyInfo:get_CanRead():ubyte:this (FullOpts) 8 (72.73 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimePropertyInfo:get_CanWrite():ubyte:this (FullOpts) 5 (45.45 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimePropertyBuilder:get_CanRead():ubyte:this (FullOpts) 5 (45.45 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.RuntimePropertyBuilder:get_CanWrite():ubyte:this (FullOpts) 12 (33.33 % of base) : System.Private.CoreLib.dasm - System.Globalization.SortVersion:op_Equality(System.Globalization.SortVersion,System.Globalization.SortVersion):ubyte (FullOpts) 8 (33.33 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoProperty:get_CanRead():ubyte:this (FullOpts) 8 (32.00 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.StackFrameExtensions:HasMethod(System.Diagnostics.StackFrame):ubyte (FullOpts) 8 (32.00 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoProperty:get_CanWrite():ubyte:this (FullOpts) 15 (29.41 % of base) : System.Private.CoreLib.dasm - System.Runtime.Versioning.FrameworkName:op_Inequality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName):ubyte (FullOpts) 8 (26.67 % of base) : System.Reflection.Context.dasm - System.Reflection.Context.Virtual.VirtualPropertyBase:get_CanRead():ubyte:this (FullOpts) 8 (26.67 % of base) : System.Reflection.Context.dasm - System.Reflection.Context.Virtual.VirtualPropertyBase:get_CanWrite():ubyte:this (FullOpts) 8 (15.69 % of base) : System.Private.CoreLib.dasm - System.Version:TryParse(System.ReadOnlySpan`1[ushort],byref):ubyte (FullOpts) 8 (12.12 % of base) : System.Private.CoreLib.dasm - System.Type:get_IsGenericMethodParameter():ubyte:this (FullOpts) 6 (10.00 % of base) : System.Private.CoreLib.dasm - System.Globalization.SortVersion:op_Inequality(System.Globalization.SortVersion,System.Globalization.SortVersion):ubyte (FullOpts) 7 (9.72 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.SerializableMapping:.ctor(System.Reflection.MethodInfo,ubyte,System.String):this (FullOpts) 8 (9.64 % of base) : System.Private.CoreLib.dasm - System.Version:TryParse(System.String,byref):ubyte (FullOpts) 14 (8.70 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Expression:IsLiftingConditionalLogicalOperator(System.Type,System.Type,System.Reflection.MethodInfo,int):ubyte (FullOpts) 23 (8.42 % of base) : Microsoft.Extensions.DependencyInjection.Abstractions.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:TryFindPreferredConstructor(System.Type,System.Type[],byref,byref):ubyte (FullOpts) 12 (8.33 % of base) : System.Private.CoreLib.dasm - System.Attribute:GetParentDefinition(System.Reflection.EventInfo):System.Reflection.EventInfo (FullOpts) 8 (7.92 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.BindingList`1[double]:get_ItemTypeHasDefaultConstructor():ubyte (FullOpts) 8 (7.92 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.BindingList`1[int]:get_ItemTypeHasDefaultConstructor():ubyte (FullOpts) 8 (7.92 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.BindingList`1[long]:get_ItemTypeHasDefaultConstructor():ubyte (FullOpts) 8 (7.92 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.BindingList`1[short]:get_ItemTypeHasDefaultConstructor():ubyte (FullOpts) 8 (7.92 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.BindingList`1[System.Nullable`1[int]]:get_ItemTypeHasDefaultConstructor():ubyte (FullOpts) 8 (7.92 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.BindingList`1[System.Numerics.Vector`1[float]]:get_ItemTypeHasDefaultConstructor():ubyte (FullOpts) 8 (7.92 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.BindingList`1[ubyte]:get_ItemTypeHasDefaultConstructor():ubyte (FullOpts) 19 (6.86 % of base) : Microsoft.Extensions.DependencyInjection.Abstractions.dasm - Microsoft.Extensions.DependencyInjection.ActivatorUtilities:TryFindMatchingConstructor(System.Type,System.Type[],byref,byref):ubyte (FullOpts) 8 (6.35 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.BindingList`1[System.__Canon]:get_ItemTypeHasDefaultConstructor():ubyte (FullOpts) 20 (4.87 % of base) : System.Data.Common.dasm - System.Data.Common.DbProviderFactories:GetFactoryInstance(System.Type):System.Data.Common.DbProviderFactory (FullOpts) 3 (4.17 % of base) : System.Private.CoreLib.dasm - System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:SkipAssembly(System.Reflection.Assembly):ubyte (FullOpts) 8 (4.08 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ExportServices:IsDictionaryConstructorViewType(System.Type):ubyte (FullOpts) 4 (3.88 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimePropertyInfo:GetValue(System.Object,int,System.Reflection.Binder,System.Object[],System.Globalization.CultureInfo):System.Object:this (FullOpts) 12 (2.76 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Expression:ListInit(System.Linq.Expressions.NewExpression,System.Reflection.MethodInfo,System.Collections.Generic.IEnumerable`1[System.Linq.Expressions.Expression]):System.Linq.Expressions.ListInitExpression (FullOpts) 13 (2.50 % of base) : System.Private.CoreLib.dasm - System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:ClearCache(System.Type[]) (FullOpts) 13 (1.88 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.SymbolTable:AddEventToSymbolTable(System.Reflection.EventInfo,Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol,Microsoft.CSharp.RuntimeBinder.Semantics.FieldSymbol) (FullOpts) 2 (1.87 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ReflectionProperty:.ctor(System.Reflection.MethodInfo,System.Reflection.MethodInfo):this (FullOpts) 4 (1.79 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:GetTestValueType(System.Linq.Expressions.SwitchExpression):System.Type (FullOpts) 34 (1.74 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.EnumConverter:ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type):System.Object:this (FullOpts) 10 (1.61 % of base) : System.Private.CoreLib.dasm - System.Resources.ManifestBasedResourceGroveler:GrovelForResourceSet(System.Globalization.CultureInfo,System.Collections.Generic.Dictionary`2[System.String,System.Resources.ResourceSet],ubyte,ubyte):System.Resources.ResourceSet:this (FullOpts) 3 (1.60 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoAssembly:GetRoModule(byref):System.Reflection.TypeLoading.RoModule:this (FullOpts) 4 (1.53 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:EnterContextualReflection(System.Reflection.Assembly):System.Runtime.Loader.AssemblyLoadContext+ContextualReflectionScope (FullOpts) 2 (1.47 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ReflectionExtensions:CreateReflectionProperty(System.Reflection.MethodInfo,System.Reflection.MethodInfo):System.ComponentModel.Composition.ReflectionModel.ReflectionProperty (FullOpts) 2 (1.44 % of base) : System.ComponentModel.Composition.dasm - System.ComponentModel.Composition.ReflectionModel.ReflectionProperty:get_ReturnType():System.Type:this (FullOpts) 4 (1.39 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoAssembly:GetFile(System.String):System.IO.FileStream:this (FullOpts) 2 (1.35 % of base) : System.Private.CoreLib.dasm - System.Reflection.RuntimeParameterInfo:GetRuntimeModule():System.Reflection.RuntimeModule:this (FullOpts) 8 (1.30 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.DataContracts.ClassDataContract:IsNonAttributedTypeValidForSerialization(System.Type):ubyte (FullOpts) 24 (1.27 % of base) : System.Net.Security.dasm - System.Net.Http.X509ResourceClient:CreateDownloadBytesFunc():System.Func`4[System.String,System.Threading.CancellationToken,ubyte,System.Threading.Tasks.Task`1[ubyte[]]] (FullOpts) 4 (1.24 % of base) : System.Runtime.Serialization.Formatters.dasm - System.Runtime.Serialization.ValueTypeFixupInfo:.ctor(long,System.Reflection.FieldInfo,int[]):this (FullOpts) 10 (1.23 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectTypeDescriptionProvider:ReflectGetProperties(System.Type):System.ComponentModel.PropertyDescriptor[] (FullOpts) 2 (1.21 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILModule:DefineMethodBody(System.Reflection.MethodBase):System.Reflection.Emit.ILGenerator (FullOpts) 4 (1.07 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.BinaryExpression:Create(int,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,System.Type,System.Reflection.MethodInfo,System.Linq.Expressions.LambdaExpression):System.Linq.Expressions.BinaryExpression (FullOpts) 8 (1.02 % of base) : System.Runtime.Serialization.Formatters.dasm - System.Runtime.Serialization.ObjectManager:DoValueTypeFixup(System.Reflection.FieldInfo,System.Runtime.Serialization.ObjectHolder,System.Object):ubyte:this (FullOpts) 4 (1.02 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.MetadataLoadContext:TryFindAssemblyByCallingResolveHandler(System.Reflection.TypeLoading.RoAssemblyName):System.Reflection.TypeLoading.RoAssembly:this (FullOpts) 10 (0.97 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitBranchComparison(ubyte,System.Linq.Expressions.BinaryExpression,System.Reflection.Emit.Label):this (FullOpts) 2 (0.87 % of base) : System.Reflection.Context.dasm - System.Reflection.Context.CustomReflectionContext+ReflectionContextProjector:ProjectMethodBase(System.Reflection.MethodBase):System.Reflection.MethodBase:this (FullOpts) 8 (0.80 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.IlGen.XmlILVisitor:GetXsltConvertMethod(System.Xml.Xsl.XmlQueryType,System.Xml.Xsl.XmlQueryType,byref):ubyte (FullOpts) 8 (0.76 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.FieldModel:.ctor(System.Reflection.MemberInfo,System.Type,System.Xml.Serialization.TypeDesc):this (FullOpts) 2 (0.69 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.MemberDescriptor:FindMethod(System.Type,System.String,System.Type[],System.Type):System.Reflection.MethodInfo (FullOpts) 8 (0.65 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportSpecialMapping(System.Type,System.Xml.Serialization.TypeDesc,System.String,int):System.Xml.Serialization.SpecialMapping:this (FullOpts) 5 (0.63 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitBinaryExpression(System.Linq.Expressions.Expression,int):this (FullOpts) 3 (0.55 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoProperty:ComputeIndexParameters():System.Reflection.TypeLoading.RoPropertyIndexParameter[]:this (FullOpts) 9 (0.49 % of base) : System.Private.CoreLib.dasm - System.RuntimeType+RuntimeTypeCache:GetGenericMethodInfo(long):System.Reflection.MethodInfo:this (FullOpts) 2 (0.45 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectPropertyDescriptor:get_ResetMethodValue():System.Reflection.MethodInfo:this (FullOpts) 2 (0.45 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectPropertyDescriptor:get_ShouldSerializeMethodValue():System.Reflection.MethodInfo:this (FullOpts) 4 (0.45 % of base) : System.Private.CoreLib.dasm - System.StartupHookProvider:CallStartupHook(System.StartupHookProvider+StartupHookNameOrPath) (FullOpts) 4 (0.44 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.XmlExtensionFunction:Bind():this (FullOpts) 3 (0.42 % of base) : System.Private.CoreLib.dasm - System.Resources.ManifestBasedResourceGroveler:GetNeutralResourcesLanguage(System.Reflection.Assembly,byref):System.Globalization.CultureInfo (FullOpts) 10 (0.42 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Interpreter.LightCompiler:CompileSwitchExpression(System.Linq.Expressions.Expression):this (FullOpts) 10 (0.41 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.ReflectionAwareILGen:ILGenForCreateInstance(System.Xml.Serialization.CodeGenerator,System.Type,System.Type) (FullOpts) 5 (0.40 % of base) : System.ComponentModel.TypeConverter.dasm - System.Drawing.RectangleConverter:ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type):System.Object:this (FullOpts) 2 (0.40 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder:BuildConstructorAttributes(System.Type,byref):ubyte:this (FullOpts) 2 (0.40 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder:BuildConstructorAttributes(System.Type,byref):ubyte:this (FullOpts) 3 (0.39 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.TempAssembly:InvokeReader(System.Xml.Serialization.XmlMapping,System.Xml.XmlReader,System.Xml.Serialization.XmlDeserializationEvents,System.String):System.Object:this (FullOpts) 8 (0.38 % of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.SignatureHelper:AddOneArgTypeHelperWorker(System.Type,ubyte):this (FullOpts) 2 (0.37 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Expression:GetUserDefinedUnaryOperator(int,System.String,System.Linq.Expressions.Expression):System.Linq.Expressions.UnaryExpression (FullOpts) 16 (0.36 % of base) : System.Private.CoreLib.dasm - System.RuntimeType:InvokeMember(System.String,int,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]):System.Object:this (FullOpts) 5 (0.32 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.SymbolTable:AddAggregateToSymbolTable(Microsoft.CSharp.RuntimeBinder.Semantics.NamespaceOrAggregateSymbol,System.Type):Microsoft.CSharp.RuntimeBinder.Semantics.AggregateSymbol (FullOpts) 2 (0.31 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.AttributeCollection:GetDefaultAttribute(System.Type):System.Attribute:this (FullOpts) 11 (0.28 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.ReflectionXmlSerializationReader:WritePrimitive(System.Xml.Serialization.TypeMapping,System.Func`2[System.Object,System.String],System.Object):System.Object:this (FullOpts) 2 (0.25 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.ReflectionXmlSerializationReaderHelper:GetSetMemberValueDelegateWithType[System.__Canon,System.Nullable`1[int]](System.Reflection.MemberInfo):System.Xml.Serialization.ReflectionXmlSerializationReaderHelper+SetMemberValueDelegate (FullOpts) 2 (0.24 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Expression:GetUserDefinedBinaryOperator(int,System.String,System.Linq.Expressions.Expression,System.Linq.Expressions.Expression,ubyte):System.Linq.Expressions.BinaryExpression (FullOpts) 2 (0.22 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectPropertyDescriptor:get_GetMethodValue():System.Reflection.MethodInfo:this (FullOpts) 3 (0.20 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectPropertyDescriptor:FillAttributes(System.Collections.IList):this (FullOpts) 2 (0.18 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.ReflectEventDescriptor:FillMethods():this (FullOpts) 3 (0.16 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.BinaryExpression:ReduceIndex():System.Linq.Expressions.Expression:this (FullOpts) 1 (0.15 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttribute:GetCustomAttributes(System.Reflection.RuntimeMethodInfo,System.RuntimeType,ubyte):System.Object[] (FullOpts) 2 (0.15 % of base) : System.Linq.Expressions.dasm - System.Linq.Expressions.Compiler.LambdaCompiler:EmitUnary(System.Linq.Expressions.UnaryExpression,int):this (FullOpts) Top method improvements (percentages): -22 (-34.92 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder`1+PropertyExpressionAdapter[double]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder`1+PropertyExpressionAdapter[int]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder`1+PropertyExpressionAdapter[long]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder`1+PropertyExpressionAdapter[short]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder`1+PropertyExpressionAdapter[System.__Canon]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder`1+PropertyExpressionAdapter[System.Nullable`1[int]]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder`1+PropertyExpressionAdapter[System.Numerics.Vector`1[float]]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.ComponentModel.Composition.Registration.dasm - System.ComponentModel.Composition.Registration.PartBuilder`1+PropertyExpressionAdapter[ubyte]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+MethodExpressionAdapter[double]:VerifyMethodInfo(System.Reflection.MethodInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+MethodExpressionAdapter[int]:VerifyMethodInfo(System.Reflection.MethodInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+MethodExpressionAdapter[long]:VerifyMethodInfo(System.Reflection.MethodInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+MethodExpressionAdapter[short]:VerifyMethodInfo(System.Reflection.MethodInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+MethodExpressionAdapter[System.__Canon]:VerifyMethodInfo(System.Reflection.MethodInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+MethodExpressionAdapter[System.Nullable`1[int]]:VerifyMethodInfo(System.Reflection.MethodInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+MethodExpressionAdapter[System.Numerics.Vector`1[float]]:VerifyMethodInfo(System.Reflection.MethodInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+MethodExpressionAdapter[ubyte]:VerifyMethodInfo(System.Reflection.MethodInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+PropertyExpressionAdapter[double]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+PropertyExpressionAdapter[int]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+PropertyExpressionAdapter[long]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+PropertyExpressionAdapter[short]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+PropertyExpressionAdapter[System.__Canon]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+PropertyExpressionAdapter[System.Nullable`1[int]]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+PropertyExpressionAdapter[System.Numerics.Vector`1[float]]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -22 (-34.92 % of base) : System.Composition.Convention.dasm - System.Composition.Convention.PartConventionBuilder`1+PropertyExpressionAdapter[ubyte]:VerifyPropertyInfo(System.Reflection.PropertyInfo):ubyte:this (FullOpts) -37 (-19.68 % of base) : System.ComponentModel.TypeConverter.dasm - System.ComponentModel.TypeDescriptionProvider:GetRuntimeType(System.Type):System.Type:this (FullOpts) -10 (-17.54 % of base) : System.Private.CoreLib.dasm - System.Delegate:op_Inequality(System.Delegate,System.Delegate):ubyte (FullOpts) -8 (-17.02 % of base) : System.Private.CoreLib.dasm - System.ModuleHandle:Equals(System.ModuleHandle):ubyte:this (FullOpts) -7 (-16.67 % of base) : System.Private.CoreLib.dasm - System.ModuleHandle:op_Equality(System.ModuleHandle,System.ModuleHandle):ubyte (FullOpts) -13 (-15.48 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.Configuration:set_AssemblyStringTransformer(System.Func`2[System.String,System.String]):this (FullOpts) -13 (-15.48 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.Configuration:set_TypeStringTransformer(System.Func`2[System.String,System.String]):this (FullOpts) -41 (-14.75 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.ModuleBuilderImpl:GetTypeFromCoreAssembly(int):System.Type:this (FullOpts) -7 (-14.00 % of base) : System.Private.CoreLib.dasm - System.ModuleHandle:op_Inequality(System.ModuleHandle,System.ModuleHandle):ubyte (FullOpts) -15 (-12.93 % of base) : System.Reflection.Context.dasm - System.Reflection.Context.Projection.ProjectingAssembly:Equals(System.Object):ubyte:this (FullOpts) -8 (-12.90 % of base) : System.Private.CoreLib.dasm - System.Runtime.Loader.AssemblyLoadContext:GetRuntimeAssembly(System.Reflection.Assembly):System.Reflection.RuntimeAssembly (FullOpts) -67 (-12.88 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.ILGeneratorImpl:Emit(System.Reflection.Emit.OpCode,System.Reflection.Emit.LocalBuilder):this (FullOpts) -10 (-12.50 % of base) : System.Private.CoreLib.dasm - System.ModuleHandle:Equals(System.Object):ubyte:this (FullOpts) -12 (-12.37 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeNamedArgument:op_Equality(System.Reflection.CustomAttributeNamedArgument,System.Reflection.CustomAttributeNamedArgument):ubyte (FullOpts) -12 (-12.00 % of base) : System.Private.CoreLib.dasm - System.Delegate:RemoveAll(System.Delegate,System.Delegate):System.Delegate (FullOpts) -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Delegate:op_Equality(System.Delegate,System.Delegate):ubyte (FullOpts) -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.Assembly:op_Equality(System.Reflection.Assembly,System.Reflection.Assembly):ubyte (FullOpts) -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.ConstructorInfo:op_Equality(System.Reflection.ConstructorInfo,System.Reflection.ConstructorInfo):ubyte (FullOpts) -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.EventInfo:op_Equality(System.Reflection.EventInfo,System.Reflection.EventInfo):ubyte (FullOpts) -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.FieldInfo:op_Equality(System.Reflection.FieldInfo,System.Reflection.FieldInfo):ubyte (FullOpts) -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.MemberInfo:op_Equality(System.Reflection.MemberInfo,System.Reflection.MemberInfo):ubyte (FullOpts) -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.MethodBase:op_Equality(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte (FullOpts) -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.MethodInfo:op_Equality(System.Reflection.MethodInfo,System.Reflection.MethodInfo):ubyte (FullOpts) -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.Module:op_Equality(System.Reflection.Module,System.Reflection.Module):ubyte (FullOpts) -6 (-11.54 % of base) : System.Private.CoreLib.dasm - System.Reflection.PropertyInfo:op_Equality(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo):ubyte (FullOpts) -12 (-11.43 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeNamedArgument:op_Inequality(System.Reflection.CustomAttributeNamedArgument,System.Reflection.CustomAttributeNamedArgument):ubyte (FullOpts) -12 (-11.43 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoParameter:Equals(System.Object):ubyte:this (FullOpts) -25 (-11.26 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.DataContracts.DataMember:RequiresMemberAccessForGet():ubyte:this (FullOpts) -25 (-11.21 % of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.DataContracts.DataMember:RequiresMemberAccessForSet():ubyte:this (FullOpts) -6 (-11.11 % of base) : System.Private.CoreLib.dasm - System.Version:op_Equality(System.Version,System.Version):ubyte (FullOpts) -37 (-10.85 % of base) : System.Private.CoreLib.dasm - System.Resources.ManifestBasedResourceGroveler:HandleResourceStreamMissing(System.String):this (FullOpts) -12 (-10.62 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeNamedArgument:Equals(System.Reflection.CustomAttributeNamedArgument):ubyte:this (FullOpts) -12 (-10.08 % of base) : Microsoft.CSharp.dasm - Microsoft.CSharp.RuntimeBinder.Semantics.Symbol:SameAssemOrFriend(Microsoft.CSharp.RuntimeBinder.Semantics.Symbol):ubyte:this (FullOpts) -84 (-9.89 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationSection:SerializeSection(System.Configuration.ConfigurationElement,System.String,int):System.String:this (FullOpts) -41 (-9.72 % of base) : System.Reflection.Emit.dasm - System.Reflection.Emit.ModuleBuilderImpl:GetTypeIdFromCoreTypes(System.Type):System.Nullable`1[int]:this (FullOpts) -15 (-9.68 % of base) : System.Private.CoreLib.dasm - System.Reflection.CustomAttributeNamedArgument:Equals(System.Object):ubyte:this (FullOpts) -16 (-9.47 % of base) : System.Composition.TypedParts.dasm - System.Composition.TypedParts.Discovery.DiscoveredPart+ParameterInfoComparer:Equals(System.Reflection.ParameterInfo,System.Reflection.ParameterInfo):ubyte:this (FullOpts) -18 (-9.42 % of base) : System.DirectoryServices.Protocols.dasm - Interop+Ldap+<>c__DisplayClass0_0:<.cctor>b__0(System.Reflection.Assembly,System.String):long:this (FullOpts) -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[double]:Equals(System.Object):ubyte:this (FullOpts) -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[int]:Equals(System.Object):ubyte:this (FullOpts) -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[long]:Equals(System.Object):ubyte:this (FullOpts) -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[short]:Equals(System.Object):ubyte:this (FullOpts) -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[System.Nullable`1[int]]:Equals(System.Object):ubyte:this (FullOpts) -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[System.Numerics.Vector`1[float]]:Equals(System.Object):ubyte:this (FullOpts) -13 (-9.42 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[ubyte]:Equals(System.Object):ubyte:this (FullOpts) -15 (-9.32 % of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.EarlyBoundInfo:Equals(System.Object):ubyte:this (FullOpts) -18 (-9.28 % of base) : System.Private.CoreLib.dasm - System.Attribute:GetParentDefinition(System.Reflection.ParameterInfo):System.Reflection.ParameterInfo (FullOpts) -13 (-8.61 % of base) : System.Private.CoreLib.dasm - System.Collections.Generic.DelegateEqualityComparer`1[System.__Canon]:Equals(System.Object):ubyte:this (FullOpts) -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.Assembly:op_Inequality(System.Reflection.Assembly,System.Reflection.Assembly):ubyte (FullOpts) -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.ConstructorInfo:op_Inequality(System.Reflection.ConstructorInfo,System.Reflection.ConstructorInfo):ubyte (FullOpts) -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.EventInfo:op_Inequality(System.Reflection.EventInfo,System.Reflection.EventInfo):ubyte (FullOpts) -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.FieldInfo:op_Inequality(System.Reflection.FieldInfo,System.Reflection.FieldInfo):ubyte (FullOpts) -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.MemberInfo:op_Inequality(System.Reflection.MemberInfo,System.Reflection.MemberInfo):ubyte (FullOpts) -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.MethodBase:op_Inequality(System.Reflection.MethodBase,System.Reflection.MethodBase):ubyte (FullOpts) -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.MethodInfo:op_Inequality(System.Reflection.MethodInfo,System.Reflection.MethodInfo):ubyte (FullOpts) -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.Module:op_Inequality(System.Reflection.Module,System.Reflection.Module):ubyte (FullOpts) -6 (-8.57 % of base) : System.Private.CoreLib.dasm - System.Reflection.PropertyInfo:op_Inequality(System.Reflection.PropertyInfo,System.Reflection.PropertyInfo):ubyte (FullOpts) -6 (-8.33 % of base) : System.Private.CoreLib.dasm - System.Version:op_Inequality(System.Version,System.Version):ubyte (FullOpts) -16 (-7.41 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoConstructedGenericMethod:Equals(System.Object):ubyte:this (FullOpts) -29 (-6.95 % of base) : System.Private.CoreLib.dasm - System.Diagnostics.Contracts.Contract:AssertMustUseRewriter(int,System.String) (FullOpts) -12 (-6.74 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoEvent:GetRoAddMethod():System.Reflection.TypeLoading.RoMethod:this (FullOpts) -12 (-6.74 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoEvent:GetRoRaiseMethod():System.Reflection.TypeLoading.RoMethod:this (FullOpts) -12 (-6.74 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoEvent:GetRoRemoveMethod():System.Reflection.TypeLoading.RoMethod:this (FullOpts) -16 (-6.13 % of base) : System.Private.Xml.dasm - System.Xml.Serialization.TempAssembly:IsSerializerVersionMatch(System.Reflection.Assembly,System.Type,System.String):ubyte (FullOpts) -20 (-5.97 % of base) : System.Reflection.MetadataLoadContext.dasm - System.Reflection.TypeLoading.RoAssembly:GetTypeCore(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],ubyte,byref):System.Reflection.TypeLoading.RoDefinitionType:this (FullOpts) -13 (-5.86 % of base) : System.Reflection.Context.dasm - System.Reflection.Context.Virtual.VirtualParameter:Equals(System.Object):ubyte:this (FullOpts) -7 (-5.74 % of base) : System.Text.Json.dasm - System.Text.Json.Serialization.JsonConverter:.ctor():this (FullOpts) -25 (-5.61 % of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationElement:SerializeToXmlElement(System.Xml.XmlWriter,System.String):ubyte:this (FullOpts) -14 (-5.43 % of base) : System.Diagnostics.DiagnosticSource.dasm - System.Diagnostics.DiagnosticListener+DiagnosticSubscription:Remove(System.Diagnostics.DiagnosticListener+DiagnosticSubscription,System.Diagnostics.DiagnosticListener+DiagnosticSubscription):System.Diagnostics.DiagnosticListener+DiagnosticSubscription (FullOpts) -22 (-4.68 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[double]:Clone():System.Data.SortExpressionBuilder`1[double]:this (FullOpts) -22 (-4.68 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[int]:Clone():System.Data.SortExpressionBuilder`1[int]:this (FullOpts) -22 (-4.68 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[long]:Clone():System.Data.SortExpressionBuilder`1[long]:this (FullOpts) -22 (-4.68 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[short]:Clone():System.Data.SortExpressionBuilder`1[short]:this (FullOpts) -22 (-4.68 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:Clone():System.Data.SortExpressionBuilder`1[System.Nullable`1[int]]:this (FullOpts) -22 (-4.68 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:Clone():System.Data.SortExpressionBuilder`1[System.Numerics.Vector`1[float]]:this (FullOpts) -22 (-4.68 % of base) : System.Data.Common.dasm - System.Data.SortExpressionBuilder`1[ubyte]:Clone():System.Data.SortExpressionBuilder`1[ubyte]:this (FullOpts) -10 (-4.65 % of base) : System.Private.CoreLib.dasm - System.Globalization.CompareInfo:GetCompareInfo(int,System.Reflection.Assembly):System.Globalization.CompareInfo (FullOpts) 330 total methods with Code Size differences (238 improved, 92 regressed), 238242 unchanged. -------------------------------------------------------------------------------- ```

Artifacts:

MihuBot commented 7 months ago

Top method regressions

21 (77.78 % of base) - System.Runtime.Versioning.FrameworkName:op_Equality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName):ubyte ```diff ; Assembly listing for method System.Runtime.Versioning.FrameworkName:op_Equality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName):ubyte (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code -; rsp based frame +; rbp based frame ; fully interruptible ; No PGO data ; Final local variable assignments ; -; V00 arg0 [V00,T00] ( 4, 3.50) ref -> rdi class-hnd single-def -; V01 arg1 [V01,T01] ( 4, 3 ) ref -> rsi class-hnd single-def +; V00 arg0 [V00,T01] ( 4, 3.50) ref -> rcx class-hnd single-def +; V01 arg1 [V01,T00] ( 5, 4 ) ref -> rsi class-hnd single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; ; Lcl frame size = 0 G_M59286_IG01: - ;; size=0 bbWeight=1 PerfScore 0.00 + push rbp + mov rbp, rsp + mov rcx, rdi + ;; size=7 bbWeight=1 PerfScore 1.50 G_M59286_IG02: - test rdi, rdi + cmp rcx, rsi jne SHORT G_M59286_IG05 ;; size=5 bbWeight=1 PerfScore 1.25 G_M59286_IG03: - xor eax, eax - test rsi, rsi - sete al - ;; size=8 bbWeight=0.50 PerfScore 0.75 + mov eax, 1 + ;; size=5 bbWeight=0.50 PerfScore 0.12 G_M59286_IG04: + pop rbp ret - ;; size=1 bbWeight=0.50 PerfScore 0.50 + ;; size=2 bbWeight=0.50 PerfScore 0.75 G_M59286_IG05: + test rsi, rsi + je SHORT G_M59286_IG07 + mov rdi, rsi + mov rsi, rcx mov rax, 0xD1FFAB1E ; code for System.Runtime.Versioning.FrameworkName:Equals(System.Runtime.Versioning.FrameworkName):ubyte:this - ;; size=10 bbWeight=0.50 PerfScore 0.12 + ;; size=21 bbWeight=0.50 PerfScore 1.00 G_M59286_IG06: + pop rbp tail.jmp [rax]System.Runtime.Versioning.FrameworkName:Equals(System.Runtime.Versioning.FrameworkName):ubyte:this - ;; size=3 bbWeight=0.50 PerfScore 1.00 + ;; size=4 bbWeight=0.50 PerfScore 1.25 +G_M59286_IG07: + xor eax, eax + ;; size=2 bbWeight=0.50 PerfScore 0.12 +G_M59286_IG08: + pop rbp + ret + ;; size=2 bbWeight=0.50 PerfScore 0.75 -; Total bytes of code 27, prolog size 0, PerfScore 3.62, instruction count 8, allocated bytes for code 27 (MethodHash=017e1869) for method System.Runtime.Versioning.FrameworkName:op_Equality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName):ubyte (FullOpts) +; Total bytes of code 48, prolog size 7, PerfScore 6.75, instruction count 18, allocated bytes for code 48 (MethodHash=017e1869) for method System.Runtime.Versioning.FrameworkName:op_Equality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName):ubyte (FullOpts) ```
15 (29.41 % of base) - System.Runtime.Versioning.FrameworkName:op_Inequality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName):ubyte ```diff ; Assembly listing for method System.Runtime.Versioning.FrameworkName:op_Inequality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName):ubyte (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; 0 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; -; V00 arg0 [V00,T00] ( 4, 3.50) ref -> rdi class-hnd single-def -; V01 arg1 [V01,T01] ( 4, 3 ) ref -> rsi class-hnd single-def +; V00 arg0 [V00,T01] ( 4, 3.50) ref -> rax class-hnd single-def +; V01 arg1 [V01,T00] ( 5, 4 ) ref -> rsi class-hnd single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V03 tmp1 [V03,T02] ( 3, 2 ) ubyte -> rbx "Inline return value spill temp" +; V03 tmp1 [V03,T02] ( 4, 2.50) ubyte -> rbx "Inline return value spill temp" ; ; Lcl frame size = 8 G_M13009_IG01: push rbp push rbx push rax lea rbp, [rsp+0x10] - ;; size=8 bbWeight=1 PerfScore 3.50 + mov rax, rdi + ;; size=11 bbWeight=1 PerfScore 3.75 G_M13009_IG02: - test rdi, rdi + cmp rax, rsi jne SHORT G_M13009_IG04 ;; size=5 bbWeight=1 PerfScore 1.25 G_M13009_IG03: - xor ebx, ebx - test rsi, rsi - sete bl - jmp SHORT G_M13009_IG05 - ;; size=10 bbWeight=0.50 PerfScore 1.75 + mov ebx, 1 + jmp SHORT G_M13009_IG06 + ;; size=7 bbWeight=0.50 PerfScore 1.12 G_M13009_IG04: + test rsi, rsi + je SHORT G_M13009_IG05 + mov rdi, rsi + mov rsi, rax mov rax, 0xD1FFAB1E ; code for System.Runtime.Versioning.FrameworkName:Equals(System.Runtime.Versioning.FrameworkName):ubyte:this call [rax]System.Runtime.Versioning.FrameworkName:Equals(System.Runtime.Versioning.FrameworkName):ubyte:this mov ebx, eax - ;; size=14 bbWeight=0.50 PerfScore 1.75 + jmp SHORT G_M13009_IG06 + ;; size=27 bbWeight=0.50 PerfScore 3.62 G_M13009_IG05: + xor ebx, ebx + ;; size=2 bbWeight=0.50 PerfScore 0.12 +G_M13009_IG06: xor eax, eax test ebx, ebx sete al ;; size=7 bbWeight=1 PerfScore 1.50 -G_M13009_IG06: +G_M13009_IG07: add rsp, 8 pop rbx pop rbp ret ;; size=7 bbWeight=1 PerfScore 2.25 -; Total bytes of code 51, prolog size 8, PerfScore 12.00, instruction count 20, allocated bytes for code 51 (MethodHash=d495cd2e) for method System.Runtime.Versioning.FrameworkName:op_Inequality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName):ubyte (FullOpts) +; Total bytes of code 66, prolog size 8, PerfScore 13.62, instruction count 25, allocated bytes for code 66 (MethodHash=d495cd2e) for method System.Runtime.Versioning.FrameworkName:op_Inequality(System.Runtime.Versioning.FrameworkName,System.Runtime.Versioning.FrameworkName):ubyte (FullOpts) ```
13 (2.50 % of base) - System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:ClearCache(System.Type[]) ```diff ; Assembly listing for method System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:ClearCache(System.Type[]) (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; 8 single block inlinees; 5 inlinees without PGO data +; 0 inlinees with PGO data; 6 single block inlinees; 5 inlinees without PGO data ; Final local variable assignments ; ; V00 arg0 [V00,T16] ( 4, 4 ) ref -> rbx class-hnd single-def ; V01 loc0 [V01,T10] ( 4, 17 ) ref -> [rbp-0x40] class-hnd EH-live spill-single-def -; V02 loc1 [V02,T07] ( 5, 33 ) int -> [rbp-0x2C] do-not-enreg[Z] EH-live -; V03 loc2 [V03,T09] ( 5, 28 ) ref -> rbx class-hnd -; V04 loc3 [V04,T05] ( 3, 40 ) ref -> rbx class-hnd +; V02 loc1 [V02,T08] ( 5, 33 ) int -> [rbp-0x2C] do-not-enreg[Z] EH-live +; V03 loc2 [V03,T07] ( 7, 36 ) ref -> rbx class-hnd +; V04 loc3 [V04,T04] ( 3, 40 ) ref -> rbx class-hnd ; V05 loc4 [V05,T01] ( 5,132 ) int -> r15 ; V06 loc5 [V06,T03] ( 2, 64 ) ref -> rdi class-hnd -; V07 loc6 [V07,T12] ( 3, 10 ) ref -> rbx class-hnd single-def -; V08 loc7 [V08,T08] ( 5, 33 ) int -> r15 -; V09 loc8 [V09,T11] ( 2, 16 ) ref -> rdi class-hnd +; V07 loc6 [V07,T13] ( 3, 10 ) ref -> rbx class-hnd single-def +; V08 loc7 [V08,T09] ( 5, 33 ) int -> r15 +; V09 loc8 [V09,T12] ( 2, 16 ) ref -> rdi class-hnd ;# 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 "impSpillSpecialSideEff" ;* V12 tmp2 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" ; V13 tmp3 [V13,T17] ( 2, 2 ) ref -> rdi class-hnd single-def "Inline return value spill temp" ; V14 tmp4 [V14 ] ( 4, 4 ) ref -> [rbp-0x38] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline stloc first use temp" ;* V15 tmp5 [V15 ] ( 0, 0 ) struct ( 8) zero-ref "spilled call-like call argument" ;* V16 tmp6 [V16 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "NewObj constructor temp" ;* V17 tmp7 [V17 ] ( 0, 0 ) long -> zero-ref "Inlining Arg" -;* V18 tmp8 [V18,T14] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" -; V19 tmp9 [V19,T04] ( 3, 32 ) ref -> rax class-hnd exact "Inlining Arg" +; V18 tmp8 [V18,T11] ( 2, 8 ) ubyte -> rax "Inline return value spill temp" +; V19 tmp9 [V19,T05] ( 3, 40 ) ref -> rax class-hnd exact "Inlining Arg" ; V20 tmp10 [V20,T00] ( 7,280 ) ref -> rdi class-hnd "spilling QMark2" ;* V21 tmp11 [V21 ] ( 0, 0 ) ref -> zero-ref ; V22 tmp12 [V22,T02] ( 7, 70 ) ref -> rdi class-hnd "spilling QMark2" ;* V23 tmp13 [V23 ] ( 0, 0 ) ref -> zero-ref ; V24 FramesRoot [V24,T15] ( 6, 6 ) long -> r15 "Pinvoke FrameListRoot" ; V25 PInvokeFrame [V25 ] ( 8, 8 ) struct (72) [rbp-0x88] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar" ;* V26 tmp16 [V26 ] ( 0, 0 ) long -> zero-ref "field V15._ptr (fldOffset=0x0)" P-INDEP ; V27 tmp17 [V27,T18] ( 2, 2 ) long -> rdi "field V16._ptr (fldOffset=0x0)" P-INDEP ; V28 PSPSym [V28,T19] ( 1, 1 ) long -> [rbp-0x90] do-not-enreg[V] "PSPSym" ; V29 cse0 [V29,T06] ( 3, 40 ) int -> r14 "CSE - aggressive" -; V30 cse1 [V30,T13] ( 3, 10 ) int -> r14 "CSE - moderate" +; V30 cse1 [V30,T14] ( 3, 10 ) int -> r14 "CSE - moderate" ; ; Lcl frame size = 104 G_M26400_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 104 lea rbp, [rsp+0x90] xor ecx, ecx mov qword ptr [rbp-0x38], rcx mov qword ptr [rbp-0x90], rsp mov rbx, rdi ;; size=38 bbWeight=1 PerfScore 9.25 G_M26400_IG02: lea rdi, [rbp-0x80] mov rsi, r10 call CORINFO_HELP_INIT_PINVOKE_FRAME mov r15, rax mov rdi, rsp mov qword ptr [rbp-0x60], rdi mov rdi, rbp mov qword ptr [rbp-0x50], rdi mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:RequiresClearingAllTypes(System.Type[]):ubyte call [rax]System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:RequiresClearingAllTypes(System.Type[]):ubyte test eax, eax - je G_M26400_IG20 + je G_M26400_IG19 mov rax, 0xD1FFAB1E ; code for System.AppDomain:get_CurrentDomain():System.AppDomain call [rax]System.AppDomain:get_CurrentDomain():System.AppDomain cmp byte ptr [rax], al xor rdi, rdi mov gword ptr [rbp-0x38], rdi lea rdi, [rbp-0x38] mov rax, 0xD1FFAB1E ; function address mov qword ptr [rbp-0x70], rax lea rax, G_M26400_IG05 mov qword ptr [rbp-0x58], rax lea rax, bword ptr [rbp-0x80] mov qword ptr [r15+0x10], rax mov byte ptr [r15+0x0C], 0 ;; size=114 bbWeight=1 PerfScore 23.00 G_M26400_IG03: mov rax, 0xD1FFAB1E ; function address ;; size=10 bbWeight=1 PerfScore 0.25 G_M26400_IG04: call rax ; System.Runtime.Loader.AssemblyLoadContext:GetLoadedAssemblies(System.Runtime.CompilerServices.ObjectHandleOnStack) ;; size=2 bbWeight=1 PerfScore 3.00 G_M26400_IG05: mov byte ptr [r15+0x0C], 1 mov rcx, 0xD1FFAB1E ; function address cmp dword ptr [rcx], 0 je SHORT G_M26400_IG06 mov rdi, 0xD1FFAB1E call [rdi]CORINFO_HELP_STOP_FOR_GC ;; size=32 bbWeight=1 PerfScore 8.50 G_M26400_IG06: mov rdi, bword ptr [rbp-0x78] mov qword ptr [r15+0x10], rdi mov rdi, gword ptr [rbp-0x38] xor rax, rax mov gword ptr [rbp-0x38], rax mov gword ptr [rbp-0x40], rdi ;; size=22 bbWeight=1 PerfScore 5.25 G_M26400_IG07: mov dword ptr [rbp-0x2C], eax cmp dword ptr [rdi+0x08], 0 - jle G_M26400_IG27 + jle G_M26400_IG26 ;; size=13 bbWeight=1 PerfScore 5.00 G_M26400_IG08: mov eax, dword ptr [rbp-0x2C] mov rbx, gword ptr [rdi+8*rax+0x10] mov rdi, 0xD1FFAB1E ; 'System.Object' call System.RuntimeTypeHandle:GetAssembly(System.RuntimeType):System.Reflection.RuntimeAssembly - test rbx, rbx - jne SHORT G_M26400_IG10 + cmp rax, rbx + je SHORT G_M26400_IG17 ;; size=28 bbWeight=8 PerfScore 44.00 G_M26400_IG09: - test rax, rax - je SHORT G_M26400_IG18 - jmp SHORT G_M26400_IG11 - ;; size=7 bbWeight=4 PerfScore 13.00 + test rbx, rbx + je SHORT G_M26400_IG10 + mov rdi, rbx + mov rsi, rax + mov rax, qword ptr [rbx] + mov rax, qword ptr [rax+0x40] + call [rax+0x10]System.Object:Equals(System.Object):ubyte:this + test eax, eax + jne SHORT G_M26400_IG17 + ;; size=25 bbWeight=4 PerfScore 40.00 G_M26400_IG10: - cmp rax, rbx - je SHORT G_M26400_IG18 - ;; size=5 bbWeight=4 PerfScore 5.00 -G_M26400_IG11: mov rdi, rbx mov rax, qword ptr [rbx] mov rax, qword ptr [rax+0x40] call [rax+0x28]System.Reflection.Assembly:GetTypes():System.Type[]:this mov rbx, rax xor r15d, r15d mov r14d, dword ptr [rbx+0x08] test r14d, r14d - jle SHORT G_M26400_IG18 + jle SHORT G_M26400_IG17 ;; size=28 bbWeight=4 PerfScore 44.00 -G_M26400_IG12: +G_M26400_IG11: mov edi, r15d mov rdi, gword ptr [rbx+8*rdi+0x10] test rdi, rdi - je SHORT G_M26400_IG15 + je SHORT G_M26400_IG14 ;; size=13 bbWeight=32 PerfScore 112.00 -G_M26400_IG13: +G_M26400_IG12: mov rsi, 0xD1FFAB1E ; System.RuntimeType cmp qword ptr [rdi], rsi - je SHORT G_M26400_IG15 + je SHORT G_M26400_IG14 ;; size=15 bbWeight=8 PerfScore 34.00 -G_M26400_IG14: +G_M26400_IG13: xor rdi, rdi ;; size=2 bbWeight=4 PerfScore 1.00 -G_M26400_IG15: +G_M26400_IG14: test rdi, rdi - je SHORT G_M26400_IG17 + je SHORT G_M26400_IG16 ;; size=5 bbWeight=32 PerfScore 40.00 -G_M26400_IG16: +G_M26400_IG15: cmp qword ptr [rdi+0x10], 0 - je SHORT G_M26400_IG17 + je SHORT G_M26400_IG16 mov rdi, qword ptr [rdi+0x10] xor rsi, rsi call System.Runtime.InteropServices.GCHandle:InternalSet(long,System.Object) ;; size=18 bbWeight=16 PerfScore 116.00 -G_M26400_IG17: +G_M26400_IG16: inc r15d cmp r14d, r15d - jg SHORT G_M26400_IG12 + jg SHORT G_M26400_IG11 ;; size=8 bbWeight=32 PerfScore 48.00 -G_M26400_IG18: +G_M26400_IG17: mov edi, dword ptr [rbp-0x2C] inc edi mov dword ptr [rbp-0x2C], edi mov rdi, gword ptr [rbp-0x40] mov esi, dword ptr [rdi+0x08] cmp esi, dword ptr [rbp-0x2C] jg G_M26400_IG08 ;; size=24 bbWeight=8 PerfScore 66.00 -G_M26400_IG19: - jmp SHORT G_M26400_IG27 +G_M26400_IG18: + jmp SHORT G_M26400_IG26 ;; size=2 bbWeight=1 PerfScore 2.00 -G_M26400_IG20: +G_M26400_IG19: xor r15d, r15d mov r14d, dword ptr [rbx+0x08] test r14d, r14d - jle SHORT G_M26400_IG27 + jle SHORT G_M26400_IG26 ;; size=12 bbWeight=1 PerfScore 3.50 -G_M26400_IG21: +G_M26400_IG20: mov edi, r15d mov rdi, gword ptr [rbx+8*rdi+0x10] test rdi, rdi - je SHORT G_M26400_IG24 + je SHORT G_M26400_IG23 ;; size=13 bbWeight=8 PerfScore 28.00 -G_M26400_IG22: +G_M26400_IG21: mov rsi, 0xD1FFAB1E ; System.RuntimeType cmp qword ptr [rdi], rsi - je SHORT G_M26400_IG24 + je SHORT G_M26400_IG23 ;; size=15 bbWeight=2 PerfScore 8.50 -G_M26400_IG23: +G_M26400_IG22: xor rdi, rdi ;; size=2 bbWeight=1 PerfScore 0.25 -G_M26400_IG24: +G_M26400_IG23: test rdi, rdi - je SHORT G_M26400_IG26 + je SHORT G_M26400_IG25 ;; size=5 bbWeight=8 PerfScore 10.00 -G_M26400_IG25: +G_M26400_IG24: cmp qword ptr [rdi+0x10], 0 - je SHORT G_M26400_IG26 + je SHORT G_M26400_IG25 mov rdi, qword ptr [rdi+0x10] xor rsi, rsi call System.Runtime.InteropServices.GCHandle:InternalSet(long,System.Object) ;; size=18 bbWeight=4 PerfScore 29.00 -G_M26400_IG26: +G_M26400_IG25: inc r15d cmp r14d, r15d - jg SHORT G_M26400_IG21 + jg SHORT G_M26400_IG20 ;; size=8 bbWeight=8 PerfScore 12.00 -G_M26400_IG27: +G_M26400_IG26: add rsp, 104 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=1 PerfScore 4.25 -G_M26400_IG28: +G_M26400_IG27: 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+0x90] ;; size=25 bbWeight=0 PerfScore 0.00 -G_M26400_IG29: - lea rax, G_M26400_IG18 +G_M26400_IG28: + lea rax, G_M26400_IG17 ;; size=7 bbWeight=0 PerfScore 0.00 -G_M26400_IG30: +G_M26400_IG29: 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 521, prolog size 38, PerfScore 674.75, instruction count 150, allocated bytes for code 521 (MethodHash=d84398df) for method System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:ClearCache(System.Type[]) (FullOpts) +; Total bytes of code 534, prolog size 38, PerfScore 696.75, instruction count 154, allocated bytes for code 534 (MethodHash=d84398df) for method System.Reflection.Metadata.RuntimeTypeMetadataUpdateHandler:ClearCache(System.Type[]) (FullOpts) ```
12 (8.33 % of base) - System.Attribute:GetParentDefinition(System.Reflection.EventInfo):System.Reflection.EventInfo ```diff ; Assembly listing for method System.Attribute:GetParentDefinition(System.Reflection.EventInfo):System.Reflection.EventInfo (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; 4 single block inlinees; 3 inlinees without PGO data ; Final local variable assignments ; -; V00 arg0 [V00,T00] ( 6, 5 ) ref -> rbx class-hnd single-def -; V01 loc0 [V01,T03] ( 2, 2 ) ref -> rdi class-hnd single-def +; V00 arg0 [V00,T00] ( 5, 4.50) ref -> rbx class-hnd single-def +; V01 loc0 [V01,T04] ( 2, 2 ) ref -> rdi class-hnd single-def ; V02 loc1 [V02,T01] ( 8, 4.75) ref -> rdi class-hnd ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ;* V04 tmp1 [V04 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" -; V05 tmp2 [V05,T02] ( 4, 4 ) ref -> r15 class-hnd "non-inline candidate call" -;* V06 tmp3 [V06 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" -;* V07 tmp4 [V07 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +; V05 tmp2 [V05,T02] ( 4, 4 ) ref -> r14 class-hnd "non-inline candidate call" +;* V06 tmp3 [V06,T06] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +;* V07 tmp4 [V07,T07] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V08 tmp5 [V08 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" ;* V09 tmp6 [V09 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V10 tmp7 [V10,T04] ( 2, 2 ) ref -> rsi single-def "argument with side effect" +; V10 tmp7 [V10,T05] ( 2, 2 ) ref -> rsi single-def "argument with side effect" +; V11 cse0 [V11,T03] ( 3, 2.50) long -> r15 "CSE - aggressive" ; -; Lcl frame size = 0 +; Lcl frame size = 8 G_M35571_IG01: push rbp push r15 + push r14 push rbx - lea rbp, [rsp+0x10] + push rax + lea rbp, [rsp+0x20] mov rbx, rdi - ;; size=12 bbWeight=1 PerfScore 3.75 + ;; size=15 bbWeight=1 PerfScore 5.75 G_M35571_IG02: mov rdi, rbx mov esi, 1 - mov rax, qword ptr [rbx] - mov rax, qword ptr [rax+0x50] + mov r15, qword ptr [rbx] + mov rax, qword ptr [r15+0x50] call [rax+0x38]System.Reflection.EventInfo:GetAddMethod(ubyte):System.Reflection.MethodInfo:this mov rdi, rax test rdi, rdi je SHORT G_M35571_IG08 ;; size=26 bbWeight=1 PerfScore 9.00 G_M35571_IG03: mov rax, 0xD1FFAB1E ; System.Reflection.RuntimeMethodInfo cmp qword ptr [rdi], rax jne SHORT G_M35571_IG08 ;; size=15 bbWeight=0.25 PerfScore 1.06 G_M35571_IG04: mov rax, 0xD1FFAB1E ; code for System.Reflection.RuntimeMethodInfo:GetParentDefinition():System.Reflection.RuntimeMethodInfo:this call [rax]System.Reflection.RuntimeMethodInfo:GetParentDefinition():System.Reflection.RuntimeMethodInfo:this mov rdi, rax test rdi, rdi je SHORT G_M35571_IG08 mov rax, gword ptr [rdi+0x08] cmp byte ptr [rax+0x94], 0 je SHORT G_M35571_IG05 - xor r15, r15 + xor r14, r14 jmp SHORT G_M35571_IG06 ;; size=38 bbWeight=0.50 PerfScore 6.50 G_M35571_IG05: - mov r15, gword ptr [rdi+0x38] + mov r14, gword ptr [rdi+0x38] ;; size=4 bbWeight=0.50 PerfScore 1.00 G_M35571_IG06: mov rdi, rbx - mov rax, qword ptr [rbx] - mov rax, qword ptr [rax+0x40] + mov rax, qword ptr [r15+0x40] call [rax+0x30]System.Reflection.MemberInfo:get_Name():System.String:this mov rsi, rax - mov rdi, r15 + mov rdi, r14 mov edx, 28 - mov rax, qword ptr [r15] + mov rax, qword ptr [r14] mov rax, qword ptr [rax+0x80] - ;; size=34 bbWeight=0.50 PerfScore 6.00 + ;; size=31 bbWeight=0.50 PerfScore 5.00 G_M35571_IG07: + add rsp, 8 pop rbx + pop r14 pop r15 pop rbp tail.jmp [rax+0x08]System.Type:GetEvent(System.String,int):System.Reflection.EventInfo:this - ;; size=8 bbWeight=0.50 PerfScore 1.75 + ;; size=14 bbWeight=0.50 PerfScore 2.12 G_M35571_IG08: xor rax, rax ;; size=2 bbWeight=0.50 PerfScore 0.12 G_M35571_IG09: + add rsp, 8 pop rbx + pop r14 pop r15 pop rbp ret - ;; size=5 bbWeight=0.50 PerfScore 1.25 + ;; size=11 bbWeight=0.50 PerfScore 1.62 -; Total bytes of code 144, prolog size 9, PerfScore 30.44, instruction count 45, allocated bytes for code 144 (MethodHash=b0ce750c) for method System.Attribute:GetParentDefinition(System.Reflection.EventInfo):System.Reflection.EventInfo (FullOpts) +; Total bytes of code 156, prolog size 12, PerfScore 32.19, instruction count 50, allocated bytes for code 156 (MethodHash=b0ce750c) for method System.Attribute:GetParentDefinition(System.Reflection.EventInfo):System.Reflection.EventInfo (FullOpts) ```
12 (33.33 % of base) - System.Globalization.SortVersion:op_Equality(System.Globalization.SortVersion,System.Globalization.SortVersion):ubyte ```diff ; Assembly listing for method System.Globalization.SortVersion:op_Equality(System.Globalization.SortVersion,System.Globalization.SortVersion):ubyte (FullOpts) ; Emitting BLENDED_CODE for X64 with AVX - Unix ; FullOpts code ; optimized code -; rsp based frame +; rbp based frame ; fully interruptible ; No PGO data ; Final local variable assignments ; -; V00 arg0 [V00,T01] ( 4, 3 ) ref -> rcx class-hnd single-def -; V01 arg1 [V01,T00] ( 4, 3.50) ref -> rsi class-hnd single-def +; V00 arg0 [V00,T01] ( 4, 3.50) ref -> rcx class-hnd single-def +; V01 arg1 [V01,T00] ( 5, 4 ) ref -> rsi class-hnd single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; ; Lcl frame size = 0 G_M16736_IG01: + push rbp + mov rbp, rsp mov rcx, rdi - ;; size=3 bbWeight=1 PerfScore 0.25 + ;; size=7 bbWeight=1 PerfScore 1.50 G_M16736_IG02: - test rsi, rsi + cmp rcx, rsi jne SHORT G_M16736_IG05 ;; size=5 bbWeight=1 PerfScore 1.25 G_M16736_IG03: - xor eax, eax - test rcx, rcx - sete al - ;; size=8 bbWeight=0.50 PerfScore 0.75 + mov eax, 1 + ;; size=5 bbWeight=0.50 PerfScore 0.12 G_M16736_IG04: + pop rbp ret - ;; size=1 bbWeight=0.50 PerfScore 0.50 + ;; size=2 bbWeight=0.50 PerfScore 0.75 G_M16736_IG05: + test rsi, rsi + je SHORT G_M16736_IG07 mov rdi, rsi mov rsi, rcx mov rax, 0xD1FFAB1E ; code for System.Globalization.SortVersion:Equals(System.Globalization.SortVersion):ubyte:this - ;; size=16 bbWeight=0.50 PerfScore 0.38 + ;; size=21 bbWeight=0.50 PerfScore 1.00 G_M16736_IG06: + pop rbp tail.jmp [rax]System.Globalization.SortVersion:Equals(System.Globalization.SortVersion):ubyte:this - ;; size=3 bbWeight=0.50 PerfScore 1.00 + ;; size=4 bbWeight=0.50 PerfScore 1.25 +G_M16736_IG07: + xor eax, eax + ;; size=2 bbWeight=0.50 PerfScore 0.12 +G_M16736_IG08: + pop rbp + ret + ;; size=2 bbWeight=0.50 PerfScore 0.75 -; Total bytes of code 36, prolog size 3, PerfScore 4.12, instruction count 11, allocated bytes for code 36 (MethodHash=6f63be9f) for method System.Globalization.SortVersion:op_Equality(System.Globalization.SortVersion,System.Globalization.SortVersion):ubyte (FullOpts) +; Total bytes of code 48, prolog size 7, PerfScore 6.75, instruction count 18, allocated bytes for code 48 (MethodHash=6f63be9f) for method System.Globalization.SortVersion:op_Equality(System.Globalization.SortVersion,System.Globalization.SortVersion):ubyte (FullOpts) ```
10 (1.61 % of base) - System.Resources.ManifestBasedResourceGroveler:GrovelForResourceSet(System.Globalization.CultureInfo,System.Collections.Generic.Dictionary`2[System.String,System.Resources.ResourceSet],ubyte,ubyte):System.Resources.ResourceSet:this ```diff ; Assembly listing for method System.Resources.ManifestBasedResourceGroveler:GrovelForResourceSet(System.Globalization.CultureInfo,System.Collections.Generic.Dictionary`2[System.String,System.Resources.ResourceSet],ubyte,ubyte):System.Resources.ResourceSet: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; 7 single block inlinees; 5 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T00] ( 10, 6 ) ref -> rbx this class-hnd single-def ; V01 arg1 [V01,T01] ( 7, 5 ) ref -> r15 class-hnd single-def ; V02 arg2 [V02,T02] ( 7, 4.50) ref -> r14 class-hnd single-def ; V03 arg3 [V03,T06] ( 3, 2.50) ubyte -> r12 single-def ; V04 arg4 [V04,T04] ( 3, 3 ) ubyte -> r13 single-def ; V05 loc0 [V05,T07] ( 5, 3.50) ref -> [rbp-0x38] ld-addr-op class-hnd ; V06 loc1 [V06,T09] ( 5, 3 ) ref -> [rbp-0x40] class-hnd ; V07 loc2 [V07,T05] ( 8, 4.50) ref -> [rbp-0x48] class-hnd ; V08 loc3 [V08,T08] ( 4, 3.50) ref -> [rbp-0x50] class-hnd spill-single-def ; V09 loc4 [V09,T10] ( 4, 2 ) ref -> [rbp-0x58] class-hnd exact single-def ;* V10 loc5 [V10 ] ( 0, 0 ) ubyte -> zero-ref -; V11 loc6 [V11,T18] ( 2, 0 ) ref -> [rbp-0x60] class-hnd EH-live single-def +; V11 loc6 [V11,T20] ( 2, 0 ) ref -> [rbp-0x60] class-hnd EH-live single-def ; V12 loc7 [V12 ] ( 5, 2 ) ubyte -> [rbp-0x30] do-not-enreg[X] addr-exposed ld-addr-op ;* V13 loc8 [V13 ] ( 0, 0 ) ubyte -> zero-ref ;# V14 OutArgs [V14 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" ; V15 tmp1 [V15,T16] ( 2, 1 ) int -> rdi ;* V16 tmp2 [V16 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" ;* V17 tmp3 [V17 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* V18 tmp4 [V18 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -;* V19 tmp5 [V19 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +;* V19 tmp5 [V19,T17] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V20 tmp6 [V20 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" ;* V21 tmp7 [V21 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* V22 tmp8 [V22 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -;* V23 tmp9 [V23 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +;* V23 tmp9 [V23,T18] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ;* V24 tmp10 [V24 ] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" ; V25 tmp11 [V25,T12] ( 2, 2 ) ref -> rsi class-hnd exact single-def "Inlining Arg" ; V26 tmp12 [V26,T14] ( 3, 1.50) byref -> rax single-def "Inline stloc first use temp" ; V27 tmp13 [V27,T13] ( 2, 2 ) ref -> rax class-hnd single-def "dup spill" ; V28 tmp14 [V28,T11] ( 4, 2 ) ref -> rcx ; V29 tmp15 [V29,T03] ( 3, 6 ) ref -> rdi single-def "argument with side effect" -; V30 PSPSym [V30,T17] ( 1, 1 ) long -> [rbp-0x70] do-not-enreg[V] "PSPSym" +; V30 PSPSym [V30,T19] ( 1, 1 ) long -> [rbp-0x70] do-not-enreg[V] "PSPSym" ; V31 cse0 [V31,T15] ( 3, 1.50) ref -> rdi "CSE - moderate" ; ; Lcl frame size = 72 G_M8772_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 72 lea rbp, [rsp+0x70] mov qword ptr [rbp-0x70], rsp mov rbx, rdi mov r15, rsi mov r14, rdx mov r12d, ecx mov r13d, r8d ;; size=38 bbWeight=1 PerfScore 9.00 G_M8772_IG02: xor rax, rax mov gword ptr [rbp-0x38], rax xor rcx, rcx mov gword ptr [rbp-0x40], rcx mov rdi, rbx mov rsi, r15 mov rdx, 0xD1FFAB1E ; code for System.Resources.ManifestBasedResourceGroveler:UltimateFallbackFixup(System.Globalization.CultureInfo):System.Globalization.CultureInfo:this call [rdx]System.Resources.ManifestBasedResourceGroveler:UltimateFallbackFixup(System.Globalization.CultureInfo):System.Globalization.CultureInfo:this mov gword ptr [rbp-0x50], rax mov rdi, rax mov rcx, 0xD1FFAB1E ; code for System.Globalization.CultureInfo:get_HasInvariantCultureName():ubyte:this cmp dword ptr [rdi], edi call [rcx]System.Globalization.CultureInfo:get_HasInvariantCultureName():ubyte:this test eax, eax je SHORT G_M8772_IG04 ;; size=55 bbWeight=1 PerfScore 15.00 G_M8772_IG03: mov rdi, gword ptr [rbx+0x08] mov rdi, gword ptr [rdi+0x08] cmp dword ptr [rdi+0x50], 0 jne SHORT G_M8772_IG04 mov rax, gword ptr [rdi+0x10] mov gword ptr [rbp-0x48], rax jmp SHORT G_M8772_IG05 ;; size=24 bbWeight=0.50 PerfScore 6.50 G_M8772_IG04: mov rdi, rbx mov rsi, gword ptr [rbp-0x50] mov rax, 0xD1FFAB1E ; code for System.Resources.ManifestBasedResourceGroveler:GetSatelliteAssembly(System.Globalization.CultureInfo):System.Reflection.Assembly:this call [rax]System.Resources.ManifestBasedResourceGroveler:GetSatelliteAssembly(System.Globalization.CultureInfo):System.Reflection.Assembly:this mov gword ptr [rbp-0x48], rax test rax, rax jne SHORT G_M8772_IG05 mov rdi, r15 mov rcx, 0xD1FFAB1E ; code for System.Globalization.CultureInfo:get_HasInvariantCultureName():ubyte:this cmp dword ptr [rdi], edi call [rcx]System.Globalization.CultureInfo:get_HasInvariantCultureName():ubyte:this test eax, eax je SHORT G_M8772_IG05 mov rdi, gword ptr [rbx+0x08] mov rdi, gword ptr [rdi+0x08] cmp dword ptr [rdi+0x50], 1 sete dil movzx rdi, dil test dil, dil jne G_M8772_IG22 ;; size=78 bbWeight=0.50 PerfScore 12.00 G_M8772_IG05: mov rdi, gword ptr [rbx+0x08] mov rdi, gword ptr [rdi+0x08] mov rsi, gword ptr [rbp-0x50] mov rcx, qword ptr [rdi] mov rcx, qword ptr [rcx+0x48] call [rcx+0x08]System.Resources.ResourceManager:GetResourceFileName(System.Globalization.CultureInfo):System.String:this mov gword ptr [rbp-0x58], rax cmp gword ptr [rbp-0x48], 0 - je G_M8772_IG18 - ;; size=37 bbWeight=1 PerfScore 16.00 + jne SHORT G_M8772_IG13 + ;; size=33 bbWeight=1 PerfScore 16.00 G_M8772_IG06: + test r13b, r13b + je SHORT G_M8772_IG12 + ;; size=5 bbWeight=1 PerfScore 1.25 +G_M8772_IG07: + mov rcx, gword ptr [rbp-0x48] + mov r14, gword ptr [rbp-0x40] + test r14, r14 + je SHORT G_M8772_IG11 + mov r13, gword ptr [rbp-0x38] + test r13, r13 + jne SHORT G_M8772_IG10 + mov rdi, rbx + mov rsi, r14 + mov rdx, rcx + mov rax, 0xD1FFAB1E ; code for System.Resources.ManifestBasedResourceGroveler:CreateResourceSet(System.IO.Stream,System.Reflection.Assembly):System.Resources.ResourceSet:this + call [rax]System.Resources.ManifestBasedResourceGroveler:CreateResourceSet(System.IO.Stream,System.Reflection.Assembly):System.Resources.ResourceSet:this + mov r13, rax + ;; size=46 bbWeight=0.50 PerfScore 4.88 +G_M8772_IG08: + mov rax, r13 + ;; size=3 bbWeight=1 PerfScore 0.25 +G_M8772_IG09: + add rsp, 72 + pop rbx + pop r12 + pop r13 + pop r14 + pop r15 + pop rbp + ret + ;; size=15 bbWeight=1 PerfScore 4.25 +G_M8772_IG10: + mov gword ptr [rbp-0x40], r14 + jmp G_M8772_IG20 + ;; size=9 bbWeight=0.25 PerfScore 0.75 +G_M8772_IG11: + mov gword ptr [rbp-0x40], r14 + mov r13, gword ptr [rbp-0x38] + jmp G_M8772_IG20 + ;; size=13 bbWeight=0.25 PerfScore 1.00 +G_M8772_IG12: + mov r13, gword ptr [rbp-0x38] + jmp G_M8772_IG20 + ;; size=9 bbWeight=0.50 PerfScore 1.50 +G_M8772_IG13: mov gword ptr [rbp-0x60], r14 xor esi, esi mov dword ptr [rbp-0x30], esi ;; size=9 bbWeight=0.50 PerfScore 1.12 -G_M8772_IG07: +G_M8772_IG14: cmp byte ptr [rbp-0x30], 0 - je SHORT G_M8772_IG09 + je SHORT G_M8772_IG16 ;; size=6 bbWeight=0.50 PerfScore 1.50 -G_M8772_IG08: +G_M8772_IG15: mov rax, 0xD1FFAB1E ; code for System.Threading.Monitor:ThrowLockTakenException() call [rax]System.Threading.Monitor:ThrowLockTakenException() int3 ;; size=13 bbWeight=0 PerfScore 0.00 -G_M8772_IG09: +G_M8772_IG16: lea rsi, [rbp-0x30] mov rdi, r14 call System.Threading.Monitor:ReliableEnter(System.Object,byref) mov rdi, r15 mov rax, qword ptr [r15] mov rax, qword ptr [rax+0x40] call [rax+0x38]System.Globalization.CultureInfo:get_Name():System.String:this mov rsi, rax cmp byte ptr [r14], r14b mov rdi, r14 mov rax, 0xD1FFAB1E ; code for System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this call [rax]System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:FindValue(System.__Canon):byref:this test rax, rax - je SHORT G_M8772_IG10 + je SHORT G_M8772_IG17 mov rax, gword ptr [rax] mov gword ptr [rbp-0x38], rax ;; size=58 bbWeight=0.50 PerfScore 10.00 -G_M8772_IG10: +G_M8772_IG17: cmp byte ptr [rbp-0x30], 0 - je SHORT G_M8772_IG11 + je SHORT G_M8772_IG18 mov rdi, r14 call System.Threading.Monitor:Exit(System.Object) ;; size=14 bbWeight=0.50 PerfScore 2.12 -G_M8772_IG11: +G_M8772_IG18: mov rdi, gword ptr [rbp-0x48] mov rsi, gword ptr [rbp-0x58] mov gword ptr [rbp-0x48], rdi mov rcx, qword ptr [rdi] mov rcx, qword ptr [rcx+0x50] call [rcx+0x18]System.Reflection.Assembly:GetManifestResourceStream(System.String):System.IO.Stream:this mov rcx, rax test rcx, rcx - jne SHORT G_M8772_IG12 + jne SHORT G_M8772_IG19 mov rdi, gword ptr [rbp-0x48] mov rsi, gword ptr [rbp-0x58] mov rax, 0xD1FFAB1E ; code for System.Resources.ManifestBasedResourceGroveler:CaseInsensitiveManifestResourceStreamLookup(System.Reflection.Assembly,System.String):System.IO.Stream call [rax]System.Resources.ManifestBasedResourceGroveler:CaseInsensitiveManifestResourceStreamLookup(System.Reflection.Assembly,System.String):System.IO.Stream mov rcx, rax ;; size=53 bbWeight=0.50 PerfScore 8.50 -G_M8772_IG12: +G_M8772_IG19: mov r14, rcx mov gword ptr [rbp-0x40], r14 - mov rcx, gword ptr [rbp-0x48] - ;; size=11 bbWeight=0.50 PerfScore 1.12 -G_M8772_IG13: - test r13b, r13b - je SHORT G_M8772_IG17 - ;; size=5 bbWeight=1 PerfScore 1.25 -G_M8772_IG14: - mov r14, gword ptr [rbp-0x40] - test r14, r14 - je SHORT G_M8772_IG16 - mov r13, gword ptr [rbp-0x38] - test r13, r13 - jne SHORT G_M8772_IG15 - mov rdi, rbx - mov rsi, r14 - mov rdx, rcx - mov rax, 0xD1FFAB1E ; code for System.Resources.ManifestBasedResourceGroveler:CreateResourceSet(System.IO.Stream,System.Reflection.Assembly):System.Resources.ResourceSet:this - call [rax]System.Resources.ManifestBasedResourceGroveler:CreateResourceSet(System.IO.Stream,System.Reflection.Assembly):System.Resources.ResourceSet:this - mov r13, rax - jmp SHORT G_M8772_IG20 - ;; size=44 bbWeight=0.50 PerfScore 5.38 -G_M8772_IG15: - mov gword ptr [rbp-0x40], r14 - jmp SHORT G_M8772_IG19 - ;; size=6 bbWeight=0.25 PerfScore 0.75 -G_M8772_IG16: - mov gword ptr [rbp-0x40], r14 - mov r13, gword ptr [rbp-0x38] - jmp SHORT G_M8772_IG19 - ;; size=10 bbWeight=0.25 PerfScore 1.00 -G_M8772_IG17: - mov r13, gword ptr [rbp-0x38] - jmp SHORT G_M8772_IG19 - ;; size=6 bbWeight=0.50 PerfScore 1.50 -G_M8772_IG18: - mov rcx, gword ptr [rbp-0x48] - jmp SHORT G_M8772_IG13 - ;; size=6 bbWeight=0.50 PerfScore 1.50 -G_M8772_IG19: + jmp G_M8772_IG06 + ;; size=12 bbWeight=0.50 PerfScore 1.62 +G_M8772_IG20: xor edi, edi cmp gword ptr [rbp-0x40], 0 sete dil movzx rcx, r12b test edi, ecx - je SHORT G_M8772_IG20 + je G_M8772_IG08 mov rdi, r15 mov rcx, 0xD1FFAB1E ; code for System.Globalization.CultureInfo:get_HasInvariantCultureName():ubyte:this cmp dword ptr [rdi], edi call [rcx]System.Globalization.CultureInfo:get_HasInvariantCultureName():ubyte:this test eax, eax - jne SHORT G_M8772_IG23 - ;; size=40 bbWeight=0.50 PerfScore 6.25 -G_M8772_IG20: - mov rax, r13 - ;; size=3 bbWeight=1 PerfScore 0.25 + je G_M8772_IG08 + ;; size=48 bbWeight=0.50 PerfScore 6.25 G_M8772_IG21: - add rsp, 72 - pop rbx - pop r12 - pop r13 - pop r14 - pop r15 - pop rbp - ret - ;; size=15 bbWeight=1 PerfScore 4.25 -G_M8772_IG22: - mov rdi, rbx - mov rax, 0xD1FFAB1E ; code for System.Resources.ManifestBasedResourceGroveler:HandleSatelliteMissing():this - call [rax]System.Resources.ManifestBasedResourceGroveler:HandleSatelliteMissing():this - int3 - ;; size=16 bbWeight=0 PerfScore 0.00 -G_M8772_IG23: mov r15, gword ptr [rbp-0x58] mov rdi, rbx mov rsi, r15 mov rax, 0xD1FFAB1E ; code for System.Resources.ManifestBasedResourceGroveler:HandleResourceStreamMissing(System.String):this call [rax]System.Resources.ManifestBasedResourceGroveler:HandleResourceStreamMissing(System.String):this int3 ;; size=23 bbWeight=0 PerfScore 0.00 -G_M8772_IG24: +G_M8772_IG22: + mov rdi, rbx + mov rax, 0xD1FFAB1E ; code for System.Resources.ManifestBasedResourceGroveler:HandleSatelliteMissing():this + call [rax]System.Resources.ManifestBasedResourceGroveler:HandleSatelliteMissing():this + int3 + ;; size=16 bbWeight=0 PerfScore 0.00 +G_M8772_IG23: 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+0x70] ;; size=22 bbWeight=0 PerfScore 0.00 -G_M8772_IG25: +G_M8772_IG24: cmp byte ptr [rbp-0x30], 0 - je SHORT G_M8772_IG26 + je SHORT G_M8772_IG25 mov rdi, gword ptr [rbp-0x60] call System.Threading.Monitor:Exit(System.Object) ;; size=15 bbWeight=0 PerfScore 0.00 -G_M8772_IG26: +G_M8772_IG25: nop ;; size=1 bbWeight=0 PerfScore 0.00 -G_M8772_IG27: +G_M8772_IG26: 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 623, prolog size 38, PerfScore 105.00, instruction count 188, allocated bytes for code 623 (MethodHash=874cddbb) for method System.Resources.ManifestBasedResourceGroveler:GrovelForResourceSet(System.Globalization.CultureInfo,System.Collections.Generic.Dictionary`2[System.String,System.Resources.ResourceSet],ubyte,ubyte):System.Resources.ResourceSet:this (FullOpts) +; Total bytes of code 633, prolog size 38, PerfScore 103.50, instruction count 186, allocated bytes for code 633 (MethodHash=874cddbb) for method System.Resources.ManifestBasedResourceGroveler:GrovelForResourceSet(System.Globalization.CultureInfo,System.Collections.Generic.Dictionary`2[System.String,System.Resources.ResourceSet],ubyte,ubyte):System.Resources.ResourceSet: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/ebd52c631637d4fe672927f0c394ee8e

MihuBot commented 7 months ago

Top method improvements

-39 (-1.78 % of base) - System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this ```diff ; Assembly listing for method System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):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; 14 single block inlinees; 4 inlinees without PGO data +; 0 inlinees with PGO data; 17 single block inlinees; 4 inlinees without PGO data ; Final local variable assignments ; -; V00 this [V00,T13] ( 23, 22 ) ref -> [rbp-0x70] this class-hnd EH-live single-def +; V00 this [V00,T13] ( 21, 20 ) ref -> [rbp-0x70] this class-hnd EH-live single-def ; V01 arg1 [V01,T11] ( 28, 26 ) ref -> [rbp-0x78] class-hnd EH-live single-def -; V02 arg2 [V02,T27] ( 5, 5 ) ubyte -> r15 single-def +; V02 arg2 [V02,T26] ( 5, 5 ) ubyte -> r15 single-def ; V03 loc0 [V03,T62] ( 2, 2 ) int -> [rbp-0x2C] do-not-enreg[Z] EH-live -; V04 loc1 [V04,T39] ( 4, 4 ) int -> rax -; V05 loc2 [V05,T37] ( 4, 4 ) ref -> rax class-hnd single-def -; V06 loc3 [V06,T57] ( 3, 3 ) int -> r14 -; V07 loc4 [V07,T25] ( 10, 9.50) ref -> r13 class-hnd exact -; V08 loc5 [V08,T26] ( 9, 9 ) ref -> r14 class-hnd single-def -; V09 loc6 [V09,T24] ( 4, 10 ) ref -> r15 class-hnd single-def -; V10 loc7 [V10,T20] ( 6, 10.58) ref -> [rbp-0x80] class-hnd exact spill-single-def +; V04 loc1 [V04,T38] ( 4, 4 ) int -> rax +; V05 loc2 [V05,T36] ( 4, 4 ) ref -> rax class-hnd single-def +; V06 loc3 [V06,T56] ( 3, 3 ) int -> r14 +; V07 loc4 [V07,T24] ( 10, 9.50) ref -> r8 class-hnd exact +; V08 loc5 [V08,T25] ( 9, 9 ) ref -> r14 class-hnd single-def +; V09 loc6 [V09,T23] ( 4, 10 ) ref -> r15 class-hnd single-def +; V10 loc7 [V10,T19] ( 6, 10.58) ref -> [rbp-0x80] class-hnd exact spill-single-def ; V11 loc8 [V11,T05] ( 12, 41.08) int -> [rbp-0x30] ; V12 loc9 [V12,T61] ( 2, 2 ) ref -> rbx class-hnd exact ; V13 loc10 [V13,T12] ( 8, 26 ) ref -> r12 class-hnd single-def -; V14 loc11 [V14,T18] ( 9, 11.58) ref -> [rbp-0x88] class-hnd exact EH-live spill-single-def -; V15 loc12 [V15,T21] ( 6, 10.58) ref -> [rbp-0x90] class-hnd exact spill-single-def -; V16 loc13 [V16,T22] ( 6, 10.58) ref -> [rbp-0x98] class-hnd exact spill-single-def -; V17 loc14 [V17,T29] ( 7, 6 ) ref -> [rbp-0xA0] do-not-enreg[M] class-hnd EH-live -; V18 loc15 [V18,T55] ( 3, 3 ) ref -> rbx class-hnd single-def +; V14 loc11 [V14,T17] ( 9, 11.58) ref -> [rbp-0x88] class-hnd exact EH-live spill-single-def +; V15 loc12 [V15,T20] ( 6, 10.58) ref -> [rbp-0x90] class-hnd exact spill-single-def +; V16 loc13 [V16,T21] ( 6, 10.58) ref -> [rbp-0x98] class-hnd exact spill-single-def +; V17 loc14 [V17,T28] ( 7, 6 ) ref -> [rbp-0xA0] do-not-enreg[M] class-hnd EH-live +; V18 loc15 [V18,T54] ( 3, 3 ) ref -> rbx class-hnd single-def ; V19 loc16 [V19,T63] ( 2, 2 ) int -> r12 ld-addr-op ; V20 loc17 [V20,T06] ( 17, 33.64) int -> [rbp-0x34] ; V21 OutArgs [V21 ] ( 1, 1 ) struct (24) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V22 tmp1 [V22,T36] ( 3, 5 ) ref -> rdi class-hnd "spilling QMark2" +; V22 tmp1 [V22,T35] ( 3, 5 ) ref -> rdi class-hnd "spilling QMark2" ;* V23 tmp2 [V23 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" ;* V24 tmp3 [V24 ] ( 0, 0 ) ref -> zero-ref class-hnd "spilling QMark2" ; V25 tmp4 [V25,T07] ( 4, 32 ) ref -> rax class-hnd "Strict ordering of exceptions for Array store" ; V26 tmp5 [V26,T08] ( 4, 32 ) ref -> rax class-hnd "Strict ordering of exceptions for Array store" ; V27 tmp6 [V27,T09] ( 4, 32 ) ref -> rax class-hnd "Strict ordering of exceptions for Array store" -; V28 tmp7 [V28,T58] ( 3, 3 ) int -> rax +; V28 tmp7 [V28,T57] ( 3, 3 ) int -> rax ;* V29 tmp8 [V29 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call" ;* V30 tmp9 [V30 ] ( 0, 0 ) ref -> zero-ref class-hnd "non-inline candidate call" ;* V31 tmp10 [V31 ] ( 0, 0 ) ref -> zero-ref class-hnd "non-inline candidate call" ;* V32 tmp11 [V32 ] ( 0, 0 ) ref -> zero-ref class-hnd "impSpillSpecialSideEff" -; V33 tmp12 [V33,T59] ( 3, 3 ) int -> rax +; V33 tmp12 [V33,T58] ( 3, 3 ) int -> rax ; V34 tmp13 [V34,T10] ( 4, 32 ) ref -> rax class-hnd "Strict ordering of exceptions for Array store" ;* V35 tmp14 [V35 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "non-inline candidate call" ;* V36 tmp15 [V36 ] ( 0, 0 ) int -> zero-ref "non-inline candidate call" ; V37 tmp16 [V37,T68] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" -; V38 tmp17 [V38,T60] ( 3, 3 ) int -> r15 +; V38 tmp17 [V38,T59] ( 3, 3 ) int -> r15 ; V39 tmp18 [V39,T69] ( 3, 0 ) ref -> rbx class-hnd exact single-def "NewObj constructor temp" -; V40 tmp19 [V40,T41] ( 2, 4 ) ref -> rsi class-hnd single-def "Inlining Arg" -; V41 tmp20 [V41,T40] ( 2, 2 ) ubyte -> rax "Inline return value spill temp" -; V42 tmp21 [V42,T17] ( 6, 12 ) ref -> rdi class-hnd single-def "Inlining Arg" +; V40 tmp19 [V40,T39] ( 2, 4 ) ref -> rsi class-hnd single-def "Inlining Arg" +;* V41 tmp20 [V41,T60] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +; V42 tmp21 [V42,T40] ( 2, 4 ) ref -> r9 class-hnd single-def "Inlining Arg" ;* V43 tmp22 [V43 ] ( 0, 0 ) ref -> zero-ref class-hnd "Inlining Arg" ;* V44 tmp23 [V44 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ; V45 tmp24 [V45 ] ( 4, 4 ) ref -> [rbp-0x40] do-not-enreg[X] must-init addr-exposed ld-addr-op class-hnd "Inline stloc first use temp" ;* V46 tmp25 [V46 ] ( 0, 0 ) struct (16) zero-ref multireg-arg ld-addr-op "NewObj constructor temp" -; V47 tmp26 [V47,T31] ( 3, 6 ) ref -> rax class-hnd exact single-def "Inlining Arg" +; V47 tmp26 [V47,T30] ( 3, 6 ) ref -> rax class-hnd exact single-def "Inlining Arg" ;* V48 tmp27 [V48 ] ( 0, 0 ) int -> zero-ref "Inlining Arg" -; V49 tmp28 [V49,T42] ( 2, 4 ) ref -> rcx class-hnd exact single-def "Inlining Arg" +; V49 tmp28 [V49,T41] ( 2, 4 ) ref -> rcx class-hnd exact single-def "Inlining Arg" ;* V50 tmp29 [V50 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" ;* V51 tmp30 [V51 ] ( 0, 0 ) int -> zero-ref "Inline return value spill temp" ; V52 tmp31 [V52 ] ( 2, 2 ) byref -> [rbp-0x48] must-init pinned "Inline stloc first use temp" ;* V53 tmp32 [V53 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ; V54 tmp33 [V54 ] ( 2, 2 ) byref -> [rbp-0x50] must-init pinned "Inline stloc first use temp" ;* V55 tmp34 [V55 ] ( 0, 0 ) long -> zero-ref "Inline stloc first use temp" ;* V56 tmp35 [V56 ] ( 0, 0 ) struct (16) zero-ref "Inlining Arg" ; V57 tmp36 [V57,T64] ( 2, 2 ) int -> rax "Inline stloc first use temp" -; V58 tmp37 [V58,T56] ( 3, 3 ) byref -> r8 "Inline return value spill temp" -; V59 tmp38 [V59,T38] ( 4, 4 ) byref -> rax "Inline return value spill temp" +; V58 tmp37 [V58,T55] ( 3, 3 ) byref -> r8 "Inline return value spill temp" +; V59 tmp38 [V59,T37] ( 4, 4 ) byref -> rax "Inline return value spill temp" ; V60 tmp39 [V60,T15] ( 7, 14 ) int -> rax "Single return block return value" -; V61 FramesRoot [V61,T30] ( 6, 6 ) long -> [rbp-0x58] do-not-enreg[H] EH-live "Pinvoke FrameListRoot" +; V61 FramesRoot [V61,T29] ( 6, 6 ) long -> [rbp-0x58] do-not-enreg[H] EH-live "Pinvoke FrameListRoot" ; V62 PInvokeFrame [V62 ] ( 8, 8 ) struct (72) [rbp-0xE8] do-not-enreg[XS] addr-exposed "Pinvoke FrameVar" ; V63 tmp42 [V63,T65] ( 2, 2 ) long -> rdi "field V46._ptr (fldOffset=0x0)" P-INDEP ; V64 tmp43 [V64,T66] ( 2, 2 ) long -> rsi "field V46._module (fldOffset=0x8)" P-INDEP ;* V65 tmp44 [V65 ] ( 0, 0 ) long -> zero-ref "field V56._ptr (fldOffset=0x0)" P-INDEP ;* V66 tmp45 [V66 ] ( 0, 0 ) long -> zero-ref "field V56._module (fldOffset=0x8)" P-INDEP ; V67 tmp46 [V67,T01] ( 6, 48 ) ref -> rdi "argument with side effect" ; V68 tmp47 [V68,T02] ( 6, 48 ) ref -> rdi "argument with side effect" ; V69 tmp48 [V69,T03] ( 6, 48 ) ref -> rdi "argument with side effect" -; V70 tmp49 [V70,T32] ( 3, 6 ) ref -> rax single-def "argument with side effect" -; V71 tmp50 [V71,T33] ( 3, 6 ) ref -> rax single-def "argument with side effect" -; V72 tmp51 [V72,T50] ( 2, 4 ) int -> r15 "argument with side effect" -; V73 tmp52 [V73,T43] ( 2, 4 ) ref -> r14 single-def "argument with side effect" -; V74 tmp53 [V74,T44] ( 2, 4 ) ref -> r13 single-def "argument with side effect" -; V75 tmp54 [V75,T45] ( 2, 4 ) ref -> r9 single-def "argument with side effect" +; V70 tmp49 [V70,T31] ( 3, 6 ) ref -> rax single-def "argument with side effect" +; V71 tmp50 [V71,T32] ( 3, 6 ) ref -> rax single-def "argument with side effect" +; V72 tmp51 [V72,T49] ( 2, 4 ) int -> r15 "argument with side effect" +; V73 tmp52 [V73,T42] ( 2, 4 ) ref -> r14 single-def "argument with side effect" +; V74 tmp53 [V74,T43] ( 2, 4 ) ref -> r13 single-def "argument with side effect" +; V75 tmp54 [V75,T44] ( 2, 4 ) ref -> r9 single-def "argument with side effect" ; V76 tmp55 [V76,T70] ( 2, 0 ) ref -> rsi single-def "argument with side effect" -; V77 tmp56 [V77,T51] ( 2, 4 ) long -> r8 "Cast away GC" -; V78 tmp57 [V78,T52] ( 2, 4 ) long -> rcx "Cast away GC" -; V79 tmp58 [V79,T53] ( 2, 4 ) long -> rcx "argument with side effect" +; V77 tmp56 [V77,T50] ( 2, 4 ) long -> r8 "Cast away GC" +; V78 tmp57 [V78,T51] ( 2, 4 ) long -> rcx "Cast away GC" +; V79 tmp58 [V79,T52] ( 2, 4 ) long -> rcx "argument with side effect" ; V80 tmp59 [V80,T04] ( 6, 48 ) ref -> rdi "argument with side effect" -; V81 tmp60 [V81,T46] ( 2, 4 ) ref -> r13 single-def "argument with side effect" -; V82 tmp61 [V82,T54] ( 2, 4 ) int -> r15 "argument with side effect" -; V83 tmp62 [V83,T47] ( 2, 4 ) ref -> r8 single-def "argument with side effect" +; V81 tmp60 [V81,T45] ( 2, 4 ) ref -> r13 single-def "argument with side effect" +; V82 tmp61 [V82,T53] ( 2, 4 ) int -> r15 "argument with side effect" +; V83 tmp62 [V83,T46] ( 2, 4 ) ref -> r8 single-def "argument with side effect" ; V84 tmp63 [V84,T71] ( 2, 0 ) ref -> rsi single-def "argument with side effect" -; V85 tmp64 [V85,T34] ( 3, 6 ) ref -> rax single-def "argument with side effect" -; V86 tmp65 [V86,T48] ( 2, 4 ) ref -> rsi single-def "argument with side effect" -; V87 tmp66 [V87,T35] ( 3, 6 ) ref -> rax single-def "argument with side effect" -; V88 tmp67 [V88,T49] ( 2, 4 ) ref -> rsi single-def "argument with side effect" +; V85 tmp64 [V85,T33] ( 3, 6 ) ref -> rax single-def "argument with side effect" +; V86 tmp65 [V86,T47] ( 2, 4 ) ref -> rsi single-def "argument with side effect" +; V87 tmp66 [V87,T34] ( 3, 6 ) ref -> rax single-def "argument with side effect" +; V88 tmp67 [V88,T48] ( 2, 4 ) ref -> rsi single-def "argument with side effect" ; V89 tmp68 [V89,T72] ( 2, 0 ) ref -> rsi single-def "argument with side effect" ; V90 PSPSym [V90,T67] ( 1, 1 ) long -> [rbp-0xF8] do-not-enreg[V] "PSPSym" -; V91 cse0 [V91,T23] ( 10, 10 ) long -> r13 multi-def "CSE - moderate" -; V92 cse1 [V92,T28] ( 8, 6 ) long -> r12 multi-def "CSE - moderate" +; V91 cse0 [V91,T22] ( 10, 10 ) long -> r13 multi-def "CSE - moderate" +; V92 cse1 [V92,T27] ( 8, 6 ) long -> r12 multi-def "CSE - moderate" ; V93 cse2 [V93,T14] ( 19, 15 ) long -> [rbp-0x60] do-not-enreg[H] EH-live multi-def "CSE - moderate" ; V94 cse3 [V94,T16] ( 8, 12.50) int -> r13 "CSE - moderate" -; V95 cse4 [V95,T19] ( 6, 11.50) int -> r12 "CSE - moderate" +; V95 cse4 [V95,T18] ( 6, 11.50) int -> r12 "CSE - moderate" ; V96 cse5 [V96,T00] ( 7, 55.44) long -> [rbp-0x68] spill-single-def "CSE - aggressive" ; ; Lcl frame size = 232 G_M25906_IG01: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 232 lea rbp, [rsp+0x110] vxorps xmm8, xmm8, xmm8 vmovdqa xmmword ptr [rbp-0x50], xmm8 xor ecx, ecx mov qword ptr [rbp-0x40], rcx mov qword ptr [rbp-0xF8], rsp mov gword ptr [rbp-0x70], rdi mov gword ptr [rbp-0x78], rsi mov rbx, rsi mov r15d, edx ;; size=62 bbWeight=1 PerfScore 13.83 G_M25906_IG02: lea rdi, [rbp-0xE0] mov rsi, r10 call CORINFO_HELP_INIT_PINVOKE_FRAME mov qword ptr [rbp-0x58], rax mov rdi, rsp mov qword ptr [rbp-0xC0], rdi mov rdi, rbp mov qword ptr [rbp-0xB0], rdi mov rdi, rbx mov rsi, 0xD1FFAB1E ; 'method' mov rax, 0xD1FFAB1E ; code for System.ArgumentNullException:ThrowIfNull(System.Object,System.String) call [rax]System.ArgumentNullException:ThrowIfNull(System.Object,System.String) mov rsi, rbx mov rdi, 0xD1FFAB1E ; System.Reflection.Emit.MethodBuilder call CORINFO_HELP_ISINSTANCEOFCLASS test rax, rax je G_M25906_IG06 mov rdi, rax mov rax, qword ptr [rax] mov rax, qword ptr [rax+0x50] call [rax+0x08]System.Reflection.MemberInfo:get_MetadataToken():int:this mov r14d, eax mov rdi, rbx mov rax, qword ptr [rbx] mov qword ptr [rbp-0x60], rax mov rax, qword ptr [rax+0x48] call [rax+0x08]System.Reflection.MemberInfo:get_Module():System.Reflection.Module:this mov rdi, rax mov rsi, gword ptr [rbp-0x70] mov rax, qword ptr [rax] mov rax, qword ptr [rax+0x40] call [rax+0x10]System.Object:Equals(System.Object):ubyte:this test eax, eax je SHORT G_M25906_IG03 mov eax, r14d - jmp G_M25906_IG47 + jmp G_M25906_IG45 ;; size=153 bbWeight=1 PerfScore 39.25 G_M25906_IG03: mov rdi, rbx mov rax, qword ptr [rbp-0x60] mov r13, qword ptr [rax+0x40] call [r13+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this test rax, rax - je G_M25906_IG49 + je G_M25906_IG47 test r15b, r15b jne SHORT G_M25906_IG04 mov rdi, rbx call [r13+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this mov rsi, rax mov rdi, gword ptr [rbp-0x70] xor edx, edx mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.RuntimeModuleBuilder:GetTypeTokenInternal(System.Type,ubyte):int:this call [rax]System.Reflection.Emit.RuntimeModuleBuilder:GetTypeTokenInternal(System.Type,ubyte):int:this mov r15d, eax jmp SHORT G_M25906_IG05 ;; size=62 bbWeight=1 PerfScore 19.00 G_M25906_IG04: mov rdi, rbx call [r13+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this mov rsi, rax mov rdi, gword ptr [rbp-0x70] cmp byte ptr [rdi], dil mov edx, 1 mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.RuntimeModuleBuilder:GetTypeTokenInternal(System.Type,ubyte):int:this call [rax]System.Reflection.Emit.RuntimeModuleBuilder:GetTypeTokenInternal(System.Type,ubyte):int:this mov r15d, eax ;; size=37 bbWeight=1 PerfScore 11.25 G_M25906_IG05: mov rdi, rbx call [r13+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this mov rdi, rax mov rax, qword ptr [rax] mov rax, qword ptr [rax+0x50] call [rax+0x30]System.Type:get_Module():System.Reflection.Module:this mov rsi, rax mov rdi, gword ptr [rbp-0x70] mov edx, r15d mov ecx, r14d mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.RuntimeModuleBuilder:GetMemberRef(System.Reflection.Module,int,int):int:this call [rax]System.Reflection.Emit.RuntimeModuleBuilder:GetMemberRef(System.Reflection.Module,int,int):int:this - jmp G_M25906_IG47 + jmp G_M25906_IG45 ;; size=50 bbWeight=1 PerfScore 17.50 G_M25906_IG06: mov rdi, rbx test rdi, rdi je SHORT G_M25906_IG09 ;; size=8 bbWeight=1 PerfScore 1.50 G_M25906_IG07: mov rdi, qword ptr [rdi] mov qword ptr [rbp-0x60], rdi mov rdi, 0xD1FFAB1E ; System.Reflection.Emit.MethodOnTypeBuilderInstantiation cmp qword ptr [rbp-0x60], rdi jne SHORT G_M25906_IG09 ;; size=23 bbWeight=0.50 PerfScore 3.12 G_M25906_IG08: mov rdi, gword ptr [rbp-0x70] mov rsi, rbx xor rdx, rdx mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.RuntimeModuleBuilder:GetMemberRefToken(System.Reflection.MethodBase,System.Type[]):int:this call [rax]System.Reflection.Emit.RuntimeModuleBuilder:GetMemberRefToken(System.Reflection.MethodBase,System.Type[]):int:this - jmp G_M25906_IG47 + jmp G_M25906_IG45 ;; size=26 bbWeight=1 PerfScore 6.75 G_M25906_IG09: - mov r13, rbx - test r13, r13 - je SHORT G_M25906_IG15 + mov r8, rbx + test r8, r8 + je SHORT G_M25906_IG13 ;; size=8 bbWeight=1 PerfScore 1.50 G_M25906_IG10: - mov rdi, qword ptr [r13] - mov qword ptr [rbp-0x60], rdi - mov rdi, 0xD1FFAB1E ; System.Reflection.Emit.SymbolMethod - cmp qword ptr [rbp-0x60], rdi - jne SHORT G_M25906_IG15 - ;; size=24 bbWeight=0.50 PerfScore 3.12 + mov rax, qword ptr [r8] + mov qword ptr [rbp-0x60], rax + mov r9, 0xD1FFAB1E ; System.Reflection.Emit.SymbolMethod + cmp qword ptr [rbp-0x60], r9 + jne SHORT G_M25906_IG13 + ;; size=23 bbWeight=0.50 PerfScore 3.12 G_M25906_IG11: - mov rdi, gword ptr [r13+0x08] - mov rcx, gword ptr [rbp-0x70] - test rcx, rcx + mov r9, gword ptr [r8+0x08] + mov rdi, gword ptr [rbp-0x70] + cmp r9, rdi jne SHORT G_M25906_IG12 - test rdi, rdi - jne SHORT G_M25906_IG14 - jmp SHORT G_M25906_IG13 - ;; size=20 bbWeight=1 PerfScore 7.50 + mov eax, dword ptr [r8+0x34] + jmp G_M25906_IG45 + ;; size=22 bbWeight=1 PerfScore 8.25 G_M25906_IG12: - cmp rdi, rcx - je SHORT G_M25906_IG13 - test rdi, rdi - je SHORT G_M25906_IG14 - mov rsi, rcx - mov rax, qword ptr [rdi] - mov rax, qword ptr [rax+0x40] - call [rax+0x10]System.Object:Equals(System.Object):ubyte:this - test eax, eax - je SHORT G_M25906_IG14 - ;; size=27 bbWeight=1 PerfScore 11.00 -G_M25906_IG13: - mov eax, dword ptr [r13+0x34] - jmp G_M25906_IG47 - ;; size=9 bbWeight=1 PerfScore 4.00 -G_M25906_IG14: - mov r9, gword ptr [r13+0x28] - mov rsi, gword ptr [r13+0x10] - mov rdx, gword ptr [r13+0x18] - mov ecx, dword ptr [r13+0x30] - mov r8, gword ptr [r13+0x20] - mov rdi, gword ptr [rbp-0x70] + mov r9, gword ptr [r8+0x28] + mov rsi, gword ptr [r8+0x10] + mov rdx, gword ptr [r8+0x18] + mov ecx, dword ptr [r8+0x30] + mov r8, gword ptr [r8+0x20] mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.RuntimeModuleBuilder:GetArrayMethodToken(System.Type,System.String,int,System.Type,System.Type[]):int:this cmp dword ptr [rdi], edi call [rax]System.Reflection.Emit.RuntimeModuleBuilder:GetArrayMethodToken(System.Type,System.String,int,System.Type,System.Type[]):int:this - jmp G_M25906_IG47 - ;; size=43 bbWeight=1 PerfScore 19.25 -G_M25906_IG15: + jmp G_M25906_IG45 + ;; size=39 bbWeight=1 PerfScore 18.25 +G_M25906_IG13: mov rdi, rbx mov rax, qword ptr [rbx] mov qword ptr [rbp-0x60], rax mov r13, qword ptr [rax+0x40] call [r13+0x38]System.Reflection.MemberInfo:get_DeclaringType():System.Type:this mov r14, rax test r14, r14 - je G_M25906_IG50 + je G_M25906_IG48 mov rdi, r14 mov rax, qword ptr [r14] mov rax, qword ptr [rax+0x58] call [rax+0x10]System.Type:IsArrayImpl():ubyte:this test eax, eax - je G_M25906_IG22 + je G_M25906_IG20 mov rdi, rbx mov rax, qword ptr [rbp-0x60] mov rax, qword ptr [rax+0x50] call [rax+0x18]System.Reflection.MethodBase:GetParameters():System.Reflection.ParameterInfo[]:this mov r15, rax mov r12d, dword ptr [r15+0x08] mov esi, r12d mov rdi, 0xD1FFAB1E ; System.Type[] call CORINFO_HELP_NEWARR_1_OBJ mov gword ptr [rbp-0x80], rax xor ecx, ecx test r12d, r12d - jle SHORT G_M25906_IG19 + jle SHORT G_M25906_IG17 ;; size=101 bbWeight=1 PerfScore 30.75 -G_M25906_IG16: +G_M25906_IG14: cmp dword ptr [rax+0x08], r12d - jl SHORT G_M25906_IG20 + jl SHORT G_M25906_IG18 ;; size=6 bbWeight=0.50 PerfScore 2.00 -G_M25906_IG17: +G_M25906_IG15: mov dword ptr [rbp-0x30], ecx mov edi, ecx mov rdi, gword ptr [r15+8*rdi+0x10] mov rdx, qword ptr [rdi] mov rdx, qword ptr [rdx+0x40] call [rdx+0x38]System.Reflection.ParameterInfo:get_ParameterType():System.Type:this mov edi, dword ptr [rbp-0x30] mov rdx, gword ptr [rbp-0x80] lea rdi, bword ptr [rdx+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF mov ecx, dword ptr [rbp-0x30] inc ecx cmp r12d, ecx - jg SHORT G_M25906_IG17 + jg SHORT G_M25906_IG15 ;; size=50 bbWeight=7.92 PerfScore 134.64 -G_M25906_IG18: - jmp SHORT G_M25906_IG21 +G_M25906_IG16: + jmp SHORT G_M25906_IG19 ;; size=2 bbWeight=1 PerfScore 2.00 -G_M25906_IG19: - jmp SHORT G_M25906_IG21 +G_M25906_IG17: + jmp SHORT G_M25906_IG19 ;; size=2 bbWeight=0.50 PerfScore 1.00 -G_M25906_IG20: +G_M25906_IG18: mov dword ptr [rbp-0x30], ecx mov edi, ecx mov rdi, gword ptr [r15+8*rdi+0x10] mov rdx, qword ptr [rdi] mov rdx, qword ptr [rdx+0x40] call [rdx+0x38]System.Reflection.ParameterInfo:get_ParameterType():System.Type:this mov ecx, dword ptr [rbp-0x30] mov rdx, gword ptr [rbp-0x80] cmp ecx, dword ptr [rdx+0x08] - jae G_M25906_IG48 + jae G_M25906_IG46 mov dword ptr [rbp-0x30], ecx mov edi, ecx lea rdi, bword ptr [rdx+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF mov edi, dword ptr [rbp-0x30] inc edi cmp r12d, edi mov ecx, edi - jg SHORT G_M25906_IG20 + jg SHORT G_M25906_IG18 ;; size=66 bbWeight=0.08 PerfScore 1.80 -G_M25906_IG21: +G_M25906_IG19: mov rdi, rbx call [r13+0x30]System.Reflection.MemberInfo:get_Name():System.String:this mov r13, rax mov rdi, rbx mov rax, qword ptr [rbp-0x60] mov rax, qword ptr [rax+0x58] call [rax]System.Reflection.MethodBase:get_CallingConvention():int:this mov r15d, eax mov rdi, rbx mov rax, qword ptr [rbp-0x60] mov r12, qword ptr [rax+0x60] call [r12+0x28]System.Reflection.MethodInfo:get_ReturnType():System.Type:this mov r8, rax mov rdx, r13 mov ecx, r15d mov rsi, r14 mov rdi, gword ptr [rbp-0x70] mov r9, gword ptr [rbp-0x80] mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.RuntimeModuleBuilder:GetArrayMethodToken(System.Type,System.String,int,System.Type,System.Type[]):int:this call [rax]System.Reflection.Emit.RuntimeModuleBuilder:GetArrayMethodToken(System.Type,System.String,int,System.Type,System.Type[]):int:this - jmp G_M25906_IG47 + jmp G_M25906_IG45 ;; size=79 bbWeight=1 PerfScore 24.50 -G_M25906_IG22: +G_M25906_IG20: mov rdi, 0xD1FFAB1E ; System.Reflection.RuntimeMethodInfo cmp qword ptr [rbp-0x60], rdi - jne SHORT G_M25906_IG25 - test r15b, r15b jne SHORT G_M25906_IG23 + test r15b, r15b + jne SHORT G_M25906_IG21 mov rdi, gword ptr [rbp-0x70] mov rsi, r14 xor edx, edx mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.RuntimeModuleBuilder:GetTypeTokenInternal(System.Type,ubyte):int:this call [rax]System.Reflection.Emit.RuntimeModuleBuilder:GetTypeTokenInternal(System.Type,ubyte):int:this - jmp SHORT G_M25906_IG24 + jmp SHORT G_M25906_IG22 ;; size=44 bbWeight=1 PerfScore 11.25 -G_M25906_IG23: +G_M25906_IG21: mov rdi, gword ptr [rbp-0x70] cmp byte ptr [rdi], dil mov rsi, r14 mov edx, 1 mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.RuntimeModuleBuilder:GetTypeTokenInternal(System.Type,ubyte):int:this call [rax]System.Reflection.Emit.RuntimeModuleBuilder:GetTypeTokenInternal(System.Type,ubyte):int:this ;; size=27 bbWeight=1 PerfScore 7.75 -G_M25906_IG24: +G_M25906_IG22: mov rdi, gword ptr [rbp-0x70] mov esi, eax mov rdx, rbx mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.RuntimeModuleBuilder:GetMemberRefOfMethodInfo(int,System.Reflection.RuntimeMethodInfo):int:this call [rax]System.Reflection.Emit.RuntimeModuleBuilder:GetMemberRefOfMethodInfo(int,System.Reflection.RuntimeMethodInfo):int:this - jmp G_M25906_IG47 + jmp G_M25906_IG45 ;; size=26 bbWeight=1 PerfScore 6.75 -G_M25906_IG25: +G_M25906_IG23: mov rdi, rbx mov rax, qword ptr [rbp-0x60] mov rax, qword ptr [rax+0x50] call [rax+0x18]System.Reflection.MethodBase:GetParameters():System.Reflection.ParameterInfo[]:this mov r12, rax mov r13d, dword ptr [r12+0x08] mov esi, r13d mov rdi, 0xD1FFAB1E ; System.Type[] call CORINFO_HELP_NEWARR_1_OBJ mov gword ptr [rbp-0x88], rax mov esi, dword ptr [rax+0x08] mov rdi, 0xD1FFAB1E ; System.Type[][] call CORINFO_HELP_NEWARR_1_OBJ mov gword ptr [rbp-0x90], rax mov rcx, gword ptr [rbp-0x88] mov esi, dword ptr [rcx+0x08] mov rdi, 0xD1FFAB1E ; System.Type[][] call CORINFO_HELP_NEWARR_1_OBJ mov gword ptr [rbp-0x98], rax xor ecx, ecx test r13d, r13d - jle G_M25906_IG33 + jle G_M25906_IG31 ;; size=115 bbWeight=1 PerfScore 22.00 -G_M25906_IG26: +G_M25906_IG24: mov rdx, gword ptr [rbp-0x88] cmp dword ptr [rdx+0x08], r13d - jl G_M25906_IG30 + jl G_M25906_IG28 mov rsi, gword ptr [rbp-0x90] cmp dword ptr [rsi+0x08], r13d - jl G_M25906_IG29 + jl G_M25906_IG27 cmp dword ptr [rax+0x08], r13d - jl G_M25906_IG30 + jl G_M25906_IG28 ;; size=44 bbWeight=0.50 PerfScore 7.00 -G_M25906_IG27: +G_M25906_IG25: mov dword ptr [rbp-0x34], ecx mov r8d, ecx mov qword ptr [rbp-0x68], r8 mov rdi, gword ptr [r12+8*r8+0x10] mov r9, qword ptr [rdi] mov r9, qword ptr [r9+0x40] call [r9+0x38]System.Reflection.ParameterInfo:get_ParameterType():System.Type:this mov rcx, gword ptr [rbp-0x88] mov rdx, qword ptr [rbp-0x68] lea rdi, bword ptr [rcx+8*rdx+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF mov rax, qword ptr [rbp-0x68] mov rdi, gword ptr [r12+8*rax+0x10] mov rcx, qword ptr [rdi] mov rcx, qword ptr [rcx+0x50] call [rcx+0x18]System.Reflection.ParameterInfo:GetRequiredCustomModifiers():System.Type[]:this mov rcx, gword ptr [rbp-0x90] mov rdx, qword ptr [rbp-0x68] lea rdi, bword ptr [rcx+8*rdx+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF mov rax, qword ptr [rbp-0x68] mov rdi, gword ptr [r12+8*rax+0x10] mov rcx, qword ptr [rdi] mov rcx, qword ptr [rcx+0x50] call [rcx+0x10]System.Reflection.ParameterInfo:GetOptionalCustomModifiers():System.Type[]:this mov rcx, gword ptr [rbp-0x98] mov rdi, qword ptr [rbp-0x68] lea rdi, bword ptr [rcx+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF mov ecx, dword ptr [rbp-0x34] inc ecx cmp r13d, ecx - jg G_M25906_IG27 + jg G_M25906_IG25 ;; size=150 bbWeight=7.92 PerfScore 368.28 -G_M25906_IG28: +G_M25906_IG26: mov rax, gword ptr [rbp-0x98] - jmp G_M25906_IG33 + jmp G_M25906_IG31 ;; size=12 bbWeight=1 PerfScore 3.00 -G_M25906_IG29: +G_M25906_IG27: ;; size=0 bbWeight=0.25 PerfScore 0.00 -G_M25906_IG30: +G_M25906_IG28: mov dword ptr [rbp-0x34], ecx mov edi, ecx mov rdi, gword ptr [r12+8*rdi+0x10] mov rsi, qword ptr [rdi] mov rsi, qword ptr [rsi+0x40] call [rsi+0x38]System.Reflection.ParameterInfo:get_ParameterType():System.Type:this mov ecx, dword ptr [rbp-0x34] mov rdx, gword ptr [rbp-0x88] cmp ecx, dword ptr [rdx+0x08] - jae G_M25906_IG48 + jae G_M25906_IG46 mov dword ptr [rbp-0x34], ecx mov edi, ecx lea rdi, bword ptr [rdx+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF mov edi, dword ptr [rbp-0x34] mov rdi, gword ptr [r12+8*rdi+0x10] mov rcx, qword ptr [rdi] mov rcx, qword ptr [rcx+0x50] call [rcx+0x18]System.Reflection.ParameterInfo:GetRequiredCustomModifiers():System.Type[]:this mov ecx, dword ptr [rbp-0x34] mov rdx, gword ptr [rbp-0x90] cmp ecx, dword ptr [rdx+0x08] - jae G_M25906_IG48 + jae G_M25906_IG46 mov dword ptr [rbp-0x34], ecx mov edi, ecx lea rdi, bword ptr [rdx+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF mov edi, dword ptr [rbp-0x34] mov rdi, gword ptr [r12+8*rdi+0x10] mov rcx, qword ptr [rdi] mov rcx, qword ptr [rcx+0x50] call [rcx+0x10]System.Reflection.ParameterInfo:GetOptionalCustomModifiers():System.Type[]:this mov ecx, dword ptr [rbp-0x34] mov rdx, gword ptr [rbp-0x98] cmp ecx, dword ptr [rdx+0x08] - jae G_M25906_IG48 + jae G_M25906_IG46 mov dword ptr [rbp-0x34], ecx mov edi, ecx lea rdi, bword ptr [rdx+8*rdi+0x10] mov rsi, rax call CORINFO_HELP_ASSIGN_REF mov edi, dword ptr [rbp-0x34] inc edi cmp r13d, edi mov ecx, edi ;; size=177 bbWeight=0.08 PerfScore 4.84 -G_M25906_IG31: - jg G_M25906_IG30 +G_M25906_IG29: + jg G_M25906_IG28 ;; size=6 bbWeight=0.08 PerfScore 0.08 -G_M25906_IG32: +G_M25906_IG30: mov rax, gword ptr [rbp-0x98] ;; size=7 bbWeight=0.04 PerfScore 0.04 -G_M25906_IG33: +G_M25906_IG31: test r15b, r15b - jne SHORT G_M25906_IG34 + jne SHORT G_M25906_IG32 mov rdi, gword ptr [rbp-0x70] mov rsi, r14 xor edx, edx mov rcx, 0xD1FFAB1E ; code for System.Reflection.Emit.RuntimeModuleBuilder:GetTypeTokenInternal(System.Type,ubyte):int:this call [rcx]System.Reflection.Emit.RuntimeModuleBuilder:GetTypeTokenInternal(System.Type,ubyte):int:this - jmp SHORT G_M25906_IG35 + jmp SHORT G_M25906_IG33 ;; size=28 bbWeight=1 PerfScore 8.00 -G_M25906_IG34: +G_M25906_IG32: mov rdi, gword ptr [rbp-0x70] cmp byte ptr [rdi], dil mov rsi, r14 mov edx, 1 mov rcx, 0xD1FFAB1E ; code for System.Reflection.Emit.RuntimeModuleBuilder:GetTypeTokenInternal(System.Type,ubyte):int:this call [rcx]System.Reflection.Emit.RuntimeModuleBuilder:GetTypeTokenInternal(System.Type,ubyte):int:this ;; size=27 bbWeight=1 PerfScore 7.75 -G_M25906_IG35: +G_M25906_IG33: mov dword ptr [rbp-0x2C], eax ;; size=3 bbWeight=1 PerfScore 1.00 -G_M25906_IG36: +G_M25906_IG34: mov rdi, rbx mov rax, qword ptr [rbp-0x60] mov rax, qword ptr [rax+0x58] call [rax]System.Reflection.MethodBase:get_CallingConvention():int:this mov r15d, eax mov rdi, rbx mov rax, qword ptr [rbp-0x60] mov r12, qword ptr [rax+0x60] call [r12+0x28]System.Reflection.MethodInfo:get_ReturnType():System.Type:this mov r14, rax mov rdi, rbx call [r12+0x20]System.Reflection.MethodInfo:get_ReturnParameter():System.Reflection.ParameterInfo:this mov rdi, rax mov rax, qword ptr [rax] mov rax, qword ptr [rax+0x50] call [rax+0x18]System.Reflection.ParameterInfo:GetRequiredCustomModifiers():System.Type[]:this mov r13, rax mov rdi, rbx call [r12+0x20]System.Reflection.MethodInfo:get_ReturnParameter():System.Reflection.ParameterInfo:this mov rdi, rax mov rax, qword ptr [rax] mov rax, qword ptr [rax+0x50] call [rax+0x10]System.Reflection.ParameterInfo:GetOptionalCustomModifiers():System.Type[]:this mov r9, rax mov rdx, gword ptr [rbp-0x88] mov gword ptr [rsp], rdx mov r12, gword ptr [rbp-0x90] mov gword ptr [rsp+0x08], r12 mov r12, gword ptr [rbp-0x98] mov gword ptr [rsp+0x10], r12 mov esi, r15d mov rcx, r14 mov r8, r13 mov rdi, gword ptr [rbp-0x70] xor edx, edx mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.SignatureHelper:GetMethodSigHelper(System.Reflection.Module,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][]):System.Reflection.Emit.SignatureHelper call [rax]System.Reflection.Emit.SignatureHelper:GetMethodSigHelper(System.Reflection.Module,int,int,System.Type,System.Type[],System.Type[],System.Type[],System.Type[][],System.Type[][]):System.Reflection.Emit.SignatureHelper mov gword ptr [rbp-0xA0], rax ;; size=152 bbWeight=1 PerfScore 46.75 -G_M25906_IG37: +G_M25906_IG35: mov rdi, gword ptr [rbp-0xA0] cmp byte ptr [rdi+0x24], 0 - jne SHORT G_M25906_IG38 + jne SHORT G_M25906_IG36 mov rdi, gword ptr [rbp-0xA0] mov byte ptr [rdi+0x24], 1 mov rdi, gword ptr [rbp-0xA0] xor esi, esi mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.SignatureHelper:SetNumberOfSignatureElements(ubyte):this call [rax]System.Reflection.Emit.SignatureHelper:SetNumberOfSignatureElements(ubyte):this ;; size=45 bbWeight=1 PerfScore 11.50 -G_M25906_IG38: +G_M25906_IG36: mov rdi, gword ptr [rbp-0xA0] mov r12d, dword ptr [rdi+0x18] mov rdi, gword ptr [rbp-0xA0] mov rbx, gword ptr [rdi+0x08] mov rdi, gword ptr [rbp-0x78] mov rax, qword ptr [rbp-0x60] mov r13, qword ptr [rax+0x40] call [r13+0x30]System.Reflection.MemberInfo:get_Name():System.String:this mov rdi, gword ptr [rbp-0x70] mov gword ptr [rbp-0x40], rdi lea rdi, [rbp-0x40] mov rcx, gword ptr [rbp-0x40] mov rcx, gword ptr [rcx+0x18] mov rsi, qword ptr [rcx+0x18] lea r8, bword ptr [rbx+0x10] xor rcx, rcx test rbx, rbx cmove r8, rcx mov bword ptr [rbp-0x48], r8 test rax, rax - je SHORT G_M25906_IG39 + je SHORT G_M25906_IG37 add rax, 12 - jmp SHORT G_M25906_IG40 + jmp SHORT G_M25906_IG38 ;; size=90 bbWeight=1 PerfScore 26.25 -G_M25906_IG39: +G_M25906_IG37: xor eax, eax ;; size=2 bbWeight=1 PerfScore 0.25 -G_M25906_IG40: +G_M25906_IG38: mov bword ptr [rbp-0x50], rax mov rcx, rax mov edx, dword ptr [rbp-0x2C] mov r9d, r12d mov rax, 0xD1FFAB1E ; function address mov qword ptr [rbp-0xD0], rax - lea rax, G_M25906_IG43 + lea rax, G_M25906_IG41 mov qword ptr [rbp-0xB8], rax mov rax, qword ptr [rbp-0x58] lea r10, bword ptr [rbp-0xE0] mov qword ptr [rax+0x10], r10 mov rax, qword ptr [rbp-0x58] mov byte ptr [rax+0x0C], 0 ;; size=67 bbWeight=1 PerfScore 10.25 -G_M25906_IG41: +G_M25906_IG39: mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.RuntimeModuleBuilder:g____PInvoke|16_0(System.Runtime.CompilerServices.QCallModule,int,ulong,ulong,int):int ;; size=10 bbWeight=1 PerfScore 0.25 -G_M25906_IG42: +G_M25906_IG40: call [rax]System.Reflection.Emit.RuntimeModuleBuilder:g____PInvoke|16_0(System.Runtime.CompilerServices.QCallModule,int,ulong,ulong,int):int ;; size=2 bbWeight=1 PerfScore 3.00 -G_M25906_IG43: +G_M25906_IG41: mov rcx, qword ptr [rbp-0x58] mov byte ptr [rcx+0x0C], 1 mov rcx, 0xD1FFAB1E ; function address cmp dword ptr [rcx], 0 - je SHORT G_M25906_IG44 + je SHORT G_M25906_IG42 mov rdi, 0xD1FFAB1E call [rdi]CORINFO_HELP_STOP_FOR_GC ;; size=35 bbWeight=1 PerfScore 9.50 -G_M25906_IG44: +G_M25906_IG42: mov rdi, qword ptr [rbp-0x58] mov rcx, bword ptr [rbp-0xD8] mov qword ptr [rdi+0x10], rcx xor edi, edi mov bword ptr [rbp-0x50], rdi ;; size=21 bbWeight=1 PerfScore 4.25 -G_M25906_IG45: +G_M25906_IG43: mov bword ptr [rbp-0x48], rdi ;; size=4 bbWeight=1 PerfScore 1.00 -G_M25906_IG46: +G_M25906_IG44: mov gword ptr [rbp-0x40], rdi ;; size=4 bbWeight=1 PerfScore 1.00 -G_M25906_IG47: +G_M25906_IG45: add rsp, 232 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=18 bbWeight=1 PerfScore 4.25 -G_M25906_IG48: +G_M25906_IG46: call CORINFO_HELP_RNGCHKFAIL ;; size=5 bbWeight=0 PerfScore 0.00 -G_M25906_IG49: +G_M25906_IG47: mov rdi, 0xD1FFAB1E ; System.InvalidOperationException call CORINFO_HELP_NEWSFAST mov rbx, rax mov rax, 0xD1FFAB1E ; code for System.SR:get_InvalidOperation_CannotImportGlobalFromDifferentModule():System.String call [rax]System.SR:get_InvalidOperation_CannotImportGlobalFromDifferentModule():System.String mov rsi, rax mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.InvalidOperationException:.ctor(System.String):this call [rax]System.InvalidOperationException:.ctor(System.String):this mov rdi, rbx call CORINFO_HELP_THROW ;; size=56 bbWeight=0 PerfScore 0.00 -G_M25906_IG50: +G_M25906_IG48: mov rdi, 0xD1FFAB1E ; System.InvalidOperationException call CORINFO_HELP_NEWSFAST mov rbx, rax mov rax, 0xD1FFAB1E ; code for System.SR:get_InvalidOperation_CannotImportGlobalFromDifferentModule():System.String call [rax]System.SR:get_InvalidOperation_CannotImportGlobalFromDifferentModule():System.String mov rsi, rax mov rdi, rbx mov rax, 0xD1FFAB1E ; code for System.InvalidOperationException:.ctor(System.String):this call [rax]System.InvalidOperationException:.ctor(System.String):this mov rdi, rbx call CORINFO_HELP_THROW int3 ;; size=57 bbWeight=0 PerfScore 0.00 -G_M25906_IG51: +G_M25906_IG49: push rbp push r15 push r14 push r13 push r12 push rbx sub rsp, 40 mov rbp, qword ptr [rdi+0x18] mov qword ptr [rsp+0x18], rbp lea rbp, [rbp+0x110] ;; size=30 bbWeight=0 PerfScore 0.00 -G_M25906_IG52: +G_M25906_IG50: mov rdi, gword ptr [rbp-0x78] mov rax, qword ptr [rdi] mov qword ptr [rbp-0x60], rax mov r12, qword ptr [rax+0x60] call [r12+0x28]System.Reflection.MethodInfo:get_ReturnType():System.Type:this mov rsi, rax mov rdi, gword ptr [rbp-0x70] mov rdx, gword ptr [rbp-0x88] mov rax, 0xD1FFAB1E ; code for System.Reflection.Emit.SignatureHelper:GetMethodSigHelper(System.Reflection.Module,System.Type,System.Type[]):System.Reflection.Emit.SignatureHelper call [rax]System.Reflection.Emit.SignatureHelper:GetMethodSigHelper(System.Reflection.Module,System.Type,System.Type[]):System.Reflection.Emit.SignatureHelper mov gword ptr [rbp-0xA0], rax - lea rax, G_M25906_IG37 + lea rax, G_M25906_IG35 ;; size=60 bbWeight=0 PerfScore 0.00 -G_M25906_IG53: +G_M25906_IG51: add rsp, 40 pop rbx pop r12 pop r13 pop r14 pop r15 pop rbp ret ;; size=15 bbWeight=0 PerfScore 0.00 -; Total bytes of code 2197, prolog size 62, PerfScore 921.26, instruction count 548, allocated bytes for code 2197 (MethodHash=a2659acd) for method System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (FullOpts) +; Total bytes of code 2158, prolog size 62, PerfScore 906.01, instruction count 534, allocated bytes for code 2158 (MethodHash=a2659acd) for method System.Reflection.Emit.RuntimeModuleBuilder:GetMethodTokenNoLock(System.Reflection.MethodInfo,ubyte):int:this (FullOpts) ```
-37 (-10.85 % of base) - System.Resources.ManifestBasedResourceGroveler:HandleResourceStreamMissing(System.String):this ```diff ; Assembly listing for method System.Resources.ManifestBasedResourceGroveler:HandleResourceStreamMissing(System.String):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; 3 single block inlinees; 1 inlinees without PGO data +; 0 inlinees with PGO data; 5 single block inlinees; 1 inlinees without PGO data ; Final local variable assignments ; ; V00 this [V00,T00] ( 6, 2 ) ref -> rbx this class-hnd single-def ; V01 arg1 [V01,T01] ( 3, 2 ) ref -> r15 class-hnd single-def ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" -; V03 tmp1 [V03,T02] ( 6, 0 ) ref -> r14 class-hnd single-def "impAppendStmt" +; V03 tmp1 [V03,T10] ( 2, 0 ) ref -> r14 class-hnd single-def "impAppendStmt" ; V04 tmp2 [V04,T11] ( 2, 0 ) ref -> r14 class-hnd exact single-def "non-inline candidate call" ; V05 tmp3 [V05,T12] ( 2, 0 ) ref -> r13 class-hnd exact single-def "non-inline candidate call" -; V06 tmp4 [V06,T06] ( 3, 0 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" -; V07 tmp5 [V07,T03] ( 4, 0 ) ref -> rax single-def "spilling varStr" -; V08 tmp6 [V08,T09] ( 2, 0 ) int -> rdi "spilling unroll qmark" -; V09 tmp7 [V09,T05] ( 2, 0 ) ubyte -> rax "Inline return value spill temp" -; V10 tmp8 [V10,T04] ( 4, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" +; V06 tmp4 [V06,T03] ( 3, 0 ) ref -> r12 class-hnd exact single-def "NewObj constructor temp" +; V07 tmp5 [V07,T02] ( 4, 0 ) ref -> rax single-def "spilling varStr" +; V08 tmp6 [V08,T07] ( 2, 0 ) int -> rdi "spilling unroll qmark" +;* V09 tmp7 [V09,T08] ( 0, 0 ) ubyte -> zero-ref "Inline return value spill temp" +; V10 tmp8 [V10,T04] ( 2, 0 ) ref -> rax class-hnd exact single-def "Inlining Arg" ;* V11 tmp9 [V11 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" ;* V12 tmp10 [V12 ] ( 0, 0 ) ref -> zero-ref class-hnd exact "Inlining Arg" -; V13 tmp11 [V13,T07] ( 3, 0 ) ref -> rdi single-def "argument with side effect" -; V14 tmp12 [V14,T08] ( 3, 0 ) ref -> rax single-def "argument with side effect" +; V13 tmp11 [V13,T05] ( 3, 0 ) ref -> rdi single-def "argument with side effect" +; V14 tmp12 [V14,T06] ( 3, 0 ) ref -> rax single-def "argument with side effect" ; V15 tmp13 [V15,T13] ( 2, 0 ) ref -> rcx single-def "argument with side effect" ; V16 tmp14 [V16,T14] ( 2, 0 ) ref -> rsi single-def "argument with side effect" -; V17 rat0 [V17,T10] ( 3, 0 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable" +; V17 rat0 [V17,T09] ( 3, 0 ) simd32 -> mm0 "ReplaceWithLclVar is creating a new local variable" ; ; Lcl frame size = 8 G_M25185_IG01: push rbp push r15 push r14 push r13 push r12 push rbx push rax vzeroupper lea rbp, [rsp+0x30] mov rbx, rdi mov r15, rsi ;; size=25 bbWeight=0 PerfScore 0.00 G_M25185_IG02: mov rdi, gword ptr [rbx+0x08] mov rax, 0xD1FFAB1E ; code for System.Resources.ResourceManager+ResourceManagerMediator:get_MainAssembly():System.Reflection.Assembly:this cmp dword ptr [rdi], edi call [rax]System.Resources.ResourceManager+ResourceManagerMediator:get_MainAssembly():System.Reflection.Assembly:this mov r14, rax mov rdi, 0xD1FFAB1E ; 'System.Object' call System.RuntimeTypeHandle:GetAssembly(System.RuntimeType):System.Reflection.RuntimeAssembly - test rax, rax - jne SHORT G_M25185_IG03 - test r14, r14 - jne SHORT G_M25185_IG05 - jmp SHORT G_M25185_IG04 - ;; size=48 bbWeight=0 PerfScore 0.00 -G_M25185_IG03: cmp r14, rax - je SHORT G_M25185_IG04 - test r14, r14 - je SHORT G_M25185_IG05 - mov rdi, r14 - mov rsi, rax - mov rax, qword ptr [r14] - mov rax, qword ptr [rax+0x40] - call [rax+0x10]System.Object:Equals(System.Object):ubyte:this - test eax, eax - je SHORT G_M25185_IG05 - ;; size=30 bbWeight=0 PerfScore 0.00 -G_M25185_IG04: + jne SHORT G_M25185_IG03 mov rdi, gword ptr [rbx+0x08] mov rdi, gword ptr [rdi+0x08] mov rax, qword ptr [rdi] mov rax, qword ptr [rax+0x40] call [rax+0x20]System.Resources.ResourceManager:get_BaseName():System.String:this cmp dword ptr [rax+0x08], 22 - jne SHORT G_M25185_IG05 + jne SHORT G_M25185_IG03 vmovups ymm0, ymmword ptr [rax+0x0C] vpxor ymm0, ymm0, ymmword ptr [reloc @RWD00] vmovups ymm1, ymmword ptr [rax+0x18] vpxor ymm1, ymm1, ymmword ptr [reloc @RWD32] vpor ymm0, ymm1, ymm0 vptest ymm0, ymm0 sete dil movzx rdi, dil test edi, edi - je SHORT G_M25185_IG05 + je SHORT G_M25185_IG03 mov rdi, 0xD1FFAB1E ; 'System.Private.CoreLib.resources couldn't be found! Large part' call System.Environment:FailFast(System.String) - ;; size=86 bbWeight=0 PerfScore 0.00 -G_M25185_IG05: + ;; size=127 bbWeight=0 PerfScore 0.00 +G_M25185_IG03: mov rax, 0xD1FFAB1E ; code for System.SR:get_MissingManifestResource_NoNeutralAsm():System.String call [rax]System.SR:get_MissingManifestResource_NoNeutralAsm():System.String mov r14, rax mov rdi, gword ptr [rbx+0x08] mov rax, 0xD1FFAB1E ; code for System.Resources.ResourceManager+ResourceManagerMediator:get_MainAssembly():System.Reflection.Assembly:this cmp dword ptr [rdi], edi call [rax]System.Resources.ResourceManager+ResourceManagerMediator:get_MainAssembly():System.Reflection.Assembly:this mov rdi, rax mov rax, qword ptr [rax] mov rax, qword ptr [rax+0x50] call [rax+0x28]System.Reflection.Assembly:GetName():System.Reflection.AssemblyName:this mov r13, gword ptr [rax+0x08] mov rdi, 0xD1FFAB1E ; System.Resources.MissingManifestResourceException call CORINFO_HELP_NEWSFAST mov r12, rax mov rdi, gword ptr [rbx+0x08] mov rax, 0xD1FFAB1E ; code for System.Resources.ResourceManager+ResourceManagerMediator:get_MainAssembly():System.Reflection.Assembly:this cmp dword ptr [rdi], edi call [rax]System.Resources.ResourceManager+ResourceManagerMediator:get_MainAssembly():System.Reflection.Assembly:this mov rdi, rax mov rax, 0xD1FFAB1E ; code for System.Resources.ManifestBasedResourceGroveler:GetManifestResourceNamesList(System.Reflection.Assembly):System.String call [rax]System.Resources.ManifestBasedResourceGroveler:GetManifestResourceNamesList(System.Reflection.Assembly):System.String mov rcx, rax mov rsi, r15 mov rdx, r13 mov rdi, r14 mov rax, 0xD1FFAB1E ; code for System.SR:Format(System.String,System.Object,System.Object,System.Object):System.String call [rax]System.SR:Format(System.String,System.Object,System.Object,System.Object):System.String mov rsi, rax mov rdi, r12 mov rax, 0xD1FFAB1E ; code for System.Resources.MissingManifestResourceException:.ctor(System.String):this call [rax]System.Resources.MissingManifestResourceException:.ctor(System.String):this mov rdi, r12 call CORINFO_HELP_THROW int3 ;; size=152 bbWeight=0 PerfScore 0.00 RWD00 dq 0074007300790053h, 0050002E006D0065h, 0061007600690072h, 0043002E00650074h RWD32 dq 006900720050002Eh, 0065007400610076h, 0072006F0043002Eh, 00620069004C0065h -; Total bytes of code 341, prolog size 19, PerfScore 0.00, instruction count 88, allocated bytes for code 341 (MethodHash=26cb9d9e) for method System.Resources.ManifestBasedResourceGroveler:HandleResourceStreamMissing(System.String):this (FullOpts) +; Total bytes of code 304, prolog size 19, PerfScore 0.00, instruction count 74, allocated bytes for code 304 (MethodHash=26cb9d9e) for method System.Resources.ManifestBasedResourceGroveler:HandleResourceStreamMissing(System.String):this (FullOpts) ```

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

MihuBot commented 7 months ago

@MichalPetryka