Use GT_NULLCHECK for unconsumed indirections. by erozenfeld · Pull Request #32641 · dotnet/runtime (original) (raw)
Framework diffs (x64 pmi):
PMI CodeSize Diffs for System.Private.CoreLib.dll, framework assemblies for default jit
Summary of Code Size diffs:
(Lower is better)
Total bytes of diff: -33587 (-0.07% of base)
diff is an improvement.
Top file regressions (bytes):
58 : System.Diagnostics.Process.dasm (0.06% of base)
Top file improvements (bytes):
-8254 : Microsoft.CodeAnalysis.VisualBasic.dasm (-0.15% of base)
-7309 : Microsoft.CodeAnalysis.CSharp.dasm (-0.17% of base)
-2777 : Microsoft.CodeAnalysis.dasm (-0.16% of base)
-2193 : System.Private.Xml.dasm (-0.06% of base)
-1138 : System.Private.CoreLib.dasm (-0.02% of base)
-1012 : Microsoft.CSharp.dasm (-0.33% of base)
-895 : Microsoft.Diagnostics.Tracing.TraceEvent.dasm (-0.03% of base)
-794 : System.Collections.Immutable.dasm (-0.07% of base)
-729 : System.Data.Common.dasm (-0.05% of base)
-713 : System.Data.SqlClient.dasm (-0.08% of base)
-612 : System.Reflection.Metadata.dasm (-0.14% of base)
-466 : System.Net.Http.dasm (-0.07% of base)
-455 : System.Private.DataContractSerialization.dasm (-0.06% of base)
-438 : System.Collections.dasm (-0.08% of base)
-418 : System.Configuration.ConfigurationManager.dasm (-0.12% of base)
-376 : System.Collections.Concurrent.dasm (-0.11% of base)
-323 : System.Threading.Tasks.Dataflow.dasm (-0.04% of base)
-292 : System.DirectoryServices.AccountManagement.dasm (-0.08% of base)
-239 : System.Management.dasm (-0.06% of base)
-225 : System.Reflection.MetadataLoadContext.dasm (-0.12% of base)
123 total files with Code Size differences (122 improved, 1 regressed), 110 unchanged.
Top method regressions (bytes):
94 ( 3.83% of base) : System.Diagnostics.Process.dasm - NtProcessManager:GetProcessInfos(PerformanceCounterLib,int,int,ReadOnlySpan`1):ref
3 ( 0.12% of base) : Microsoft.CodeAnalysis.CSharp.dasm - SourceNamedTypeSymbol:MakeDeclaredBases(ConsList`1,DiagnosticBag):Tuple`2:this
2 ( 0.08% of base) : System.Configuration.ConfigurationManager.dasm - BaseConfigurationRecord:InitConfigFromFile():this
2 ( 3.17% of base) : System.Data.SqlClient.dasm - TdsParserStateObject:IncrementAndObtainOpenResultCount(SqlInternalTransaction):int:this
2 ( 0.97% of base) : System.Private.Xml.dasm - XmlQueryType:CreateTypeCodeDerivation():BitMatrix
2 ( 0.07% of base) : System.Private.Xml.dasm - DecimalFormatter:.ctor(String,DecimalFormat):this
1 ( 0.13% of base) : Microsoft.CodeAnalysis.dasm - MetadataWriter:SerializeTablesHeader(BlobBuilder,MetadataSizes):this
1 ( 0.07% of base) : Microsoft.CodeAnalysis.dasm - MetadataWriter:SerializeMetadataHeader(BlobBuilder,MetadataSizes):this
1 ( 0.07% of base) : Microsoft.CodeAnalysis.dasm - MetadataWriter:SerializeMetadataTables(BlobBuilder,MetadataSizes,int,int):this
1 ( 0.05% of base) : System.Collections.Concurrent.dasm - ConcurrentDictionary`2:System.Collections.IDictionary.set_Item(Object,Object):this (7 methods)
Top method improvements (bytes):
-274 (-0.67% of base) : Microsoft.CodeAnalysis.dasm - ArrayBuilder`1:ToDictionary(Func`2,IEqualityComparer`1):Dictionary`2:this (49 methods)
-182 (-0.53% of base) : System.Data.Common.dasm - SortExpressionBuilder`1:CloneCast():SortExpressionBuilder`1:this (49 methods)
-139 (-4.90% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - OverloadResolution:DetermineMostSpecificNarrowingConversion(TypeSymbol,TypeSymbol,ArrayBuilder`1,ArrayBuilder`1,byref,byref,bool,byref):bool
-138 (-2.18% of base) : Microsoft.CodeAnalysis.dasm - ArrayBuilderExtensions:SelectAsArray(ArrayBuilder`1,Func`2):ImmutableArray`1 (7 methods)
-129 (-7.01% of base) : Microsoft.CodeAnalysis.CSharp.dasm - OverloadResolution:BinaryOperatorOverloadResolution(BoundExpression,BoundExpression,BinaryOperatorOverloadResolutionResult,byref):this
-125 (-0.59% of base) : Microsoft.CodeAnalysis.dasm - ArrayBuilder`1:SelectDistinct(Func`2):ImmutableArray`1:this (49 methods)
-102 (-7.09% of base) : Microsoft.CodeAnalysis.CSharp.dasm - OverloadResolution:UnaryOperatorOverloadResolution(BoundExpression,UnaryOperatorOverloadResolutionResult,byref):this
-78 (-4.29% of base) : System.Private.Xml.dasm - XsltLoader:LoadRealStylesheet():this
-77 (-5.58% of base) : Microsoft.CodeAnalysis.CSharp.dasm - SyntaxFactory:NodesAreCorrectType(SyntaxNodeOrTokenList):bool (7 methods)
-77 (-5.67% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - SyntaxFactory:NodesAreCorrectType(SyntaxNodeOrTokenList):bool (7 methods)
-77 (-1.43% of base) : System.Collections.Concurrent.dasm - BlockingCollection`1:TryTakeWithNoTimeValidation(byref,int,CancellationToken,CancellationTokenSource):bool:this (7 methods)
-65 (-1.36% of base) : Microsoft.CodeAnalysis.dasm - MetadataWriter:SerializeTypeReference(ITypeReference,BlobBuilder,bool,bool):this
-64 (-3.61% of base) : Microsoft.CodeAnalysis.dasm - ArrayBuilder`1:RemoveDuplicates():this (7 methods)
-58 (-1.92% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Parser:ParseTerm(bool,bool):ExpressionSyntax:this
-56 (-1.95% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Parser:ParseInterpolatedStringInterpolation():InterpolationSyntax:this
-56 (-1.29% of base) : System.Private.CoreLib.dasm - TextInfo:ChangeCaseCommon(String):String:this (8 methods)
-53 (-0.80% of base) : Microsoft.CodeAnalysis.CSharp.dasm - CSharpDeclarationComputer:ComputeDeclarations(SemanticModel,SyntaxNode,Func`3,bool,List`1,Nullable`1,CancellationToken)
-51 (-0.88% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - VisualBasicDeclarationComputer:ComputeDeclarationsCore(SemanticModel,SyntaxNode,Func`3,bool,List`1,Nullable`1,CancellationToken)
-50 (-4.05% of base) : System.Private.Uri.dasm - Uri:PrivateParseMinimal():int:this
-49 (-0.34% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - MethodToClassRewriter`1:RewriteBlock(BoundBlock,ArrayBuilder`1,ArrayBuilder`1):BoundBlock:this (7 methods)
Top method regressions (percentages):
94 ( 3.83% of base) : System.Diagnostics.Process.dasm - NtProcessManager:GetProcessInfos(PerformanceCounterLib,int,int,ReadOnlySpan`1):ref
2 ( 3.17% of base) : System.Data.SqlClient.dasm - TdsParserStateObject:IncrementAndObtainOpenResultCount(SqlInternalTransaction):int:this
2 ( 0.97% of base) : System.Private.Xml.dasm - XmlQueryType:CreateTypeCodeDerivation():BitMatrix
1 ( 0.13% of base) : Microsoft.CodeAnalysis.dasm - MetadataWriter:SerializeTablesHeader(BlobBuilder,MetadataSizes):this
3 ( 0.12% of base) : Microsoft.CodeAnalysis.CSharp.dasm - SourceNamedTypeSymbol:MakeDeclaredBases(ConsList`1,DiagnosticBag):Tuple`2:this
2 ( 0.08% of base) : System.Configuration.ConfigurationManager.dasm - BaseConfigurationRecord:InitConfigFromFile():this
1 ( 0.07% of base) : Microsoft.CodeAnalysis.dasm - MetadataWriter:SerializeMetadataHeader(BlobBuilder,MetadataSizes):this
2 ( 0.07% of base) : System.Private.Xml.dasm - DecimalFormatter:.ctor(String,DecimalFormat):this
1 ( 0.07% of base) : Microsoft.CodeAnalysis.dasm - MetadataWriter:SerializeMetadataTables(BlobBuilder,MetadataSizes,int,int):this
1 ( 0.05% of base) : System.Collections.Concurrent.dasm - ConcurrentDictionary`2:System.Collections.IDictionary.set_Item(Object,Object):this (7 methods)
Top method improvements (percentages):
-2 (-20.00% of base) : Microsoft.CodeAnalysis.CSharp.dasm - Directive:get_Kind():ushort:this
-14 (-20.00% of base) : System.Collections.dasm - SortedDictionary`2:get_Count():int:this (7 methods)
-2 (-20.00% of base) : System.Data.OleDb.dasm - OleDbInfoMessageEventArgs:get_ErrorCode():int:this
-2 (-20.00% of base) : System.Private.DataContractSerialization.dasm - XmlBinaryReader:SkipNodeType():this
-2 (-20.00% of base) : System.Private.Xml.dasm - XmlTextReaderImpl:get_LineNumber():int:this
-2 (-20.00% of base) : System.Private.Xml.dasm - XmlTextReaderImpl:get_LinePosition():int:this
-21 (-18.75% of base) : System.Collections.dasm - SortedDictionary`2:CopyTo(ref,int):this (7 methods)
-2 (-18.18% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - BoundToQueryableCollectionConversion:get_ExpressionSymbol():Symbol:this
-2 (-18.18% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Parser:GetBinaryOperatorHelper(SyntaxToken):ushort
-2 (-18.18% of base) : System.Private.CoreLib.dasm - ConstructorBuilder:GetModule():Module:this
-2 (-18.18% of base) : System.Private.CoreLib.dasm - EnumBuilder:get_Module():Module:this
-2 (-18.18% of base) : System.Private.CoreLib.dasm - FieldBuilder:get_Module():Module:this
-2 (-18.18% of base) : System.Private.CoreLib.dasm - GenericTypeParameterBuilder:get_Module():Module:this
-2 (-18.18% of base) : System.Private.CoreLib.dasm - MethodBuilder:get_Module():Module:this
-2 (-18.18% of base) : System.Private.CoreLib.dasm - PropertyBuilder:get_Module():Module:this
-6 (-18.18% of base) : System.Private.CoreLib.dasm - CompareInfo:CompareOrdinalIgnoreCase(String,String):int
-4 (-17.39% of base) : System.Private.CoreLib.dasm - String:EqualsOrdinalIgnoreCase(String,String):bool
-4 (-17.39% of base) : System.Private.CoreLib.dasm - TypeBuilder:get_SyncRoot():Object:this
-28 (-16.00% of base) : System.Collections.dasm - Node:Split4Node():this (7 methods)
-28 (-16.00% of base) : System.Collections.dasm - Node:Merge2Nodes():this (7 methods)
8023 total methods with Code Size differences (8013 improved, 10 regressed), 236907 unchanged.